@harshit-wander/component-lib 0.1.0

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/index.js ADDED
@@ -0,0 +1,4783 @@
1
+ "use client";
2
+ import { forwardRef, useId, useState, useRef, useEffect, useCallback } from 'react';
3
+ import styled30, { css } from 'styled-components';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
+ import { darken } from 'polished';
6
+
7
+ // src/components/BrandLogo/BrandLogo.tsx
8
+ var containerStyles = css`
9
+ display: inline-flex;
10
+ flex-direction: column;
11
+ align-items: center;
12
+ justify-content: center;
13
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
14
+ padding: ${({ theme: theme2 }) => theme2.spacing.md};
15
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
16
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
17
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
18
+ text-decoration: none;
19
+ color: inherit;
20
+ `;
21
+ var Box = styled30.div`
22
+ ${containerStyles}
23
+ `;
24
+ var LinkBox = styled30.a`
25
+ ${containerStyles}
26
+
27
+ &:hover {
28
+ border-color: ${({ theme: theme2 }) => theme2.colors.primary};
29
+ }
30
+ `;
31
+ var Logo = styled30.img`
32
+ height: 50px;
33
+ width: auto;
34
+ max-width: 100%;
35
+ object-fit: contain;
36
+ `;
37
+ var Name = styled30.span`
38
+ ${({ theme: theme2 }) => theme2.typography.cardLabel}
39
+ color: ${({ theme: theme2 }) => theme2.colors.text};
40
+ `;
41
+ var BrandLogo = forwardRef(
42
+ ({ logo, name, href, ...rest }, ref) => {
43
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
44
+ /* @__PURE__ */ jsx(Logo, { src: logo, alt: name }),
45
+ /* @__PURE__ */ jsx(Name, { children: name })
46
+ ] });
47
+ if (href) {
48
+ return /* @__PURE__ */ jsx(
49
+ LinkBox,
50
+ {
51
+ ref,
52
+ href,
53
+ target: "_blank",
54
+ rel: "noopener noreferrer",
55
+ ...rest,
56
+ children: content
57
+ }
58
+ );
59
+ }
60
+ return /* @__PURE__ */ jsx(Box, { ref, ...rest, children: content });
61
+ }
62
+ );
63
+ BrandLogo.displayName = "BrandLogo";
64
+ var HEADER_TINT = "#E0FAFF";
65
+ var cardChrome = css`
66
+ background: ${({ theme: theme2 }) => theme2.colors.background};
67
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
68
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
69
+ overflow: hidden;
70
+ `;
71
+ var plainChrome = css`
72
+ background: transparent;
73
+ `;
74
+ var Form = styled30.form`
75
+ display: flex;
76
+ flex-direction: column;
77
+ width: 100%;
78
+ max-width: ${({ $maxWidth }) => $maxWidth};
79
+ ${({ $variant }) => $variant === "card" ? cardChrome : plainChrome}
80
+ `;
81
+ var Header = styled30.div`
82
+ display: flex;
83
+ align-items: flex-end;
84
+ justify-content: space-between;
85
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
86
+ width: 100%;
87
+ padding: 24px 32px 16px;
88
+ background: ${HEADER_TINT};
89
+
90
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
91
+ padding: 20px 24px 14px;
92
+ }
93
+ `;
94
+ var HeaderText = styled30.div`
95
+ display: flex;
96
+ flex-direction: column;
97
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
98
+ flex: 1 1 auto;
99
+ min-width: 0;
100
+ `;
101
+ var HeaderIllustration = styled30.div`
102
+ flex-shrink: 0;
103
+ display: flex;
104
+ align-items: flex-end;
105
+ justify-content: center;
106
+ height: 80px;
107
+
108
+ & > img,
109
+ & > svg {
110
+ height: 100%;
111
+ width: auto;
112
+ object-fit: contain;
113
+ }
114
+ `;
115
+ var Eyebrow = styled30.p`
116
+ margin: 0;
117
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
118
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
119
+ line-height: 1.2;
120
+ letter-spacing: 0.1px;
121
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
122
+ `;
123
+ var Heading = styled30.p`
124
+ margin: 0;
125
+ font-size: 21px;
126
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
127
+ line-height: 1.28;
128
+ color: ${({ theme: theme2 }) => theme2.colors.text};
129
+ `;
130
+ var Body = styled30.div`
131
+ display: flex;
132
+ flex-direction: column;
133
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
134
+ padding: 32px;
135
+
136
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
137
+ padding: 24px;
138
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
139
+ }
140
+ `;
141
+ var Field = styled30.div`
142
+ position: relative;
143
+ width: 100%;
144
+ `;
145
+ var FieldShell = styled30.div`
146
+ position: relative;
147
+ display: flex;
148
+ align-items: center;
149
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
150
+ min-height: 56px;
151
+ padding: 14px 16px;
152
+ background: ${({ theme: theme2 }) => theme2.colors.background};
153
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
154
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
155
+ transition:
156
+ border-color 0.15s ease,
157
+ box-shadow 0.15s ease;
158
+
159
+ &:focus-within {
160
+ border-color: ${({ theme: theme2 }) => theme2.colors.primary};
161
+ }
162
+ `;
163
+ var FieldLabel = styled30.label`
164
+ position: absolute;
165
+ top: -8px;
166
+ left: 12px;
167
+ display: inline-flex;
168
+ align-items: center;
169
+ padding: 0 4px;
170
+ background: ${({ theme: theme2 }) => theme2.colors.background};
171
+ font-size: 12px;
172
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
173
+ line-height: 16px;
174
+ letter-spacing: 0.25px;
175
+ color: ${({ theme: theme2 }) => theme2.colors.text};
176
+ opacity: 0.8;
177
+
178
+ ${FieldShell}:focus-within & {
179
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
180
+ opacity: 1;
181
+ }
182
+ `;
183
+ var Required = styled30.span`
184
+ margin-left: 2px;
185
+ color: ${({ theme: theme2 }) => theme2.colors.danger};
186
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
187
+ `;
188
+ var IconSlot = styled30.span`
189
+ display: inline-flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ width: 24px;
193
+ height: 24px;
194
+ flex-shrink: 0;
195
+ color: ${({ theme: theme2 }) => theme2.colors.textMuted};
196
+ `;
197
+ var Input = styled30.input`
198
+ flex: 1;
199
+ min-width: 0;
200
+ padding: 0;
201
+ background: transparent;
202
+ border: none;
203
+ outline: none;
204
+ font-family: inherit;
205
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
206
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
207
+ line-height: 21px;
208
+ letter-spacing: 0.1px;
209
+ color: ${({ theme: theme2 }) => theme2.colors.text};
210
+
211
+ &::placeholder {
212
+ color: ${({ theme: theme2 }) => theme2.colors.textMuted};
213
+ opacity: 0.8;
214
+ }
215
+ `;
216
+ var Select = styled30.select`
217
+ flex: 1;
218
+ min-width: 0;
219
+ padding: 0 18px 0 0;
220
+ background-color: transparent;
221
+ border: none;
222
+ outline: none;
223
+ font-family: inherit;
224
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
225
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
226
+ line-height: 21px;
227
+ letter-spacing: 0.1px;
228
+ color: ${({ theme: theme2 }) => theme2.colors.text};
229
+ cursor: pointer;
230
+ appearance: none;
231
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none'><path d='M4 6l4 4 4-4' stroke='%234A4A4A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
232
+ background-repeat: no-repeat;
233
+ background-position: right 0 center;
234
+
235
+ &:invalid {
236
+ color: ${({ theme: theme2 }) => theme2.colors.textMuted};
237
+ }
238
+ `;
239
+ var CountryCodeSelect = styled30.select`
240
+ flex: 0 0 auto;
241
+ padding: 0 14px 0 0;
242
+ margin-right: ${({ theme: theme2 }) => theme2.spacing.sm};
243
+ background-color: transparent;
244
+ border: none;
245
+ outline: none;
246
+ border-right: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
247
+ font-family: inherit;
248
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
249
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
250
+ line-height: 21px;
251
+ color: ${({ theme: theme2 }) => theme2.colors.text};
252
+ cursor: pointer;
253
+ appearance: none;
254
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 16 16' fill='none'><path d='M4 6l4 4 4-4' stroke='%234A4A4A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
255
+ background-repeat: no-repeat;
256
+ background-position: right 0 center;
257
+ `;
258
+ var SubmitButton = styled30.button`
259
+ display: inline-flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ height: 48px;
263
+ width: 100%;
264
+ padding: 10px 32px;
265
+ margin-top: ${({ theme: theme2 }) => theme2.spacing.xs};
266
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
267
+ border: none;
268
+ border-radius: 36px;
269
+ color: ${({ theme: theme2 }) => theme2.colors.text};
270
+ font-family: inherit;
271
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
272
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
273
+ line-height: 24px;
274
+ cursor: pointer;
275
+ transition: background 0.15s ease;
276
+
277
+ &:hover {
278
+ background: ${({ theme: theme2 }) => darken(0.05, theme2.colors.accent)};
279
+ }
280
+
281
+ &:focus-visible {
282
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.primary};
283
+ outline-offset: 2px;
284
+ }
285
+ `;
286
+ var PersonSvg = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
287
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "8", r: "4", stroke: "currentColor", strokeWidth: "1.6" }),
288
+ /* @__PURE__ */ jsx("path", { d: "M4 20a8 8 0 0 1 16 0", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round" })
289
+ ] });
290
+ var MailSvg = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
291
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2", stroke: "currentColor", strokeWidth: "1.6" }),
292
+ /* @__PURE__ */ jsx("path", { d: "m3 7 9 6 9-6", stroke: "currentColor", strokeWidth: "1.6", strokeLinejoin: "round" })
293
+ ] });
294
+ var DEFAULT_COUNTRY_CODES = [{ code: "+91" }];
295
+ var resolveMaxWidth = (input) => {
296
+ if (input == null) return "480px";
297
+ return typeof input === "number" ? `${input}px` : input;
298
+ };
299
+ var resolveHeaderVariant = (variant, hasIllustration) => {
300
+ if (variant) return variant;
301
+ return hasIllustration ? "illustration" : "tinted";
302
+ };
303
+ var ContactForm = forwardRef(
304
+ ({
305
+ variant = "card",
306
+ headerVariant,
307
+ eyebrow = "Wanderlust Calling?",
308
+ heading = "Allow Us to Call You Back!",
309
+ submitLabel = "Submit",
310
+ headerIllustration,
311
+ countryCodes,
312
+ destinations,
313
+ maxWidth,
314
+ onSubmit,
315
+ ...rest
316
+ }, ref) => {
317
+ const baseId = useId();
318
+ const codes = countryCodes && countryCodes.length > 0 ? countryCodes : DEFAULT_COUNTRY_CODES;
319
+ const firstCode = codes[0]?.code ?? "+91";
320
+ const showDestination = !!destinations && destinations.length > 0;
321
+ const resolvedHeader = resolveHeaderVariant(headerVariant, !!headerIllustration);
322
+ const [values, setValues] = useState({
323
+ name: "",
324
+ phone: "",
325
+ countryCode: firstCode,
326
+ email: "",
327
+ destination: ""
328
+ });
329
+ const update = (key, value) => {
330
+ setValues((prev) => ({ ...prev, [key]: value }));
331
+ };
332
+ const handleSubmit = (event) => {
333
+ event.preventDefault();
334
+ onSubmit?.(values);
335
+ };
336
+ return /* @__PURE__ */ jsxs(
337
+ Form,
338
+ {
339
+ ref,
340
+ onSubmit: handleSubmit,
341
+ noValidate: true,
342
+ $variant: variant,
343
+ $maxWidth: resolveMaxWidth(maxWidth),
344
+ ...rest,
345
+ children: [
346
+ resolvedHeader === "none" ? null : /* @__PURE__ */ jsxs(Header, { $variant: resolvedHeader, children: [
347
+ /* @__PURE__ */ jsxs(HeaderText, { children: [
348
+ /* @__PURE__ */ jsx(Eyebrow, { children: eyebrow }),
349
+ /* @__PURE__ */ jsx(Heading, { children: heading })
350
+ ] }),
351
+ resolvedHeader === "illustration" && headerIllustration ? /* @__PURE__ */ jsx(HeaderIllustration, { "aria-hidden": "true", children: headerIllustration }) : null
352
+ ] }),
353
+ /* @__PURE__ */ jsxs(Body, { children: [
354
+ /* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsxs(FieldShell, { children: [
355
+ /* @__PURE__ */ jsxs(FieldLabel, { htmlFor: `${baseId}-name`, children: [
356
+ "Name",
357
+ /* @__PURE__ */ jsx(Required, { children: "*" })
358
+ ] }),
359
+ /* @__PURE__ */ jsx(IconSlot, { "aria-hidden": "true", children: /* @__PURE__ */ jsx(PersonSvg, {}) }),
360
+ /* @__PURE__ */ jsx(
361
+ Input,
362
+ {
363
+ id: `${baseId}-name`,
364
+ name: "name",
365
+ type: "text",
366
+ required: true,
367
+ placeholder: "e.g. John Smith",
368
+ value: values.name,
369
+ onChange: (e) => update("name", e.target.value)
370
+ }
371
+ )
372
+ ] }) }),
373
+ /* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsxs(FieldShell, { children: [
374
+ /* @__PURE__ */ jsxs(FieldLabel, { htmlFor: `${baseId}-phone`, children: [
375
+ "Phone Number",
376
+ /* @__PURE__ */ jsx(Required, { children: "*" })
377
+ ] }),
378
+ /* @__PURE__ */ jsx(
379
+ CountryCodeSelect,
380
+ {
381
+ "aria-label": "Country code",
382
+ value: values.countryCode,
383
+ onChange: (e) => update("countryCode", e.target.value),
384
+ children: codes.map((c) => /* @__PURE__ */ jsx("option", { value: c.code, children: c.label ?? c.code }, c.code))
385
+ }
386
+ ),
387
+ /* @__PURE__ */ jsx(
388
+ Input,
389
+ {
390
+ id: `${baseId}-phone`,
391
+ name: "phone",
392
+ type: "tel",
393
+ required: true,
394
+ placeholder: "Enter your 10 digit number",
395
+ value: values.phone,
396
+ onChange: (e) => update("phone", e.target.value)
397
+ }
398
+ )
399
+ ] }) }),
400
+ showDestination ? /* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsxs(FieldShell, { children: [
401
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: `${baseId}-destination`, children: "Destination" }),
402
+ /* @__PURE__ */ jsxs(
403
+ Select,
404
+ {
405
+ id: `${baseId}-destination`,
406
+ name: "destination",
407
+ value: values.destination,
408
+ onChange: (e) => update("destination", e.target.value),
409
+ children: [
410
+ /* @__PURE__ */ jsx("option", { value: "", children: "-- Select destination --" }),
411
+ destinations?.map((d) => /* @__PURE__ */ jsx("option", { value: d.value, children: d.label }, d.value))
412
+ ]
413
+ }
414
+ )
415
+ ] }) }) : null,
416
+ /* @__PURE__ */ jsx(Field, { children: /* @__PURE__ */ jsxs(FieldShell, { children: [
417
+ /* @__PURE__ */ jsx(FieldLabel, { htmlFor: `${baseId}-email`, children: "Email Id" }),
418
+ /* @__PURE__ */ jsx(IconSlot, { "aria-hidden": "true", children: /* @__PURE__ */ jsx(MailSvg, {}) }),
419
+ /* @__PURE__ */ jsx(
420
+ Input,
421
+ {
422
+ id: `${baseId}-email`,
423
+ name: "email",
424
+ type: "email",
425
+ placeholder: "john@example.com",
426
+ value: values.email,
427
+ onChange: (e) => update("email", e.target.value)
428
+ }
429
+ )
430
+ ] }) }),
431
+ /* @__PURE__ */ jsx(SubmitButton, { type: "submit", children: submitLabel })
432
+ ] })
433
+ ]
434
+ }
435
+ );
436
+ }
437
+ );
438
+ ContactForm.displayName = "ContactForm";
439
+ var Card = styled30.a`
440
+ flex: 0 0 88px;
441
+ display: flex;
442
+ flex-direction: column;
443
+ align-items: center;
444
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
445
+ width: 88px;
446
+ text-decoration: none;
447
+ color: inherit;
448
+
449
+ &:focus-visible {
450
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
451
+ outline-offset: 2px;
452
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
453
+ }
454
+ `;
455
+ var Image = styled30.img`
456
+ width: 88px;
457
+ height: 88px;
458
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
459
+ object-fit: cover;
460
+ background: ${({ theme: theme2 }) => theme2.colors.border};
461
+ `;
462
+ var Label = styled30.span`
463
+ font-size: 14px;
464
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
465
+ line-height: 20px;
466
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
467
+ text-align: center;
468
+ white-space: nowrap;
469
+ `;
470
+ var DestinationCard = forwardRef(
471
+ ({ image, alt, label, href, ...rest }, ref) => /* @__PURE__ */ jsxs(Card, { ref, href: href ?? void 0, as: href ? "a" : "div", ...rest, children: [
472
+ /* @__PURE__ */ jsx(Image, { src: image, alt }),
473
+ /* @__PURE__ */ jsx(Label, { children: label })
474
+ ] })
475
+ );
476
+ DestinationCard.displayName = "DestinationCard";
477
+ var Wrapper = styled30.div`
478
+ flex: 0 0 auto;
479
+ width: 100%;
480
+ scroll-snap-align: start;
481
+ `;
482
+ var Frame = styled30.a`
483
+ display: block;
484
+ width: 100%;
485
+ height: 300px;
486
+ overflow: hidden;
487
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
488
+ text-decoration: none;
489
+ color: inherit;
490
+
491
+ & > img {
492
+ display: block;
493
+ width: 100%;
494
+ height: 100%;
495
+ object-fit: cover;
496
+ }
497
+
498
+ &:focus-visible {
499
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
500
+ outline-offset: 2px;
501
+ }
502
+ `;
503
+ var EventBanner = forwardRef(
504
+ ({ image, alt, href, ...rest }, ref) => /* @__PURE__ */ jsx(Wrapper, { ref, ...rest, children: /* @__PURE__ */ jsx(Frame, { href: href ?? void 0, as: href ? "a" : "div", children: /* @__PURE__ */ jsx("img", { src: image, alt }) }) })
505
+ );
506
+ EventBanner.displayName = "EventBanner";
507
+ var Wrapper2 = styled30.section`
508
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
509
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
510
+ overflow: hidden;
511
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
512
+ `;
513
+ var Trigger = styled30.button`
514
+ display: flex;
515
+ align-items: center;
516
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
517
+ width: 100%;
518
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.md} ${theme2.spacing.lg}`};
519
+ background: ${({ $open, theme: theme2 }) => $open ? theme2.colors.primary : theme2.colors.surface};
520
+ color: ${({ $open, theme: theme2 }) => $open ? "#FFFFFF" : theme2.colors.text};
521
+ border: none;
522
+ cursor: pointer;
523
+ text-align: left;
524
+ transition: background 0.2s ease, color 0.2s ease;
525
+
526
+ &:focus-visible {
527
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
528
+ outline-offset: -2px;
529
+ }
530
+ `;
531
+ var SerialNumber = styled30.span`
532
+ flex-shrink: 0;
533
+ min-width: 36px;
534
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.lg};
535
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
536
+ color: ${({ $open, theme: theme2 }) => $open ? "#FFFFFF" : theme2.colors.textMuted};
537
+ `;
538
+ var Title = styled30.span`
539
+ flex: 1;
540
+ ${({ theme: theme2 }) => theme2.typography.cardTitle}
541
+ color: inherit;
542
+ `;
543
+ var Chevron = styled30.span`
544
+ display: inline-flex;
545
+ align-items: center;
546
+ justify-content: center;
547
+ width: 16px;
548
+ height: 16px;
549
+ flex-shrink: 0;
550
+ transition: transform 0.2s ease;
551
+ transform: rotate(${({ $open }) => $open ? "90deg" : "0deg"});
552
+
553
+ &::before {
554
+ content: '›';
555
+ font-size: 24px;
556
+ line-height: 1;
557
+ }
558
+ `;
559
+ var Panel = styled30.div`
560
+ display: ${({ $open }) => $open ? "block" : "none"};
561
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.md} ${theme2.spacing.lg}`};
562
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
563
+ `;
564
+ var BulletList = styled30.ul`
565
+ margin: 0;
566
+ padding-left: ${({ theme: theme2 }) => theme2.spacing.lg};
567
+ display: flex;
568
+ flex-direction: column;
569
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
570
+ `;
571
+ var Bullet = styled30.li`
572
+ ${({ theme: theme2 }) => theme2.typography.cardBody}
573
+ overflow-wrap: anywhere;
574
+ `;
575
+ var ExpandableValueCard = forwardRef(
576
+ ({ serialNumber, title, bullets, defaultOpen = false, expanded, onToggle, ...rest }, ref) => {
577
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
578
+ const isControlled = expanded !== void 0;
579
+ const open = isControlled ? expanded : internalOpen;
580
+ const panelId = useId();
581
+ const formattedSerial = String(serialNumber).padStart(2, "0");
582
+ const handleToggle = () => {
583
+ const next = !open;
584
+ if (!isControlled) {
585
+ setInternalOpen(next);
586
+ }
587
+ onToggle?.(next);
588
+ };
589
+ return /* @__PURE__ */ jsxs(Wrapper2, { ref, ...rest, children: [
590
+ /* @__PURE__ */ jsxs(
591
+ Trigger,
592
+ {
593
+ type: "button",
594
+ $open: open,
595
+ "aria-expanded": open,
596
+ "aria-controls": panelId,
597
+ onClick: handleToggle,
598
+ children: [
599
+ /* @__PURE__ */ jsx(SerialNumber, { $open: open, "aria-hidden": "true", children: formattedSerial }),
600
+ /* @__PURE__ */ jsx(Title, { children: title }),
601
+ /* @__PURE__ */ jsx(Chevron, { $open: open, "aria-hidden": "true" })
602
+ ]
603
+ }
604
+ ),
605
+ /* @__PURE__ */ jsx(Panel, { id: panelId, $open: open, role: "region", "aria-label": title, children: /* @__PURE__ */ jsx(BulletList, { children: bullets.map((text) => /* @__PURE__ */ jsx(Bullet, { children: text }, text)) }) })
606
+ ] });
607
+ }
608
+ );
609
+ ExpandableValueCard.displayName = "ExpandableValueCard";
610
+ var Card2 = styled30.a`
611
+ flex: 0 0 132px;
612
+ display: flex;
613
+ flex-direction: column;
614
+ width: 132px;
615
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
616
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
617
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
618
+ overflow: hidden;
619
+ text-decoration: none;
620
+ color: inherit;
621
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
622
+
623
+ &:focus-visible {
624
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
625
+ outline-offset: 2px;
626
+ }
627
+ `;
628
+ var Image2 = styled30.img`
629
+ width: 100%;
630
+ height: 102px;
631
+ object-fit: cover;
632
+ display: block;
633
+ `;
634
+ var Label2 = styled30.span`
635
+ display: flex;
636
+ align-items: center;
637
+ justify-content: center;
638
+ min-height: 56px;
639
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.sm} ${theme2.spacing.md}`};
640
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
641
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
642
+ line-height: 1.3;
643
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
644
+ text-align: center;
645
+ `;
646
+ var ExploreCard = forwardRef(
647
+ ({ image, alt, label, href, ...rest }, ref) => /* @__PURE__ */ jsxs(Card2, { ref, href: href ?? void 0, as: href ? "a" : "div", ...rest, children: [
648
+ /* @__PURE__ */ jsx(Image2, { src: image, alt }),
649
+ /* @__PURE__ */ jsx(Label2, { children: label })
650
+ ] })
651
+ );
652
+ ExploreCard.displayName = "ExploreCard";
653
+ var Wrapper3 = styled30.section`
654
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
655
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
656
+ overflow: hidden;
657
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
658
+ `;
659
+ var Trigger2 = styled30.button`
660
+ display: flex;
661
+ align-items: center;
662
+ justify-content: space-between;
663
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
664
+ width: 100%;
665
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.md} ${theme2.spacing.lg}`};
666
+ background: ${({ $open, theme: theme2 }) => $open ? theme2.colors.primary : theme2.colors.surface};
667
+ color: ${({ $open, theme: theme2 }) => $open ? "#FFFFFF" : theme2.colors.text};
668
+ border: none;
669
+ cursor: pointer;
670
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
671
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
672
+ text-align: left;
673
+ transition: background 0.2s ease, color 0.2s ease;
674
+
675
+ &:focus-visible {
676
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
677
+ outline-offset: -2px;
678
+ }
679
+ `;
680
+ var Chevron2 = styled30.span`
681
+ display: inline-flex;
682
+ align-items: center;
683
+ justify-content: center;
684
+ width: 16px;
685
+ height: 16px;
686
+ transition: transform 0.2s ease;
687
+ transform: rotate(${({ $open }) => $open ? "90deg" : "0deg"});
688
+
689
+ &::before {
690
+ content: '›';
691
+ font-size: 24px;
692
+ line-height: 1;
693
+ }
694
+ `;
695
+ var Panel2 = styled30.div`
696
+ display: ${({ $open }) => $open ? "block" : "none"};
697
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.md} ${theme2.spacing.lg}`};
698
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
699
+ `;
700
+ var BulletList2 = styled30.ul`
701
+ margin: 0;
702
+ padding-left: ${({ theme: theme2 }) => theme2.spacing.lg};
703
+ display: flex;
704
+ flex-direction: column;
705
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
706
+ `;
707
+ var Bullet2 = styled30.li`
708
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
709
+ color: ${({ theme: theme2 }) => theme2.colors.text};
710
+ line-height: 1.5;
711
+ overflow-wrap: anywhere;
712
+ `;
713
+ var FaqExpandable = forwardRef(
714
+ ({ question, bullets, defaultOpen = false, expanded, onToggle, ...rest }, ref) => {
715
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
716
+ const isControlled = expanded !== void 0;
717
+ const open = isControlled ? expanded : internalOpen;
718
+ const panelId = useId();
719
+ const handleToggle = () => {
720
+ const next = !open;
721
+ if (!isControlled) {
722
+ setInternalOpen(next);
723
+ }
724
+ onToggle?.(next);
725
+ };
726
+ return /* @__PURE__ */ jsxs(Wrapper3, { ref, ...rest, children: [
727
+ /* @__PURE__ */ jsxs(
728
+ Trigger2,
729
+ {
730
+ type: "button",
731
+ $open: open,
732
+ "aria-expanded": open,
733
+ "aria-controls": panelId,
734
+ onClick: handleToggle,
735
+ children: [
736
+ /* @__PURE__ */ jsx("span", { children: question }),
737
+ /* @__PURE__ */ jsx(Chevron2, { $open: open, "aria-hidden": "true" })
738
+ ]
739
+ }
740
+ ),
741
+ /* @__PURE__ */ jsx(Panel2, { id: panelId, $open: open, role: "region", "aria-label": question, children: /* @__PURE__ */ jsx(BulletList2, { children: bullets.map((text) => /* @__PURE__ */ jsx(Bullet2, { children: text }, text)) }) })
742
+ ] });
743
+ }
744
+ );
745
+ FaqExpandable.displayName = "FaqExpandable";
746
+ var Card3 = styled30.article`
747
+ position: relative;
748
+ flex: 0 0 268px;
749
+ width: 268px;
750
+ height: 355px;
751
+ padding: 26px 18px;
752
+ background: ${({ theme: theme2 }) => theme2.colors.border};
753
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.primary};
754
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
755
+ box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.14);
756
+ overflow: hidden;
757
+ scroll-snap-align: center;
758
+ `;
759
+ var Title2 = styled30.h3`
760
+ margin: 0 0 ${({ theme: theme2 }) => theme2.spacing.lg};
761
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
762
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
763
+ line-height: 32px;
764
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
765
+ `;
766
+ var Description = styled30.p`
767
+ margin: 0;
768
+ max-width: 220px;
769
+ font-size: 12px;
770
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
771
+ line-height: 16px;
772
+ color: ${({ theme: theme2 }) => theme2.colors.text};
773
+ `;
774
+ var Illustration = styled30.img`
775
+ position: absolute;
776
+ bottom: 0;
777
+ left: 0;
778
+ width: 206px;
779
+ height: 137px;
780
+ object-fit: contain;
781
+ pointer-events: none;
782
+ `;
783
+ var FeatureCard = forwardRef(
784
+ ({ title, description, illustration, illustrationAlt = "", ...rest }, ref) => /* @__PURE__ */ jsxs(Card3, { ref, ...rest, children: [
785
+ /* @__PURE__ */ jsx(Title2, { children: title }),
786
+ /* @__PURE__ */ jsx(Description, { children: description }),
787
+ /* @__PURE__ */ jsx(Illustration, { src: illustration, alt: illustrationAlt, "aria-hidden": !illustrationAlt })
788
+ ] })
789
+ );
790
+ FeatureCard.displayName = "FeatureCard";
791
+ var Wrapper4 = styled30.div`
792
+ position: relative;
793
+ flex: 0 0 270px;
794
+ width: 270px;
795
+ height: 400px;
796
+ overflow: hidden;
797
+ scroll-snap-align: start;
798
+ background: ${({ theme: theme2 }) => theme2.colors.border};
799
+
800
+ & > img {
801
+ display: block;
802
+ width: 100%;
803
+ height: 100%;
804
+ object-fit: cover;
805
+ }
806
+
807
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
808
+ flex: 0 0 320px;
809
+ width: 320px;
810
+ height: 460px;
811
+ }
812
+ `;
813
+ var Tag = styled30.div`
814
+ position: absolute;
815
+ bottom: ${({ theme: theme2 }) => theme2.spacing.md};
816
+ left: ${({ theme: theme2 }) => theme2.spacing.sm};
817
+ display: inline-flex;
818
+ align-items: center;
819
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
820
+ padding: 2px 6px;
821
+ background: rgba(0, 0, 0, 0.4);
822
+ border: 0.5px solid ${({ theme: theme2 }) => theme2.colors.secondary};
823
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
824
+ color: #fbfbfb;
825
+ font-size: 12px;
826
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
827
+ line-height: 16px;
828
+ `;
829
+ var PinIcon = styled30.span`
830
+ display: inline-flex;
831
+ align-items: center;
832
+ justify-content: center;
833
+ width: 16px;
834
+ height: 16px;
835
+ color: #fbfbfb;
836
+ `;
837
+ var PinSvg = () => /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
838
+ "path",
839
+ {
840
+ d: "M8 1.33a4.67 4.67 0 0 0-4.67 4.67c0 3.5 4.67 8.67 4.67 8.67s4.67-5.17 4.67-8.67A4.67 4.67 0 0 0 8 1.33Zm0 6.34a1.67 1.67 0 1 1 0-3.34 1.67 1.67 0 0 1 0 3.34Z",
841
+ stroke: "currentColor",
842
+ strokeWidth: "1.4",
843
+ strokeLinejoin: "round",
844
+ fill: "none"
845
+ }
846
+ ) });
847
+ var GalleryPhoto = forwardRef(
848
+ ({ image, alt, destination, ...rest }, ref) => /* @__PURE__ */ jsxs(Wrapper4, { ref, ...rest, children: [
849
+ /* @__PURE__ */ jsx("img", { src: image, alt }),
850
+ /* @__PURE__ */ jsxs(Tag, { children: [
851
+ /* @__PURE__ */ jsx(PinIcon, { "aria-hidden": "true", children: /* @__PURE__ */ jsx(PinSvg, {}) }),
852
+ destination
853
+ ] })
854
+ ] })
855
+ );
856
+ GalleryPhoto.displayName = "GalleryPhoto";
857
+ var Article = styled30.article`
858
+ display: flex;
859
+ flex-direction: column;
860
+ align-items: flex-start;
861
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
862
+ padding: ${({ theme: theme2 }) => theme2.layout.cardPadding};
863
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
864
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
865
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
866
+ `;
867
+ var LogoWrapper = styled30.div`
868
+ display: flex;
869
+ align-items: center;
870
+ height: 50px;
871
+
872
+ & > img,
873
+ & > svg {
874
+ height: 100%;
875
+ width: auto;
876
+ max-width: 100%;
877
+ object-fit: contain;
878
+ }
879
+ `;
880
+ var Location = styled30.h3`
881
+ margin: 0;
882
+ ${({ theme: theme2 }) => theme2.typography.cardTitle}
883
+ `;
884
+ var AccentLine = styled30.span`
885
+ display: block;
886
+ width: 56px;
887
+ height: 2px;
888
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
889
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
890
+ `;
891
+ var Address = styled30.p`
892
+ margin: 0;
893
+ white-space: pre-line;
894
+ ${({ theme: theme2 }) => theme2.typography.cardBody}
895
+ `;
896
+ var LocationCard = forwardRef(
897
+ ({ location, address, logo, ...rest }, ref) => {
898
+ return /* @__PURE__ */ jsxs(Article, { ref, ...rest, children: [
899
+ logo !== void 0 ? /* @__PURE__ */ jsx(LogoWrapper, { "aria-hidden": "true", children: typeof logo === "string" ? /* @__PURE__ */ jsx("img", { src: logo, alt: "" }) : logo }) : null,
900
+ /* @__PURE__ */ jsx(Location, { children: location }),
901
+ /* @__PURE__ */ jsx(AccentLine, { "aria-hidden": "true" }),
902
+ /* @__PURE__ */ jsx(Address, { children: address })
903
+ ] });
904
+ }
905
+ );
906
+ LocationCard.displayName = "LocationCard";
907
+ var Wrapper5 = styled30.div`
908
+ display: flex;
909
+ flex-direction: column;
910
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
911
+ width: 100%;
912
+ `;
913
+ var TabRow = styled30.div`
914
+ display: flex;
915
+ align-items: center;
916
+ gap: 12px;
917
+ overflow-x: auto;
918
+ scrollbar-width: none;
919
+
920
+ &::-webkit-scrollbar {
921
+ display: none;
922
+ }
923
+ `;
924
+ var Tab = styled30.button`
925
+ flex: 0 0 auto;
926
+ display: inline-flex;
927
+ align-items: center;
928
+ height: 34px;
929
+ padding: 5px 17px;
930
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
931
+ font-family: inherit;
932
+ font-size: 12px;
933
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
934
+ line-height: 16px;
935
+ white-space: nowrap;
936
+ cursor: pointer;
937
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
938
+
939
+ ${({ $active }) => $active ? `
940
+ background: #cceef7;
941
+ border: 1px solid #0b3741;
942
+ color: #0b3741;
943
+ ` : `
944
+ background: transparent;
945
+ border: 1px solid #898989;
946
+ color: #707070;
947
+ `}
948
+
949
+ &:focus-visible {
950
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
951
+ outline-offset: 2px;
952
+ }
953
+ `;
954
+ var Divider = styled30.span`
955
+ display: block;
956
+ width: 100%;
957
+ height: 1px;
958
+ background: #bcbcbc;
959
+ `;
960
+ var MonthTabs = forwardRef(
961
+ ({ months, activeMonthId, onMonthChange, ...rest }, ref) => /* @__PURE__ */ jsxs(Wrapper5, { ref, ...rest, children: [
962
+ /* @__PURE__ */ jsx(TabRow, { role: "tablist", children: months.map((month) => {
963
+ const isActive = month.id === activeMonthId;
964
+ return /* @__PURE__ */ jsx(
965
+ Tab,
966
+ {
967
+ type: "button",
968
+ role: "tab",
969
+ "aria-selected": isActive,
970
+ $active: isActive,
971
+ onClick: () => onMonthChange(month.id),
972
+ children: month.label
973
+ },
974
+ month.id
975
+ );
976
+ }) }),
977
+ /* @__PURE__ */ jsx(Divider, { "aria-hidden": "true" })
978
+ ] })
979
+ );
980
+ MonthTabs.displayName = "MonthTabs";
981
+ var Card4 = styled30.a`
982
+ position: relative;
983
+ display: flex;
984
+ flex-direction: column;
985
+ justify-content: space-between;
986
+ flex: 0 0 264px;
987
+ width: 264px;
988
+ height: 392px;
989
+ padding: 12px 16px;
990
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
991
+ overflow: hidden;
992
+ text-decoration: none;
993
+ color: inherit;
994
+ scroll-snap-align: start;
995
+
996
+ &:focus-visible {
997
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
998
+ outline-offset: 2px;
999
+ }
1000
+
1001
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1002
+ flex: 0 0 320px;
1003
+ width: 320px;
1004
+ }
1005
+ `;
1006
+ var Background = styled30.span`
1007
+ position: absolute;
1008
+ inset: 0;
1009
+ background-image: url(${({ $image }) => $image});
1010
+ background-size: cover;
1011
+ background-position: center;
1012
+ pointer-events: none;
1013
+ `;
1014
+ var Overlay = styled30.span`
1015
+ position: absolute;
1016
+ inset: 0;
1017
+ background: linear-gradient(180deg, rgba(0, 0, 0, 0) 21.67%, rgba(0, 0, 0, 1) 86.21%);
1018
+ pointer-events: none;
1019
+ `;
1020
+ var PriceTag = styled30.div`
1021
+ position: relative;
1022
+ display: inline-flex;
1023
+ align-items: center;
1024
+ align-self: flex-start;
1025
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1026
+ padding: 4px 16px;
1027
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
1028
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.surface};
1029
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
1030
+ `;
1031
+ var OriginalPrice = styled30.span`
1032
+ position: relative;
1033
+ font-size: 9px;
1034
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1035
+ line-height: 18px;
1036
+ color: #424242;
1037
+
1038
+ &::after {
1039
+ content: '';
1040
+ position: absolute;
1041
+ left: -2px;
1042
+ right: -2px;
1043
+ top: 50%;
1044
+ height: 1px;
1045
+ background: #424242;
1046
+ transform: rotate(-8deg);
1047
+ }
1048
+ `;
1049
+ var CurrentPrice = styled30.span`
1050
+ font-size: 12px;
1051
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
1052
+ line-height: 16px;
1053
+ color: #2d2d2d;
1054
+ `;
1055
+ var PriceSuffix = styled30.span`
1056
+ font-size: 12px;
1057
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1058
+ line-height: 16px;
1059
+ color: #2d2d2d;
1060
+ `;
1061
+ var Footer = styled30.div`
1062
+ position: relative;
1063
+ display: flex;
1064
+ flex-direction: column;
1065
+ gap: 16px;
1066
+ color: #f2f2f2;
1067
+ `;
1068
+ var Title3 = styled30.p`
1069
+ margin: 0;
1070
+ font-size: 12px;
1071
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
1072
+ line-height: 20px;
1073
+ `;
1074
+ var InfoStack = styled30.div`
1075
+ display: flex;
1076
+ flex-direction: column;
1077
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1078
+ `;
1079
+ var InfoRow = styled30.div`
1080
+ display: flex;
1081
+ align-items: center;
1082
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
1083
+ `;
1084
+ var InfoItem = styled30.span`
1085
+ display: inline-flex;
1086
+ align-items: center;
1087
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1088
+ font-size: 12px;
1089
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
1090
+ line-height: 20px;
1091
+ color: #eef5f7;
1092
+ `;
1093
+ var IconSlot2 = styled30.span`
1094
+ display: inline-flex;
1095
+ align-items: center;
1096
+ justify-content: center;
1097
+ width: 18px;
1098
+ height: 18px;
1099
+ `;
1100
+ var ClockSvg = () => /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
1101
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "9", r: "6.5", stroke: "currentColor", strokeWidth: "1.4" }),
1102
+ /* @__PURE__ */ jsx(
1103
+ "path",
1104
+ {
1105
+ d: "M9 5.5V9l2.5 1.5",
1106
+ stroke: "currentColor",
1107
+ strokeWidth: "1.4",
1108
+ strokeLinecap: "round",
1109
+ strokeLinejoin: "round"
1110
+ }
1111
+ )
1112
+ ] });
1113
+ var LocationSvg = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
1114
+ "path",
1115
+ {
1116
+ d: "M9 1.5a5 5 0 0 0-5 5c0 3.75 5 9.5 5 9.5s5-5.75 5-9.5a5 5 0 0 0-5-5Zm0 6.83a1.83 1.83 0 1 1 0-3.66 1.83 1.83 0 0 1 0 3.66Z",
1117
+ stroke: "currentColor",
1118
+ strokeWidth: "1.4",
1119
+ strokeLinejoin: "round",
1120
+ fill: "none"
1121
+ }
1122
+ ) });
1123
+ var CalendarSvg = () => /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
1124
+ /* @__PURE__ */ jsx("rect", { x: "2.5", y: "3.5", width: "13", height: "12", rx: "1.5", stroke: "currentColor", strokeWidth: "1.4" }),
1125
+ /* @__PURE__ */ jsx(
1126
+ "path",
1127
+ {
1128
+ d: "M2.5 7h13M6 1.5v3M12 1.5v3",
1129
+ stroke: "currentColor",
1130
+ strokeWidth: "1.4",
1131
+ strokeLinecap: "round"
1132
+ }
1133
+ )
1134
+ ] });
1135
+ var PackageCard = forwardRef(
1136
+ ({
1137
+ image,
1138
+ alt,
1139
+ title,
1140
+ currentPrice,
1141
+ originalPrice,
1142
+ priceSuffix = "Onwards",
1143
+ duration,
1144
+ location,
1145
+ date,
1146
+ href,
1147
+ ...rest
1148
+ }, ref) => /* @__PURE__ */ jsxs(Card4, { ref, href: href ?? void 0, as: href ? "a" : "div", ...rest, children: [
1149
+ /* @__PURE__ */ jsx(Background, { $image: image, role: "img", "aria-label": alt }),
1150
+ /* @__PURE__ */ jsx(Overlay, { "aria-hidden": "true" }),
1151
+ /* @__PURE__ */ jsxs(PriceTag, { children: [
1152
+ originalPrice ? /* @__PURE__ */ jsx(OriginalPrice, { children: originalPrice }) : null,
1153
+ /* @__PURE__ */ jsx(CurrentPrice, { children: currentPrice }),
1154
+ /* @__PURE__ */ jsx(PriceSuffix, { children: priceSuffix })
1155
+ ] }),
1156
+ /* @__PURE__ */ jsxs(Footer, { children: [
1157
+ /* @__PURE__ */ jsx(Title3, { children: title }),
1158
+ /* @__PURE__ */ jsxs(InfoStack, { children: [
1159
+ /* @__PURE__ */ jsxs(InfoRow, { children: [
1160
+ /* @__PURE__ */ jsxs(InfoItem, { children: [
1161
+ /* @__PURE__ */ jsx(IconSlot2, { children: /* @__PURE__ */ jsx(ClockSvg, {}) }),
1162
+ duration
1163
+ ] }),
1164
+ /* @__PURE__ */ jsxs(InfoItem, { children: [
1165
+ /* @__PURE__ */ jsx(IconSlot2, { children: /* @__PURE__ */ jsx(LocationSvg, {}) }),
1166
+ location
1167
+ ] })
1168
+ ] }),
1169
+ /* @__PURE__ */ jsxs(InfoItem, { children: [
1170
+ /* @__PURE__ */ jsx(IconSlot2, { children: /* @__PURE__ */ jsx(CalendarSvg, {}) }),
1171
+ date
1172
+ ] })
1173
+ ] })
1174
+ ] })
1175
+ ] })
1176
+ );
1177
+ PackageCard.displayName = "PackageCard";
1178
+ var Header2 = styled30.header`
1179
+ display: flex;
1180
+ flex-direction: column;
1181
+ align-items: ${({ $align }) => $align === "center" ? "center" : "flex-start"};
1182
+ text-align: ${({ $align }) => $align};
1183
+ margin-bottom: ${({ theme: theme2 }) => theme2.spacing.xl};
1184
+ `;
1185
+ var Heading2 = styled30.h2`
1186
+ margin: 0;
1187
+ ${({ theme: theme2 }) => theme2.typography.sectionHeading}
1188
+ `;
1189
+ var Underline = styled30.span`
1190
+ display: block;
1191
+ width: 96px;
1192
+ height: 4px;
1193
+ margin: ${({ theme: theme2 }) => `${theme2.spacing.sm} 0 ${theme2.spacing.md}`};
1194
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
1195
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1196
+ `;
1197
+ var Subheading = styled30.p`
1198
+ margin: 0;
1199
+ max-width: 720px;
1200
+ ${({ theme: theme2 }) => theme2.typography.sectionSubheading}
1201
+ `;
1202
+ var SectionHeader = forwardRef(
1203
+ ({ heading, subheading, align = "center", ...rest }, ref) => {
1204
+ return /* @__PURE__ */ jsxs(Header2, { ref, $align: align, ...rest, children: [
1205
+ /* @__PURE__ */ jsx(Heading2, { children: heading }),
1206
+ /* @__PURE__ */ jsx(Underline, { "aria-hidden": "true" }),
1207
+ subheading ? /* @__PURE__ */ jsx(Subheading, { children: subheading }) : null
1208
+ ] });
1209
+ }
1210
+ );
1211
+ SectionHeader.displayName = "SectionHeader";
1212
+ var Article2 = styled30.article`
1213
+ display: flex;
1214
+ flex-direction: column;
1215
+ align-items: center;
1216
+ text-align: center;
1217
+ padding: ${({ theme: theme2 }) => theme2.layout.cardPadding};
1218
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
1219
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
1220
+
1221
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1222
+ flex: 0 0 260px;
1223
+ width: 260px;
1224
+ scroll-snap-align: start;
1225
+ }
1226
+ `;
1227
+ var Photo = styled30.img`
1228
+ width: 140px;
1229
+ height: 140px;
1230
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
1231
+ object-fit: cover;
1232
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.cardLg};
1233
+ `;
1234
+ var Name2 = styled30.h3`
1235
+ margin: ${({ theme: theme2 }) => theme2.spacing.md} 0 ${({ theme: theme2 }) => theme2.spacing.xs};
1236
+ ${({ theme: theme2 }) => theme2.typography.cardTitle}
1237
+ `;
1238
+ var Designation = styled30.p`
1239
+ margin: 0;
1240
+ ${({ theme: theme2 }) => theme2.typography.cardLabel}
1241
+ `;
1242
+ var Bio = styled30.p`
1243
+ margin: ${({ theme: theme2 }) => theme2.spacing.md} 0 0;
1244
+ ${({ theme: theme2 }) => theme2.typography.cardBody}
1245
+ `;
1246
+ var Divider2 = styled30.span`
1247
+ display: block;
1248
+ width: 64px;
1249
+ height: 2px;
1250
+ margin: ${({ theme: theme2 }) => theme2.spacing.md} 0;
1251
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
1252
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1253
+ `;
1254
+ var SocialList = styled30.ul`
1255
+ display: flex;
1256
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
1257
+ margin: 0;
1258
+ padding: 0;
1259
+ list-style: none;
1260
+ `;
1261
+ var SocialLink = styled30.a`
1262
+ display: inline-flex;
1263
+ align-items: center;
1264
+ justify-content: center;
1265
+ width: 32px;
1266
+ height: 32px;
1267
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
1268
+ text-decoration: none;
1269
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
1270
+ transition: opacity 0.15s ease;
1271
+
1272
+ & > img,
1273
+ & > svg {
1274
+ width: 100%;
1275
+ height: 100%;
1276
+ object-fit: contain;
1277
+ }
1278
+
1279
+ &:hover {
1280
+ opacity: 0.7;
1281
+ }
1282
+
1283
+ &:focus-visible {
1284
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.primary};
1285
+ outline-offset: 2px;
1286
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1287
+ }
1288
+ `;
1289
+ var TeamInfoCard = forwardRef(
1290
+ ({ image, name, designation, bio, socialLinks, ...rest }, ref) => {
1291
+ const hasSocials = socialLinks !== void 0 && socialLinks.length > 0;
1292
+ return /* @__PURE__ */ jsxs(Article2, { ref, ...rest, children: [
1293
+ /* @__PURE__ */ jsx(Photo, { src: image, alt: name }),
1294
+ /* @__PURE__ */ jsx(Name2, { children: name }),
1295
+ /* @__PURE__ */ jsx(Designation, { children: designation }),
1296
+ bio ? /* @__PURE__ */ jsx(Bio, { children: bio }) : null,
1297
+ hasSocials ? /* @__PURE__ */ jsxs(Fragment, { children: [
1298
+ /* @__PURE__ */ jsx(Divider2, { "aria-hidden": "true" }),
1299
+ /* @__PURE__ */ jsx(SocialList, { children: socialLinks.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1300
+ SocialLink,
1301
+ {
1302
+ href: link.href,
1303
+ "aria-label": link.label,
1304
+ target: "_blank",
1305
+ rel: "noopener noreferrer",
1306
+ children: typeof link.icon === "string" ? /* @__PURE__ */ jsx("img", { src: link.icon, alt: "" }) : link.icon ?? link.label
1307
+ }
1308
+ ) }, link.href)) })
1309
+ ] }) : null
1310
+ ] });
1311
+ }
1312
+ );
1313
+ TeamInfoCard.displayName = "TeamInfoCard";
1314
+ var Card5 = styled30.div`
1315
+ display: flex;
1316
+ flex-direction: column;
1317
+ align-items: center;
1318
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1319
+ width: 868px;
1320
+ max-width: 100%;
1321
+ padding: 16px 16px 0;
1322
+ background: ${({ theme: theme2 }) => theme2.colors.border};
1323
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.primary};
1324
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
1325
+ box-shadow: 0 6px 20px 4px rgba(0, 0, 0, 0.16);
1326
+ overflow: hidden;
1327
+ `;
1328
+ var Thumbnail = styled30.button`
1329
+ position: relative;
1330
+ display: block;
1331
+ width: 100%;
1332
+ aspect-ratio: 836 / 470;
1333
+ padding: 0;
1334
+ background: transparent;
1335
+ border: none;
1336
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1337
+ cursor: pointer;
1338
+ overflow: hidden;
1339
+ font-family: inherit;
1340
+
1341
+ & > img {
1342
+ width: 100%;
1343
+ height: 100%;
1344
+ object-fit: cover;
1345
+ display: block;
1346
+ }
1347
+
1348
+ &::after {
1349
+ content: '';
1350
+ position: absolute;
1351
+ inset: 0;
1352
+ background: rgba(0, 0, 0, 0.4);
1353
+ pointer-events: none;
1354
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1355
+ }
1356
+
1357
+ &:focus-visible {
1358
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1359
+ outline-offset: 2px;
1360
+ }
1361
+ `;
1362
+ var ThumbnailLink = styled30.a`
1363
+ position: relative;
1364
+ display: block;
1365
+ width: 100%;
1366
+ aspect-ratio: 836 / 470;
1367
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1368
+ overflow: hidden;
1369
+ text-decoration: none;
1370
+ color: inherit;
1371
+
1372
+ & > img {
1373
+ width: 100%;
1374
+ height: 100%;
1375
+ object-fit: cover;
1376
+ display: block;
1377
+ }
1378
+
1379
+ &::after {
1380
+ content: '';
1381
+ position: absolute;
1382
+ inset: 0;
1383
+ background: rgba(0, 0, 0, 0.4);
1384
+ pointer-events: none;
1385
+ }
1386
+
1387
+ &:focus-visible {
1388
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1389
+ outline-offset: 2px;
1390
+ }
1391
+ `;
1392
+ var PlayIcon = styled30.span`
1393
+ position: absolute;
1394
+ top: 50%;
1395
+ left: 50%;
1396
+ transform: translate(-50%, -50%);
1397
+ display: inline-flex;
1398
+ align-items: center;
1399
+ justify-content: center;
1400
+ width: 56px;
1401
+ height: 56px;
1402
+ pointer-events: none;
1403
+ z-index: 1;
1404
+ color: #ffffff;
1405
+ `;
1406
+ var Caption = styled30.div`
1407
+ display: flex;
1408
+ align-items: center;
1409
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
1410
+ width: 100%;
1411
+ padding: ${({ theme: theme2 }) => theme2.spacing.md} 0;
1412
+ `;
1413
+ var Logo2 = styled30.img`
1414
+ width: 60px;
1415
+ height: 60px;
1416
+ object-fit: contain;
1417
+ flex-shrink: 0;
1418
+ `;
1419
+ var CaptionText = styled30.p`
1420
+ margin: 0;
1421
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1422
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
1423
+ line-height: 32px;
1424
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
1425
+ `;
1426
+ var PlaySvg = () => /* @__PURE__ */ jsxs("svg", { width: "56", height: "56", viewBox: "0 0 56 56", fill: "none", "aria-hidden": "true", children: [
1427
+ /* @__PURE__ */ jsx("circle", { cx: "28", cy: "28", r: "26", fill: "#FF0000" }),
1428
+ /* @__PURE__ */ jsx("path", { d: "M22 18l16 10-16 10V18Z", fill: "#ffffff" })
1429
+ ] });
1430
+ var TestimonialCard = forwardRef(
1431
+ ({ thumbnail, thumbnailAlt, logo, logoAlt, caption, videoHref, onPlayClick, ...rest }, ref) => {
1432
+ const playLabel = `Play testimonial: ${caption}`;
1433
+ const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
1434
+ /* @__PURE__ */ jsx("img", { src: thumbnail, alt: thumbnailAlt }),
1435
+ /* @__PURE__ */ jsx(PlayIcon, { children: /* @__PURE__ */ jsx(PlaySvg, {}) })
1436
+ ] });
1437
+ return /* @__PURE__ */ jsxs(Card5, { ref, ...rest, children: [
1438
+ videoHref ? /* @__PURE__ */ jsx(ThumbnailLink, { href: videoHref, "aria-label": playLabel, children: inner }) : /* @__PURE__ */ jsx(Thumbnail, { type: "button", "aria-label": playLabel, onClick: onPlayClick, children: inner }),
1439
+ /* @__PURE__ */ jsxs(Caption, { children: [
1440
+ /* @__PURE__ */ jsx(Logo2, { src: logo, alt: logoAlt }),
1441
+ /* @__PURE__ */ jsx(CaptionText, { children: caption })
1442
+ ] })
1443
+ ] });
1444
+ }
1445
+ );
1446
+ TestimonialCard.displayName = "TestimonialCard";
1447
+ var Card6 = styled30.a`
1448
+ position: relative;
1449
+ display: flex;
1450
+ flex-direction: column;
1451
+ justify-content: flex-end;
1452
+ flex: 0 0 200px;
1453
+ width: 200px;
1454
+ height: 316px;
1455
+ padding: 20px;
1456
+ border: 2px solid ${({ theme: theme2 }) => theme2.colors.surface};
1457
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
1458
+ overflow: hidden;
1459
+ text-decoration: none;
1460
+ color: inherit;
1461
+ scroll-snap-align: start;
1462
+
1463
+ &:focus-visible {
1464
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1465
+ outline-offset: 2px;
1466
+ }
1467
+ `;
1468
+ var Background2 = styled30.span`
1469
+ position: absolute;
1470
+ inset: 0;
1471
+ background-image: url(${({ $image }) => $image});
1472
+ background-size: cover;
1473
+ background-position: center;
1474
+ pointer-events: none;
1475
+ `;
1476
+ var Overlay2 = styled30.span`
1477
+ position: absolute;
1478
+ inset: 0;
1479
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 58%, rgba(0, 0, 0, 0.8) 100%);
1480
+ pointer-events: none;
1481
+ `;
1482
+ var Content = styled30.div`
1483
+ position: relative;
1484
+ display: flex;
1485
+ flex-direction: column;
1486
+ align-items: center;
1487
+ text-align: center;
1488
+ color: #f2f2f2;
1489
+ text-shadow: 1px 1px 25px rgba(0, 0, 0, 0.5);
1490
+ `;
1491
+ var Destination = styled30.span`
1492
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1493
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
1494
+ line-height: 28px;
1495
+ `;
1496
+ var Price = styled30.span`
1497
+ font-size: 12px;
1498
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
1499
+ line-height: 16px;
1500
+ `;
1501
+ var TripCategoryCard = forwardRef(
1502
+ ({ image, alt, destination, startingPrice, href, ...rest }, ref) => /* @__PURE__ */ jsxs(Card6, { ref, href: href ?? void 0, as: href ? "a" : "div", ...rest, children: [
1503
+ /* @__PURE__ */ jsx(Background2, { $image: image, role: "img", "aria-label": alt }),
1504
+ /* @__PURE__ */ jsx(Overlay2, { "aria-hidden": "true" }),
1505
+ /* @__PURE__ */ jsxs(Content, { children: [
1506
+ /* @__PURE__ */ jsx(Destination, { children: destination }),
1507
+ /* @__PURE__ */ jsx(Price, { children: startingPrice })
1508
+ ] })
1509
+ ] })
1510
+ );
1511
+ TripCategoryCard.displayName = "TripCategoryCard";
1512
+ var Article3 = styled30.article`
1513
+ display: flex;
1514
+ flex-direction: column;
1515
+ align-items: center;
1516
+ text-align: center;
1517
+ padding: ${({ theme: theme2 }) => theme2.layout.cardPadding};
1518
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
1519
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
1520
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
1521
+ `;
1522
+ var IconWrapper = styled30.div`
1523
+ display: flex;
1524
+ align-items: center;
1525
+ justify-content: center;
1526
+ width: 64px;
1527
+ height: 64px;
1528
+ margin-bottom: ${({ theme: theme2 }) => theme2.spacing.md};
1529
+
1530
+ & > img,
1531
+ & > svg {
1532
+ width: 100%;
1533
+ height: 100%;
1534
+ object-fit: contain;
1535
+ }
1536
+ `;
1537
+ var Name3 = styled30.h3`
1538
+ margin: 0;
1539
+ ${({ theme: theme2 }) => theme2.typography.cardTitle}
1540
+ `;
1541
+ var AccentLine2 = styled30.span`
1542
+ display: block;
1543
+ width: 56px;
1544
+ height: 2px;
1545
+ margin: ${({ theme: theme2 }) => theme2.spacing.sm} 0 ${({ theme: theme2 }) => theme2.spacing.md};
1546
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
1547
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1548
+ `;
1549
+ var Description2 = styled30.p`
1550
+ margin: 0;
1551
+ ${({ theme: theme2 }) => theme2.typography.cardBody}
1552
+ `;
1553
+ var WarriorCard = forwardRef(
1554
+ ({ icon, name, description, ...rest }, ref) => {
1555
+ return /* @__PURE__ */ jsxs(Article3, { ref, ...rest, children: [
1556
+ /* @__PURE__ */ jsx(IconWrapper, { "aria-hidden": "true", children: typeof icon === "string" ? /* @__PURE__ */ jsx("img", { src: icon, alt: "" }) : icon }),
1557
+ /* @__PURE__ */ jsx(Name3, { children: name }),
1558
+ /* @__PURE__ */ jsx(AccentLine2, { "aria-hidden": "true" }),
1559
+ /* @__PURE__ */ jsx(Description2, { children: description })
1560
+ ] });
1561
+ }
1562
+ );
1563
+ WarriorCard.displayName = "WarriorCard";
1564
+ var Bar = styled30.nav`
1565
+ position: fixed;
1566
+ bottom: 0;
1567
+ left: 0;
1568
+ right: 0;
1569
+ display: flex;
1570
+ justify-content: space-around;
1571
+ align-items: stretch;
1572
+ padding: 12px 0;
1573
+ background: #112023;
1574
+ color: #ffffff;
1575
+ border-top-left-radius: 20px;
1576
+ border-top-right-radius: 20px;
1577
+ overflow: hidden;
1578
+ z-index: 100;
1579
+ `;
1580
+ var Item = styled30.a`
1581
+ display: flex;
1582
+ flex-direction: column;
1583
+ align-items: center;
1584
+ justify-content: center;
1585
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1586
+ flex: 1 1 0;
1587
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.sm} ${theme2.spacing.xs}`};
1588
+ color: inherit;
1589
+ text-decoration: none;
1590
+ opacity: ${({ $active }) => $active ? 1 : 0.85};
1591
+ transition: opacity 0.15s ease;
1592
+
1593
+ &:hover {
1594
+ opacity: 1;
1595
+ }
1596
+
1597
+ &:focus-visible {
1598
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1599
+ outline-offset: -2px;
1600
+ }
1601
+ `;
1602
+ var IconSlot3 = styled30.span`
1603
+ display: inline-flex;
1604
+ align-items: center;
1605
+ justify-content: center;
1606
+ width: 24px;
1607
+ height: 24px;
1608
+ `;
1609
+ var Label3 = styled30.span`
1610
+ font-size: 12px;
1611
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1612
+ line-height: 16px;
1613
+ `;
1614
+ var BottomNav = forwardRef(({ items, ...rest }, ref) => /* @__PURE__ */ jsx(Bar, { ref, ...rest, children: items.map((item) => /* @__PURE__ */ jsxs(
1615
+ Item,
1616
+ {
1617
+ href: item.href,
1618
+ $active: !!item.active,
1619
+ "aria-current": item.active ? "page" : void 0,
1620
+ children: [
1621
+ /* @__PURE__ */ jsx(IconSlot3, { "aria-hidden": "true", children: item.icon }),
1622
+ /* @__PURE__ */ jsx(Label3, { children: item.label })
1623
+ ]
1624
+ },
1625
+ item.label
1626
+ )) }));
1627
+ BottomNav.displayName = "BottomNav";
1628
+ var Section = styled30.section`
1629
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
1630
+ `;
1631
+ var Row = styled30.div`
1632
+ display: flex;
1633
+ flex-wrap: wrap;
1634
+ gap: ${({ theme: theme2 }) => theme2.layout.gridGap};
1635
+ justify-content: center;
1636
+ `;
1637
+ var BrandsSection = ({ heading, subheading, brands, ...rest }) => {
1638
+ return /* @__PURE__ */ jsxs(Section, { ...rest, children: [
1639
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
1640
+ /* @__PURE__ */ jsx(Row, { children: brands.map((brand) => /* @__PURE__ */ jsx(BrandLogo, { ...brand }, brand.name)) })
1641
+ ] });
1642
+ };
1643
+ BrandsSection.displayName = "BrandsSection";
1644
+ var Panel3 = styled30.div`
1645
+ position: absolute;
1646
+ top: 100%;
1647
+ left: 0;
1648
+ display: ${({ $open }) => $open ? "grid" : "none"};
1649
+ grid-template-columns: repeat(3, minmax(160px, 1fr));
1650
+ column-gap: ${({ theme: theme2 }) => theme2.spacing.xl};
1651
+ row-gap: ${({ theme: theme2 }) => theme2.spacing.sm};
1652
+ min-width: 720px;
1653
+ padding: ${({ theme: theme2 }) => theme2.spacing.xl};
1654
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
1655
+ color: ${({ theme: theme2 }) => theme2.colors.text};
1656
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
1657
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
1658
+ `;
1659
+ var ItemLink = styled30.a`
1660
+ display: inline-flex;
1661
+ align-items: center;
1662
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
1663
+ color: ${({ theme: theme2 }) => theme2.colors.text};
1664
+ text-decoration: none;
1665
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1666
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1667
+ line-height: 1.4;
1668
+
1669
+ &:hover {
1670
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
1671
+ }
1672
+ `;
1673
+ var ItemIcon = styled30.span`
1674
+ display: inline-flex;
1675
+ align-items: center;
1676
+ justify-content: center;
1677
+ width: 18px;
1678
+ height: 18px;
1679
+
1680
+ & > img,
1681
+ & > svg {
1682
+ width: 100%;
1683
+ height: 100%;
1684
+ object-fit: contain;
1685
+ }
1686
+ `;
1687
+ var CategoryDropdown = ({
1688
+ items,
1689
+ open,
1690
+ panelId,
1691
+ LinkComponent,
1692
+ onItemClick
1693
+ }) => {
1694
+ const Link = LinkComponent ?? "a";
1695
+ return /* @__PURE__ */ jsx(Panel3, { id: panelId, $open: open, role: "region", children: items.map((item) => /* @__PURE__ */ jsxs(ItemLink, { as: Link, href: item.href, onClick: onItemClick, children: [
1696
+ item.icon ? /* @__PURE__ */ jsx(ItemIcon, { "aria-hidden": "true", children: typeof item.icon === "string" ? /* @__PURE__ */ jsx("img", { src: item.icon, alt: "" }) : item.icon }) : null,
1697
+ /* @__PURE__ */ jsx("span", { children: item.label })
1698
+ ] }, item.href)) });
1699
+ };
1700
+ var Bar2 = styled30.header`
1701
+ position: sticky;
1702
+ top: 0;
1703
+ z-index: 200;
1704
+ display: flex;
1705
+ align-items: center;
1706
+ justify-content: center;
1707
+ width: 100%;
1708
+ padding: 4px 48px;
1709
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
1710
+ color: #fbfbfb;
1711
+
1712
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1713
+ height: 70px;
1714
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
1715
+ justify-content: space-between;
1716
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
1717
+ }
1718
+ `;
1719
+ var DesktopNav = styled30.nav`
1720
+ display: flex;
1721
+ align-items: center;
1722
+
1723
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1724
+ display: none;
1725
+ }
1726
+ `;
1727
+ var CategoryList = styled30.ul`
1728
+ display: flex;
1729
+ align-items: center;
1730
+ gap: 32px;
1731
+ margin: 0;
1732
+ padding: ${({ theme: theme2 }) => theme2.spacing.sm};
1733
+ list-style: none;
1734
+ `;
1735
+ var CategoryItem = styled30.li`
1736
+ position: relative;
1737
+ display: inline-flex;
1738
+ align-items: center;
1739
+ `;
1740
+ var CategoryButton = styled30.button`
1741
+ display: inline-flex;
1742
+ align-items: center;
1743
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1744
+ padding: 0;
1745
+ background: transparent;
1746
+ border: none;
1747
+ color: inherit;
1748
+ cursor: pointer;
1749
+ font-family: inherit;
1750
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1751
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1752
+ line-height: 24px;
1753
+ white-space: nowrap;
1754
+
1755
+ &:focus-visible {
1756
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1757
+ outline-offset: 4px;
1758
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1759
+ }
1760
+ `;
1761
+ var CategoryLink = styled30.a`
1762
+ display: inline-flex;
1763
+ align-items: center;
1764
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1765
+ color: inherit;
1766
+ text-decoration: none;
1767
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1768
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1769
+ line-height: 24px;
1770
+ white-space: nowrap;
1771
+
1772
+ &:focus-visible {
1773
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1774
+ outline-offset: 4px;
1775
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1776
+ }
1777
+ `;
1778
+ var Chevron3 = styled30.span`
1779
+ display: inline-flex;
1780
+ align-items: center;
1781
+ justify-content: center;
1782
+ width: 16px;
1783
+ height: 16px;
1784
+ transition: transform 0.2s ease;
1785
+ transform: rotate(${({ $open }) => $open ? "180deg" : "0deg"});
1786
+ `;
1787
+ var Badge = styled30.span`
1788
+ display: inline-flex;
1789
+ align-items: center;
1790
+ margin-left: ${({ theme: theme2 }) => theme2.spacing.xs};
1791
+ `;
1792
+ var MobileChrome = styled30.div`
1793
+ display: none;
1794
+
1795
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1796
+ display: flex;
1797
+ align-items: center;
1798
+ flex: 0 0 auto;
1799
+ min-width: 0;
1800
+ }
1801
+ `;
1802
+ var MobilePhone = styled30.a`
1803
+ display: none;
1804
+
1805
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1806
+ display: flex;
1807
+ flex: 1 1 auto;
1808
+ align-items: center;
1809
+ justify-content: center;
1810
+ color: inherit;
1811
+ text-decoration: none;
1812
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
1813
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
1814
+ white-space: nowrap;
1815
+ min-width: 0;
1816
+ }
1817
+ `;
1818
+ var Pointer = styled30.span`
1819
+ position: absolute;
1820
+ top: 100%;
1821
+ left: 50%;
1822
+ transform: translate(-50%, -100%);
1823
+ width: 16px;
1824
+ height: 8px;
1825
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
1826
+ clip-path: polygon(50% 0, 0 100%, 100% 100%);
1827
+ z-index: 201;
1828
+ pointer-events: none;
1829
+
1830
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1831
+ display: none;
1832
+ }
1833
+ `;
1834
+ var MobileLogoLink = styled30.a`
1835
+ display: inline-flex;
1836
+ align-items: center;
1837
+ text-decoration: none;
1838
+ color: inherit;
1839
+ height: 40px;
1840
+ flex-shrink: 0;
1841
+
1842
+ & > img,
1843
+ & > svg {
1844
+ height: 100%;
1845
+ width: auto;
1846
+ object-fit: contain;
1847
+ }
1848
+ `;
1849
+ var MobileActions = styled30.div`
1850
+ display: none;
1851
+
1852
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
1853
+ display: flex;
1854
+ align-items: center;
1855
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
1856
+ }
1857
+ `;
1858
+ var SearchIconButton = styled30.button`
1859
+ display: inline-flex;
1860
+ align-items: center;
1861
+ justify-content: center;
1862
+ width: 36px;
1863
+ height: 36px;
1864
+ background: transparent;
1865
+ border: none;
1866
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
1867
+ color: inherit;
1868
+ cursor: pointer;
1869
+
1870
+ &:hover {
1871
+ background: rgba(255, 255, 255, 0.12);
1872
+ }
1873
+
1874
+ &:focus-visible {
1875
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1876
+ outline-offset: 2px;
1877
+ }
1878
+ `;
1879
+ var SearchIconLink = styled30.a`
1880
+ display: inline-flex;
1881
+ align-items: center;
1882
+ justify-content: center;
1883
+ width: 36px;
1884
+ height: 36px;
1885
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
1886
+ color: inherit;
1887
+ text-decoration: none;
1888
+
1889
+ &:hover {
1890
+ background: rgba(255, 255, 255, 0.12);
1891
+ }
1892
+
1893
+ &:focus-visible {
1894
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1895
+ outline-offset: 2px;
1896
+ }
1897
+ `;
1898
+ var Button = styled30.button`
1899
+ display: inline-flex;
1900
+ flex-direction: column;
1901
+ align-items: center;
1902
+ justify-content: center;
1903
+ gap: 5px;
1904
+ width: 36px;
1905
+ height: 36px;
1906
+ padding: 0;
1907
+ background: transparent;
1908
+ border: none;
1909
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
1910
+ color: inherit;
1911
+ cursor: pointer;
1912
+
1913
+ &:hover {
1914
+ background: rgba(255, 255, 255, 0.12);
1915
+ }
1916
+
1917
+ &:focus-visible {
1918
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
1919
+ outline-offset: 2px;
1920
+ }
1921
+
1922
+ & > span {
1923
+ display: block;
1924
+ width: 22px;
1925
+ height: 2px;
1926
+ background: currentColor;
1927
+ border-radius: 2px;
1928
+ transition: transform 0.2s ease, opacity 0.2s ease;
1929
+ }
1930
+
1931
+ ${({ $open }) => $open ? `
1932
+ & > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
1933
+ & > span:nth-child(2) { opacity: 0; }
1934
+ & > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
1935
+ ` : ""}
1936
+ `;
1937
+ var Hamburger = ({ open, onClick, controls }) => /* @__PURE__ */ jsxs(
1938
+ Button,
1939
+ {
1940
+ type: "button",
1941
+ $open: open,
1942
+ onClick,
1943
+ "aria-label": "Toggle menu",
1944
+ "aria-expanded": open,
1945
+ "aria-controls": controls,
1946
+ children: [
1947
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true" }),
1948
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true" }),
1949
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true" })
1950
+ ]
1951
+ }
1952
+ );
1953
+ var TOP_BAR_HEIGHT = "70px";
1954
+ var Backdrop = styled30.div`
1955
+ position: fixed;
1956
+ top: ${TOP_BAR_HEIGHT};
1957
+ left: 0;
1958
+ right: 0;
1959
+ bottom: 0;
1960
+ z-index: 300;
1961
+ background: rgba(0, 0, 0, 0.4);
1962
+ opacity: ${({ $open }) => $open ? 1 : 0};
1963
+ visibility: ${({ $open }) => $open ? "visible" : "hidden"};
1964
+ transition: opacity 0.2s ease, visibility 0.2s ease;
1965
+ `;
1966
+ var Panel4 = styled30.aside`
1967
+ position: fixed;
1968
+ top: ${TOP_BAR_HEIGHT};
1969
+ right: 0;
1970
+ z-index: 310;
1971
+ display: flex;
1972
+ flex-direction: column;
1973
+ width: 78vw;
1974
+ max-width: 360px;
1975
+ height: calc(100vh - ${TOP_BAR_HEIGHT});
1976
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
1977
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
1978
+ transform: translateX(${({ $open }) => $open ? "0%" : "100%"});
1979
+ transition: transform 0.25s ease;
1980
+ overflow-y: auto;
1981
+ `;
1982
+ var Body2 = styled30.nav`
1983
+ display: flex;
1984
+ flex-direction: column;
1985
+ flex: 1 1 auto;
1986
+ `;
1987
+ var rowBase = `
1988
+ display: flex;
1989
+ align-items: center;
1990
+ width: 100%;
1991
+ padding: 14px 20px;
1992
+ border: none;
1993
+ background: transparent;
1994
+ color: inherit;
1995
+ text-decoration: none;
1996
+ font-family: inherit;
1997
+ font-size: 16px;
1998
+ font-weight: 500;
1999
+ line-height: 24px;
2000
+ border-bottom: 1px solid #e2e2e2;
2001
+ text-align: left;
2002
+ cursor: pointer;
2003
+ `;
2004
+ var RowLink = styled30.a`
2005
+ ${rowBase}
2006
+
2007
+ &:hover,
2008
+ &:focus-visible {
2009
+ background: rgba(0, 0, 0, 0.03);
2010
+ }
2011
+ `;
2012
+ var RowButton = styled30.button`
2013
+ ${rowBase}
2014
+ justify-content: space-between;
2015
+
2016
+ &:hover,
2017
+ &:focus-visible {
2018
+ background: rgba(0, 0, 0, 0.03);
2019
+ }
2020
+
2021
+ &:focus-visible {
2022
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
2023
+ outline-offset: -2px;
2024
+ }
2025
+ `;
2026
+ var Label4 = styled30.span`
2027
+ flex: 0 1 auto;
2028
+ `;
2029
+ var InlineBadge = styled30.span`
2030
+ display: inline-flex;
2031
+ align-items: center;
2032
+ margin-left: ${({ theme: theme2 }) => theme2.spacing.sm};
2033
+ font-size: 12px;
2034
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2035
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
2036
+ `;
2037
+ var TrailingSlot = styled30.span`
2038
+ display: inline-flex;
2039
+ align-items: center;
2040
+ justify-content: center;
2041
+ margin-left: auto;
2042
+ `;
2043
+ var Chevron4 = styled30.span`
2044
+ display: inline-flex;
2045
+ align-items: center;
2046
+ justify-content: center;
2047
+ width: 20px;
2048
+ height: 20px;
2049
+ margin-left: auto;
2050
+ transition: transform 0.2s ease;
2051
+ transform: rotate(${({ $open }) => $open ? "180deg" : "0deg"});
2052
+ `;
2053
+ var ChevronSvg = () => /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
2054
+ "path",
2055
+ {
2056
+ d: "M4 6l4 4 4-4",
2057
+ stroke: "currentColor",
2058
+ strokeWidth: "1.5",
2059
+ strokeLinecap: "round",
2060
+ strokeLinejoin: "round"
2061
+ }
2062
+ ) });
2063
+ var SubList = styled30.ul`
2064
+ display: ${({ $open }) => $open ? "flex" : "none"};
2065
+ flex-direction: column;
2066
+ gap: 0;
2067
+ margin: 0;
2068
+ padding: 0 0 ${({ theme: theme2 }) => theme2.spacing.sm};
2069
+ list-style: none;
2070
+ background: rgba(0, 0, 0, 0.02);
2071
+ border-bottom: 1px solid #e2e2e2;
2072
+ `;
2073
+ var SubLink = styled30.a`
2074
+ display: flex;
2075
+ align-items: center;
2076
+ padding: 10px 36px;
2077
+ color: ${({ theme: theme2 }) => theme2.colors.text};
2078
+ text-decoration: none;
2079
+ font-size: 14px;
2080
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
2081
+
2082
+ &:hover,
2083
+ &:focus-visible {
2084
+ background: rgba(0, 0, 0, 0.04);
2085
+ }
2086
+ `;
2087
+ var FooterLinks = styled30.div`
2088
+ display: flex;
2089
+ flex-direction: column;
2090
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.lg} 0 ${theme2.spacing.md}`};
2091
+ `;
2092
+ var FooterLink = styled30.a`
2093
+ display: flex;
2094
+ align-items: center;
2095
+ padding: 10px 20px;
2096
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
2097
+ text-decoration: none;
2098
+ font-size: 16px;
2099
+ font-weight: 500;
2100
+ line-height: 24px;
2101
+
2102
+ &:hover,
2103
+ &:focus-visible {
2104
+ background: rgba(0, 0, 0, 0.04);
2105
+ }
2106
+ `;
2107
+ var CtaWrapper = styled30.div`
2108
+ padding: ${({ theme: theme2 }) => theme2.spacing.md} 20px ${({ theme: theme2 }) => theme2.spacing.lg};
2109
+ `;
2110
+ var CtaButton = styled30.button`
2111
+ display: inline-flex;
2112
+ align-items: center;
2113
+ justify-content: center;
2114
+ width: 100%;
2115
+ height: 48px;
2116
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.xl};
2117
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2118
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
2119
+ border: none;
2120
+ border-radius: 9999px;
2121
+ font-family: inherit;
2122
+ font-size: 16px;
2123
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2124
+ line-height: 1;
2125
+ cursor: pointer;
2126
+ transition: background 0.15s ease;
2127
+
2128
+ &:hover {
2129
+ background: ${({ theme: theme2 }) => darken(0.05, theme2.colors.accent)};
2130
+ }
2131
+
2132
+ &:focus-visible {
2133
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.primary};
2134
+ outline-offset: 2px;
2135
+ }
2136
+ `;
2137
+ var MobileDrawer = ({
2138
+ open,
2139
+ onClose,
2140
+ categories,
2141
+ LinkComponent,
2142
+ drawerId,
2143
+ footerLinks,
2144
+ cta
2145
+ }) => {
2146
+ const Link = LinkComponent ?? "a";
2147
+ const [expanded, setExpanded] = useState({});
2148
+ const toggleRow = (index) => {
2149
+ setExpanded((prev) => ({ ...prev, [index]: !prev[index] }));
2150
+ };
2151
+ const handleCtaClick = () => {
2152
+ if (!cta) return;
2153
+ if (cta.href) {
2154
+ window.location.assign(cta.href);
2155
+ onClose();
2156
+ return;
2157
+ }
2158
+ cta.onClick?.();
2159
+ onClose();
2160
+ };
2161
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2162
+ /* @__PURE__ */ jsx(Backdrop, { $open: open, onClick: onClose, "aria-hidden": "true" }),
2163
+ /* @__PURE__ */ jsxs(Panel4, { id: drawerId, $open: open, "aria-hidden": !open, "aria-label": "Mobile navigation", children: [
2164
+ /* @__PURE__ */ jsx(Body2, { "aria-label": "Mobile primary", children: categories.map((category, index) => {
2165
+ const hasItems = (category.items?.length ?? 0) > 0;
2166
+ if (!hasItems) {
2167
+ return /* @__PURE__ */ jsxs(
2168
+ RowLink,
2169
+ {
2170
+ as: Link,
2171
+ href: category.href ?? "#",
2172
+ onClick: onClose,
2173
+ children: [
2174
+ /* @__PURE__ */ jsx(Label4, { children: category.label }),
2175
+ category.badge ? /* @__PURE__ */ jsx(InlineBadge, { children: category.badge }) : null,
2176
+ category.trailingIcon ? /* @__PURE__ */ jsx(TrailingSlot, { "aria-hidden": "true", children: category.trailingIcon }) : null
2177
+ ]
2178
+ },
2179
+ category.label
2180
+ );
2181
+ }
2182
+ const isOpen = !!expanded[index];
2183
+ return /* @__PURE__ */ jsxs("div", { children: [
2184
+ /* @__PURE__ */ jsxs(
2185
+ RowButton,
2186
+ {
2187
+ type: "button",
2188
+ $open: isOpen,
2189
+ "aria-expanded": isOpen,
2190
+ onClick: () => toggleRow(index),
2191
+ children: [
2192
+ /* @__PURE__ */ jsx(Label4, { children: category.label }),
2193
+ category.badge ? /* @__PURE__ */ jsx(InlineBadge, { children: category.badge }) : null,
2194
+ /* @__PURE__ */ jsx(Chevron4, { $open: isOpen, "aria-hidden": "true", children: /* @__PURE__ */ jsx(ChevronSvg, {}) })
2195
+ ]
2196
+ }
2197
+ ),
2198
+ /* @__PURE__ */ jsx(SubList, { $open: isOpen, children: category.items?.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(SubLink, { as: Link, href: item.href, onClick: onClose, children: item.label }) }, item.href)) })
2199
+ ] }, category.label);
2200
+ }) }),
2201
+ footerLinks && footerLinks.length > 0 ? /* @__PURE__ */ jsx(FooterLinks, { children: footerLinks.map((link) => /* @__PURE__ */ jsx(FooterLink, { as: Link, href: link.href, onClick: onClose, children: link.label }, link.href)) }) : null,
2202
+ cta ? /* @__PURE__ */ jsx(CtaWrapper, { children: /* @__PURE__ */ jsx(CtaButton, { type: "button", onClick: handleCtaClick, children: cta.label }) }) : null
2203
+ ] })
2204
+ ] });
2205
+ };
2206
+ var ChevronSvg2 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
2207
+ "path",
2208
+ {
2209
+ d: "M4 6l4 4 4-4",
2210
+ stroke: "currentColor",
2211
+ strokeWidth: "1.5",
2212
+ strokeLinecap: "round",
2213
+ strokeLinejoin: "round"
2214
+ }
2215
+ ) });
2216
+ var SearchSvg = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
2217
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "9", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
2218
+ /* @__PURE__ */ jsx(
2219
+ "line",
2220
+ {
2221
+ x1: "13.5",
2222
+ y1: "13.5",
2223
+ x2: "17.5",
2224
+ y2: "17.5",
2225
+ stroke: "currentColor",
2226
+ strokeWidth: "1.5",
2227
+ strokeLinecap: "round"
2228
+ }
2229
+ )
2230
+ ] });
2231
+ var CategoryNavbar = forwardRef(
2232
+ ({
2233
+ logo,
2234
+ logoHref = "/",
2235
+ categories,
2236
+ searchHref,
2237
+ phoneNumber,
2238
+ LinkComponent,
2239
+ defaultMobileOpen = false,
2240
+ mobileOpen,
2241
+ onMobileOpenChange,
2242
+ mobileFooterLinks,
2243
+ mobileCta,
2244
+ ...rest
2245
+ }, ref) => {
2246
+ const Link = LinkComponent ?? "a";
2247
+ const drawerId = useId();
2248
+ const [internalMobileOpen, setInternalMobileOpen] = useState(defaultMobileOpen);
2249
+ const isControlled = mobileOpen !== void 0;
2250
+ const drawerOpen = isControlled ? mobileOpen : internalMobileOpen;
2251
+ const [openIndex, setOpenIndex] = useState(null);
2252
+ const navRef = useRef(null);
2253
+ const setDrawerOpen = (next) => {
2254
+ if (!isControlled) setInternalMobileOpen(next);
2255
+ onMobileOpenChange?.(next);
2256
+ };
2257
+ useEffect(() => {
2258
+ if (!drawerOpen && openIndex === null) return;
2259
+ const handleKey = (event) => {
2260
+ if (event.key !== "Escape") return;
2261
+ if (drawerOpen) {
2262
+ if (!isControlled) setInternalMobileOpen(false);
2263
+ onMobileOpenChange?.(false);
2264
+ }
2265
+ if (openIndex !== null) setOpenIndex(null);
2266
+ };
2267
+ document.addEventListener("keydown", handleKey);
2268
+ return () => document.removeEventListener("keydown", handleKey);
2269
+ }, [drawerOpen, openIndex, isControlled, onMobileOpenChange]);
2270
+ useEffect(() => {
2271
+ if (openIndex === null) return;
2272
+ const handleClick = (event) => {
2273
+ if (navRef.current && !navRef.current.contains(event.target)) {
2274
+ setOpenIndex(null);
2275
+ }
2276
+ };
2277
+ document.addEventListener("mousedown", handleClick);
2278
+ return () => document.removeEventListener("mousedown", handleClick);
2279
+ }, [openIndex]);
2280
+ const setNavRef = (element) => {
2281
+ navRef.current = element;
2282
+ if (typeof ref === "function") ref(element);
2283
+ else if (ref) ref.current = element;
2284
+ };
2285
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2286
+ /* @__PURE__ */ jsxs(Bar2, { ref: setNavRef, ...rest, children: [
2287
+ /* @__PURE__ */ jsx(MobileChrome, { children: /* @__PURE__ */ jsx(MobileLogoLink, { as: Link, href: logoHref, "aria-label": "Home", children: typeof logo === "string" ? /* @__PURE__ */ jsx("img", { src: logo, alt: "" }) : logo }) }),
2288
+ /* @__PURE__ */ jsx(DesktopNav, { "aria-label": "Categories", children: /* @__PURE__ */ jsx(CategoryList, { children: categories.map((category, index) => {
2289
+ const hasItems = (category.items?.length ?? 0) > 0;
2290
+ const itemPanelId = `${drawerId}-cat-${index}`;
2291
+ if (!hasItems) {
2292
+ return /* @__PURE__ */ jsx(CategoryItem, { children: /* @__PURE__ */ jsxs(CategoryLink, { as: Link, href: category.href ?? "#", children: [
2293
+ /* @__PURE__ */ jsx("span", { children: category.label }),
2294
+ category.badge ? /* @__PURE__ */ jsx(Badge, { children: category.badge }) : null
2295
+ ] }) }, category.label);
2296
+ }
2297
+ const isOpen = openIndex === index;
2298
+ return /* @__PURE__ */ jsxs(CategoryItem, { children: [
2299
+ /* @__PURE__ */ jsxs(
2300
+ CategoryButton,
2301
+ {
2302
+ type: "button",
2303
+ $open: isOpen,
2304
+ "aria-expanded": isOpen,
2305
+ "aria-controls": itemPanelId,
2306
+ onClick: () => setOpenIndex(isOpen ? null : index),
2307
+ children: [
2308
+ /* @__PURE__ */ jsx("span", { children: category.label }),
2309
+ category.badge ? /* @__PURE__ */ jsx(Badge, { children: category.badge }) : null,
2310
+ /* @__PURE__ */ jsx(Chevron3, { $open: isOpen, "aria-hidden": "true", children: /* @__PURE__ */ jsx(ChevronSvg2, {}) })
2311
+ ]
2312
+ }
2313
+ ),
2314
+ isOpen ? /* @__PURE__ */ jsx(Pointer, { "aria-hidden": "true" }) : null,
2315
+ /* @__PURE__ */ jsx(
2316
+ CategoryDropdown,
2317
+ {
2318
+ items: category.items ?? [],
2319
+ open: isOpen,
2320
+ panelId: itemPanelId,
2321
+ LinkComponent,
2322
+ onItemClick: () => setOpenIndex(null)
2323
+ }
2324
+ )
2325
+ ] }, category.label);
2326
+ }) }) }),
2327
+ phoneNumber ? /* @__PURE__ */ jsx(
2328
+ MobilePhone,
2329
+ {
2330
+ href: `tel:${phoneNumber.replace(/\s+/g, "")}`,
2331
+ "aria-label": `Call ${phoneNumber}`,
2332
+ children: phoneNumber
2333
+ }
2334
+ ) : null,
2335
+ /* @__PURE__ */ jsxs(MobileActions, { children: [
2336
+ searchHref ? /* @__PURE__ */ jsx(SearchIconLink, { as: Link, href: searchHref, "aria-label": "Search", children: /* @__PURE__ */ jsx(SearchSvg, {}) }) : /* @__PURE__ */ jsx(SearchIconButton, { type: "button", "aria-label": "Search", children: /* @__PURE__ */ jsx(SearchSvg, {}) }),
2337
+ /* @__PURE__ */ jsx(
2338
+ Hamburger,
2339
+ {
2340
+ open: drawerOpen,
2341
+ onClick: () => setDrawerOpen(!drawerOpen),
2342
+ controls: drawerId
2343
+ }
2344
+ )
2345
+ ] })
2346
+ ] }),
2347
+ /* @__PURE__ */ jsx(
2348
+ MobileDrawer,
2349
+ {
2350
+ open: drawerOpen,
2351
+ onClose: () => setDrawerOpen(false),
2352
+ categories,
2353
+ LinkComponent,
2354
+ drawerId,
2355
+ footerLinks: mobileFooterLinks,
2356
+ cta: mobileCta
2357
+ }
2358
+ )
2359
+ ] });
2360
+ }
2361
+ );
2362
+ CategoryNavbar.displayName = "CategoryNavbar";
2363
+ var Section2 = styled30.section`
2364
+ display: flex;
2365
+ justify-content: center;
2366
+ padding: 0 80px;
2367
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2368
+
2369
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2370
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
2371
+ }
2372
+ `;
2373
+ var Inner = styled30.div`
2374
+ display: flex;
2375
+ align-items: center;
2376
+ justify-content: space-between;
2377
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
2378
+ width: 100%;
2379
+ max-width: 1106px;
2380
+
2381
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2382
+ flex-direction: column;
2383
+ align-items: stretch;
2384
+ }
2385
+ `;
2386
+ var IllustrationSlot = styled30.div`
2387
+ flex: 0 0 auto;
2388
+ display: flex;
2389
+ align-items: center;
2390
+ justify-content: center;
2391
+
2392
+ & > svg,
2393
+ & > img {
2394
+ width: 367px;
2395
+ max-width: 100%;
2396
+ height: auto;
2397
+ }
2398
+
2399
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2400
+ & > svg,
2401
+ & > img {
2402
+ width: 240px;
2403
+ }
2404
+ }
2405
+ `;
2406
+ var FormSlot = styled30.div`
2407
+ flex: 0 0 auto;
2408
+ display: flex;
2409
+ justify-content: center;
2410
+ `;
2411
+ var ContactSection = forwardRef(
2412
+ ({
2413
+ illustration,
2414
+ eyebrow,
2415
+ heading,
2416
+ submitLabel,
2417
+ headerIllustration,
2418
+ countryCodes,
2419
+ destinations,
2420
+ onSubmit,
2421
+ ...rest
2422
+ }, ref) => /* @__PURE__ */ jsx(Section2, { ref, ...rest, children: /* @__PURE__ */ jsxs(Inner, { children: [
2423
+ /* @__PURE__ */ jsx(IllustrationSlot, { "aria-hidden": "true", children: illustration }),
2424
+ /* @__PURE__ */ jsx(FormSlot, { children: /* @__PURE__ */ jsx(
2425
+ ContactForm,
2426
+ {
2427
+ eyebrow,
2428
+ heading,
2429
+ submitLabel,
2430
+ headerIllustration,
2431
+ countryCodes,
2432
+ destinations,
2433
+ onSubmit
2434
+ }
2435
+ ) })
2436
+ ] }) })
2437
+ );
2438
+ ContactSection.displayName = "ContactSection";
2439
+ var Section3 = styled30.section`
2440
+ display: flex;
2441
+ justify-content: center;
2442
+ padding: 0 80px;
2443
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2444
+
2445
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2446
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
2447
+ }
2448
+ `;
2449
+ var Banner = styled30.div`
2450
+ position: relative;
2451
+ display: flex;
2452
+ align-items: center;
2453
+ width: 100%;
2454
+ min-height: 300px;
2455
+ padding-left: 50px;
2456
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
2457
+ background-color: ${({ $backgroundColor, theme: theme2 }) => $backgroundColor ?? theme2.colors.primary};
2458
+ background-image: ${({ $backgroundImage }) => $backgroundImage ? `url(${$backgroundImage})` : "none"};
2459
+ background-size: cover;
2460
+ background-position: center;
2461
+ overflow: hidden;
2462
+
2463
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2464
+ padding-left: ${({ theme: theme2 }) => theme2.spacing.lg};
2465
+ padding-right: ${({ theme: theme2 }) => theme2.spacing.lg};
2466
+ min-height: 300px;
2467
+ }
2468
+ `;
2469
+ var Content2 = styled30.div`
2470
+ display: flex;
2471
+ flex-direction: column;
2472
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
2473
+ max-width: 550px;
2474
+ `;
2475
+ var TextStack = styled30.div`
2476
+ display: flex;
2477
+ flex-direction: column;
2478
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
2479
+ color: #ffffff;
2480
+ `;
2481
+ var Title4 = styled30.h2`
2482
+ margin: 0;
2483
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
2484
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2485
+ line-height: 1.4;
2486
+ `;
2487
+ var Subtitle = styled30.p`
2488
+ margin: 0;
2489
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
2490
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
2491
+ line-height: 1.5;
2492
+ `;
2493
+ var CtaButton2 = styled30.button`
2494
+ display: inline-flex;
2495
+ align-items: center;
2496
+ justify-content: center;
2497
+ align-self: flex-start;
2498
+ height: 44px;
2499
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.xl};
2500
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2501
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
2502
+ border: none;
2503
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
2504
+ font-family: inherit;
2505
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
2506
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
2507
+ line-height: 18px;
2508
+ cursor: pointer;
2509
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.14);
2510
+ transition: background 0.15s ease;
2511
+
2512
+ &:hover {
2513
+ background: ${({ theme: theme2 }) => darken(0.05, theme2.colors.accent)};
2514
+ }
2515
+
2516
+ &:focus-visible {
2517
+ outline: 2px solid #ffffff;
2518
+ outline-offset: 2px;
2519
+ }
2520
+ `;
2521
+ var CtaBanner = forwardRef(
2522
+ ({ title, subtitle, backgroundImage, backgroundColor, cta, ...rest }, ref) => {
2523
+ const handleCtaClick = () => {
2524
+ if (cta.href) {
2525
+ window.location.assign(cta.href);
2526
+ return;
2527
+ }
2528
+ cta.onClick?.();
2529
+ };
2530
+ return /* @__PURE__ */ jsx(Section3, { ref, ...rest, children: /* @__PURE__ */ jsx(Banner, { $backgroundImage: backgroundImage, $backgroundColor: backgroundColor, children: /* @__PURE__ */ jsxs(Content2, { children: [
2531
+ /* @__PURE__ */ jsxs(TextStack, { children: [
2532
+ /* @__PURE__ */ jsx(Title4, { children: title }),
2533
+ subtitle ? /* @__PURE__ */ jsx(Subtitle, { children: subtitle }) : null
2534
+ ] }),
2535
+ /* @__PURE__ */ jsx(CtaButton2, { type: "button", onClick: handleCtaClick, children: cta.label })
2536
+ ] }) }) });
2537
+ }
2538
+ );
2539
+ CtaBanner.displayName = "CtaBanner";
2540
+ var Section4 = styled30.section`
2541
+ display: flex;
2542
+ flex-direction: column;
2543
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
2544
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
2545
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2546
+ `;
2547
+ var Heading3 = styled30.h2`
2548
+ margin: 0;
2549
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
2550
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2551
+ line-height: 1.2;
2552
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
2553
+ `;
2554
+ var ScrollFrame = styled30.div`
2555
+ display: flex;
2556
+ flex-direction: column;
2557
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
2558
+ overflow-x: auto;
2559
+ scrollbar-width: none;
2560
+
2561
+ &::-webkit-scrollbar {
2562
+ display: none;
2563
+ }
2564
+ `;
2565
+ var Row2 = styled30.div`
2566
+ display: flex;
2567
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
2568
+ width: max-content;
2569
+ `;
2570
+ var DestinationsSection = forwardRef(
2571
+ ({ heading, destinations, ...rest }, ref) => {
2572
+ const half = Math.ceil(destinations.length / 2);
2573
+ const firstRow = destinations.slice(0, half);
2574
+ const secondRow = destinations.slice(half);
2575
+ return /* @__PURE__ */ jsxs(Section4, { ref, ...rest, children: [
2576
+ /* @__PURE__ */ jsx(Heading3, { children: heading }),
2577
+ /* @__PURE__ */ jsxs(ScrollFrame, { children: [
2578
+ /* @__PURE__ */ jsx(Row2, { children: firstRow.map((destination) => /* @__PURE__ */ jsx(
2579
+ DestinationCard,
2580
+ {
2581
+ image: destination.image,
2582
+ alt: destination.alt,
2583
+ label: destination.label,
2584
+ href: destination.href
2585
+ },
2586
+ `r1-${destination.label}`
2587
+ )) }),
2588
+ secondRow.length > 0 ? /* @__PURE__ */ jsx(Row2, { children: secondRow.map((destination) => /* @__PURE__ */ jsx(
2589
+ DestinationCard,
2590
+ {
2591
+ image: destination.image,
2592
+ alt: destination.alt,
2593
+ label: destination.label,
2594
+ href: destination.href
2595
+ },
2596
+ `r2-${destination.label}`
2597
+ )) }) : null
2598
+ ] })
2599
+ ] });
2600
+ }
2601
+ );
2602
+ DestinationsSection.displayName = "DestinationsSection";
2603
+ var useScrollSnap = (itemCount) => {
2604
+ const elRef = useRef(null);
2605
+ const [canPrev, setCanPrev] = useState(false);
2606
+ const [canNext, setCanNext] = useState(itemCount > 1);
2607
+ const [activeIndex, setActiveIndex] = useState(0);
2608
+ const [scrollProgress, setScrollProgress] = useState(0);
2609
+ const recompute = useCallback(() => {
2610
+ const el = elRef.current;
2611
+ if (!el) return;
2612
+ setCanPrev(el.scrollLeft > 0);
2613
+ setCanNext(el.scrollLeft + el.clientWidth < el.scrollWidth - 1);
2614
+ const maxScroll = el.scrollWidth - el.clientWidth;
2615
+ setScrollProgress(maxScroll > 0 ? el.scrollLeft / maxScroll : 0);
2616
+ if (itemCount > 0) {
2617
+ const itemWidth = el.scrollWidth / itemCount;
2618
+ setActiveIndex(Math.round(el.scrollLeft / itemWidth));
2619
+ }
2620
+ }, [itemCount]);
2621
+ const setRef = useCallback(
2622
+ (node) => {
2623
+ const previous = elRef.current;
2624
+ if (previous) {
2625
+ previous.removeEventListener("scroll", recompute);
2626
+ }
2627
+ elRef.current = node;
2628
+ if (node) {
2629
+ node.addEventListener("scroll", recompute, { passive: true });
2630
+ recompute();
2631
+ }
2632
+ },
2633
+ [recompute]
2634
+ );
2635
+ useEffect(() => {
2636
+ if (typeof window === "undefined") return;
2637
+ window.addEventListener("resize", recompute);
2638
+ return () => window.removeEventListener("resize", recompute);
2639
+ }, [recompute]);
2640
+ const scrollPrev = useCallback(() => {
2641
+ elRef.current?.scrollBy({ left: -elRef.current.clientWidth, behavior: "smooth" });
2642
+ }, []);
2643
+ const scrollNext = useCallback(() => {
2644
+ elRef.current?.scrollBy({ left: elRef.current.clientWidth, behavior: "smooth" });
2645
+ }, []);
2646
+ return { ref: setRef, scrollPrev, scrollNext, canPrev, canNext, activeIndex, scrollProgress };
2647
+ };
2648
+ var Section5 = styled30.section`
2649
+ position: relative;
2650
+ display: flex;
2651
+ flex-direction: column;
2652
+ align-items: center;
2653
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
2654
+ padding: 0 80px;
2655
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2656
+
2657
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2658
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
2659
+ }
2660
+ `;
2661
+ var Track = styled30.div`
2662
+ display: flex;
2663
+ width: 100%;
2664
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
2665
+ overflow-x: auto;
2666
+ scroll-snap-type: x mandatory;
2667
+ scrollbar-width: none;
2668
+
2669
+ &::-webkit-scrollbar {
2670
+ display: none;
2671
+ }
2672
+ `;
2673
+ var Indicators = styled30.div`
2674
+ display: flex;
2675
+ align-items: center;
2676
+ justify-content: center;
2677
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
2678
+ `;
2679
+ var Dot = styled30.span`
2680
+ display: inline-block;
2681
+ width: ${({ $active }) => $active ? "20px" : "5px"};
2682
+ height: 6px;
2683
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
2684
+ background: ${({ $active, theme: theme2 }) => $active ? theme2.colors.primary : theme2.colors.border};
2685
+ transition: width 0.2s ease, background 0.2s ease;
2686
+ `;
2687
+ var ArrowButton = styled30.button`
2688
+ position: absolute;
2689
+ top: 130px;
2690
+ ${({ $side }) => $side === "left" ? "left: 60px;" : "right: 60px;"}
2691
+ display: inline-flex;
2692
+ align-items: center;
2693
+ justify-content: center;
2694
+ width: 32px;
2695
+ height: 32px;
2696
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2697
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
2698
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
2699
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
2700
+ cursor: pointer;
2701
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
2702
+ transition: opacity 0.15s ease;
2703
+
2704
+ &:disabled {
2705
+ opacity: 0.4;
2706
+ cursor: not-allowed;
2707
+ }
2708
+
2709
+ &:focus-visible {
2710
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
2711
+ outline-offset: 2px;
2712
+ }
2713
+
2714
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2715
+ display: none;
2716
+ }
2717
+ `;
2718
+ var ChevronLeft = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
2719
+ "path",
2720
+ {
2721
+ d: "M10 12L6 8l4-4",
2722
+ stroke: "currentColor",
2723
+ strokeWidth: "1.5",
2724
+ strokeLinecap: "round",
2725
+ strokeLinejoin: "round"
2726
+ }
2727
+ ) });
2728
+ var ChevronRight = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
2729
+ "path",
2730
+ {
2731
+ d: "M6 4l4 4-4 4",
2732
+ stroke: "currentColor",
2733
+ strokeWidth: "1.5",
2734
+ strokeLinecap: "round",
2735
+ strokeLinejoin: "round"
2736
+ }
2737
+ ) });
2738
+ var EventCarousel = forwardRef(
2739
+ ({ events, ...rest }, ref) => {
2740
+ const {
2741
+ ref: trackRef,
2742
+ scrollPrev,
2743
+ scrollNext,
2744
+ canPrev,
2745
+ canNext,
2746
+ activeIndex
2747
+ } = useScrollSnap(events.length);
2748
+ return /* @__PURE__ */ jsxs(Section5, { ref, ...rest, children: [
2749
+ /* @__PURE__ */ jsx(Track, { ref: trackRef, children: events.map((event) => /* @__PURE__ */ jsx(
2750
+ EventBanner,
2751
+ {
2752
+ image: event.image,
2753
+ alt: event.alt,
2754
+ href: event.href
2755
+ },
2756
+ `${event.image}|${event.alt}`
2757
+ )) }),
2758
+ events.length > 1 ? /* @__PURE__ */ jsx(Indicators, { role: "tablist", "aria-label": "Event carousel position", children: events.map((event, index) => /* @__PURE__ */ jsx(
2759
+ Dot,
2760
+ {
2761
+ $active: index === activeIndex,
2762
+ "aria-hidden": "true"
2763
+ },
2764
+ `${event.image}|${event.alt}|dot`
2765
+ )) }) : null,
2766
+ /* @__PURE__ */ jsx(
2767
+ ArrowButton,
2768
+ {
2769
+ type: "button",
2770
+ $side: "left",
2771
+ onClick: scrollPrev,
2772
+ disabled: !canPrev,
2773
+ "aria-label": "Previous event",
2774
+ children: /* @__PURE__ */ jsx(ChevronLeft, {})
2775
+ }
2776
+ ),
2777
+ /* @__PURE__ */ jsx(
2778
+ ArrowButton,
2779
+ {
2780
+ type: "button",
2781
+ $side: "right",
2782
+ onClick: scrollNext,
2783
+ disabled: !canNext,
2784
+ "aria-label": "Next event",
2785
+ children: /* @__PURE__ */ jsx(ChevronRight, {})
2786
+ }
2787
+ )
2788
+ ] });
2789
+ }
2790
+ );
2791
+ EventCarousel.displayName = "EventCarousel";
2792
+ var Section6 = styled30.section`
2793
+ display: flex;
2794
+ flex-direction: column;
2795
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
2796
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
2797
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
2798
+ `;
2799
+ var Heading4 = styled30.h2`
2800
+ margin: 0;
2801
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
2802
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2803
+ line-height: 1.2;
2804
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
2805
+ `;
2806
+ var Track2 = styled30.div`
2807
+ display: flex;
2808
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
2809
+ overflow-x: auto;
2810
+ scroll-snap-type: x proximity;
2811
+ scrollbar-width: none;
2812
+
2813
+ &::-webkit-scrollbar {
2814
+ display: none;
2815
+ }
2816
+ `;
2817
+ var ExploreSection = forwardRef(
2818
+ ({ heading, items, ...rest }, ref) => /* @__PURE__ */ jsxs(Section6, { ref, ...rest, children: [
2819
+ /* @__PURE__ */ jsx(Heading4, { children: heading }),
2820
+ /* @__PURE__ */ jsx(Track2, { children: items.map((item) => /* @__PURE__ */ jsx(
2821
+ ExploreCard,
2822
+ {
2823
+ image: item.image,
2824
+ alt: item.alt,
2825
+ label: item.label,
2826
+ href: item.href
2827
+ },
2828
+ item.label
2829
+ )) })
2830
+ ] })
2831
+ );
2832
+ ExploreSection.displayName = "ExploreSection";
2833
+ var Section7 = styled30.section`
2834
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
2835
+ `;
2836
+ var List = styled30.div`
2837
+ display: flex;
2838
+ flex-direction: column;
2839
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
2840
+ max-width: ${({ theme: theme2 }) => theme2.layout.contentWidth};
2841
+ margin: 0 auto;
2842
+ `;
2843
+ var FaqSection = ({
2844
+ heading,
2845
+ subheading,
2846
+ faqs,
2847
+ singleOpen = false,
2848
+ ...rest
2849
+ }) => {
2850
+ const [openIndex, setOpenIndex] = useState(null);
2851
+ return /* @__PURE__ */ jsxs(Section7, { ...rest, children: [
2852
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
2853
+ /* @__PURE__ */ jsx(List, { children: faqs.map((faq, index) => {
2854
+ if (!singleOpen) {
2855
+ return /* @__PURE__ */ jsx(FaqExpandable, { ...faq }, faq.question);
2856
+ }
2857
+ return /* @__PURE__ */ jsx(
2858
+ FaqExpandable,
2859
+ {
2860
+ ...faq,
2861
+ expanded: openIndex === index,
2862
+ onToggle: (next) => setOpenIndex(next ? index : null)
2863
+ },
2864
+ faq.question
2865
+ );
2866
+ }) })
2867
+ ] });
2868
+ };
2869
+ FaqSection.displayName = "FaqSection";
2870
+ var Wrapper6 = styled30.footer`
2871
+ display: flex;
2872
+ flex-direction: column;
2873
+ align-items: center;
2874
+ `;
2875
+ var TopAccent = styled30.div`
2876
+ width: 100%;
2877
+ height: 8px;
2878
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
2879
+ border-top-left-radius: 200px;
2880
+ border-top-right-radius: 200px;
2881
+ `;
2882
+ var DarkArea = styled30.div`
2883
+ width: 100%;
2884
+ display: flex;
2885
+ flex-direction: column;
2886
+ align-items: center;
2887
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
2888
+ padding: 40px 0;
2889
+ background: #112023;
2890
+ color: #ffffff;
2891
+
2892
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2893
+ padding: 40px ${({ theme: theme2 }) => theme2.spacing.md};
2894
+ }
2895
+ `;
2896
+ var ColumnsRow = styled30.div`
2897
+ display: flex;
2898
+ flex-wrap: wrap;
2899
+ gap: 96px;
2900
+ width: 100%;
2901
+ max-width: 1106px;
2902
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.lg};
2903
+ align-items: flex-start;
2904
+ justify-content: center;
2905
+
2906
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2907
+ flex-direction: column;
2908
+ gap: 0;
2909
+ padding: 0;
2910
+ }
2911
+ `;
2912
+ var Column = styled30.div`
2913
+ display: flex;
2914
+ flex-direction: column;
2915
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
2916
+
2917
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2918
+ width: 100%;
2919
+ gap: 0;
2920
+ padding: ${({ theme: theme2 }) => theme2.spacing.md} 0;
2921
+ border-top: 1px solid rgba(255, 255, 255, 0.18);
2922
+
2923
+ &:last-of-type {
2924
+ border-bottom: 1px solid rgba(255, 255, 255, 0.18);
2925
+ }
2926
+ }
2927
+ `;
2928
+ var ColumnHeader = styled30.button`
2929
+ display: inline-flex;
2930
+ align-items: center;
2931
+ width: 100%;
2932
+ margin: 0;
2933
+ padding: 0;
2934
+ background: transparent;
2935
+ border: none;
2936
+ color: inherit;
2937
+ font-family: inherit;
2938
+ font-size: 14px;
2939
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
2940
+ line-height: 24px;
2941
+ text-align: left;
2942
+ cursor: default;
2943
+ pointer-events: none;
2944
+
2945
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2946
+ justify-content: space-between;
2947
+ cursor: pointer;
2948
+ pointer-events: auto;
2949
+ }
2950
+
2951
+ &:focus-visible {
2952
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
2953
+ outline-offset: 2px;
2954
+ }
2955
+ `;
2956
+ var ColumnHeading = styled30.span`
2957
+ display: inline-block;
2958
+ white-space: nowrap;
2959
+ `;
2960
+ var ColumnChevron = styled30.span`
2961
+ display: none;
2962
+
2963
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2964
+ display: inline-flex;
2965
+ transition: transform 0.2s ease;
2966
+ transform: rotate(${({ $open }) => $open ? "180deg" : "0deg"});
2967
+ }
2968
+ `;
2969
+ var ColumnLinks = styled30.ul`
2970
+ display: flex;
2971
+ flex-direction: column;
2972
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
2973
+ margin: 0;
2974
+ padding: 0;
2975
+ list-style: none;
2976
+
2977
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
2978
+ display: ${({ $open }) => $open ? "flex" : "none"};
2979
+ padding-top: ${({ theme: theme2 }) => theme2.spacing.md};
2980
+ }
2981
+ `;
2982
+ var ColumnLink = styled30.a`
2983
+ display: inline-block;
2984
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
2985
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
2986
+ line-height: 18px;
2987
+ color: inherit;
2988
+ text-decoration: none;
2989
+ white-space: nowrap;
2990
+
2991
+ &:hover {
2992
+ text-decoration: underline;
2993
+ }
2994
+
2995
+ &:focus-visible {
2996
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
2997
+ outline-offset: 2px;
2998
+ }
2999
+ `;
3000
+ var Divider3 = styled30.span`
3001
+ display: block;
3002
+ width: 1106px;
3003
+ max-width: calc(100% - ${({ theme: theme2 }) => theme2.spacing.lg});
3004
+ height: 1px;
3005
+ background: rgba(255, 255, 255, 0.4);
3006
+
3007
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3008
+ max-width: 100%;
3009
+ }
3010
+ `;
3011
+ var Address2 = styled30.div`
3012
+ display: flex;
3013
+ flex-direction: column;
3014
+ align-items: center;
3015
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3016
+ text-align: center;
3017
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
3018
+
3019
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3020
+ padding: 0;
3021
+ width: 100%;
3022
+ }
3023
+ `;
3024
+ var CompanyName = styled30.p`
3025
+ margin: 0;
3026
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
3027
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
3028
+ line-height: 32px;
3029
+ `;
3030
+ var AddressLine = styled30.p`
3031
+ margin: 0;
3032
+ font-size: 14px;
3033
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3034
+ line-height: 24px;
3035
+ `;
3036
+ var CinLine = styled30.p`
3037
+ margin: 0;
3038
+ font-size: 14px;
3039
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3040
+ line-height: 24px;
3041
+ letter-spacing: 0.04em;
3042
+ `;
3043
+ var ContactRow = styled30.div`
3044
+ display: flex;
3045
+ flex-wrap: wrap;
3046
+ align-items: center;
3047
+ justify-content: center;
3048
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
3049
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
3050
+
3051
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3052
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
3053
+ padding: 0;
3054
+ width: 100%;
3055
+ }
3056
+ `;
3057
+ var ContactItem = styled30.a`
3058
+ display: inline-flex;
3059
+ align-items: center;
3060
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3061
+ color: inherit;
3062
+ text-decoration: none;
3063
+ font-size: 14px;
3064
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3065
+ line-height: 24px;
3066
+
3067
+ &:hover {
3068
+ text-decoration: underline;
3069
+ }
3070
+
3071
+ &:focus-visible {
3072
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3073
+ outline-offset: 2px;
3074
+ }
3075
+ `;
3076
+ var ContactIcon = styled30.span`
3077
+ display: inline-flex;
3078
+ align-items: center;
3079
+ justify-content: center;
3080
+ width: 24px;
3081
+ height: 24px;
3082
+
3083
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3084
+ display: none;
3085
+ }
3086
+ `;
3087
+ var SocialPill = styled30.div`
3088
+ display: inline-flex;
3089
+ align-items: center;
3090
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
3091
+ padding: 16px 32px;
3092
+ background: #212e30;
3093
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3094
+ `;
3095
+ var SocialLink2 = styled30.a`
3096
+ display: inline-flex;
3097
+ align-items: center;
3098
+ justify-content: center;
3099
+ width: 30px;
3100
+ height: 30px;
3101
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3102
+ color: inherit;
3103
+ text-decoration: none;
3104
+
3105
+ &:focus-visible {
3106
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3107
+ outline-offset: 2px;
3108
+ }
3109
+
3110
+ & > img,
3111
+ & > svg {
3112
+ width: 30px;
3113
+ height: 30px;
3114
+ object-fit: contain;
3115
+ }
3116
+ `;
3117
+ var FooterImage = styled30.img`
3118
+ display: block;
3119
+ width: 1104px;
3120
+ max-width: 100%;
3121
+ height: 70px;
3122
+ object-fit: cover;
3123
+
3124
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3125
+ width: 100%;
3126
+ height: auto;
3127
+ object-fit: contain;
3128
+ }
3129
+ `;
3130
+ var ScrollToTopButton = styled30.button`
3131
+ position: fixed;
3132
+ right: ${({ theme: theme2 }) => theme2.spacing.md};
3133
+ bottom: ${({ theme: theme2 }) => theme2.spacing.lg};
3134
+ display: inline-flex;
3135
+ align-items: center;
3136
+ justify-content: center;
3137
+ width: 36px;
3138
+ height: 36px;
3139
+ background: #ffffff;
3140
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
3141
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3142
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
3143
+ cursor: pointer;
3144
+ box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
3145
+ z-index: 50;
3146
+ transition: transform 0.15s ease;
3147
+
3148
+ &:hover {
3149
+ transform: translateY(-1px);
3150
+ }
3151
+
3152
+ &:focus-visible {
3153
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3154
+ outline-offset: 2px;
3155
+ }
3156
+ `;
3157
+ var Copyright = styled30.p`
3158
+ margin: 0;
3159
+ font-size: 14px;
3160
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3161
+ line-height: 24px;
3162
+ text-align: center;
3163
+ `;
3164
+ var GlobeSvg = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
3165
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.6" }),
3166
+ /* @__PURE__ */ jsx(
3167
+ "path",
3168
+ {
3169
+ d: "M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18",
3170
+ stroke: "currentColor",
3171
+ strokeWidth: "1.6"
3172
+ }
3173
+ )
3174
+ ] });
3175
+ var MailSvg2 = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
3176
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2", stroke: "currentColor", strokeWidth: "1.6" }),
3177
+ /* @__PURE__ */ jsx("path", { d: "m3 7 9 6 9-6", stroke: "currentColor", strokeWidth: "1.6", strokeLinejoin: "round" })
3178
+ ] });
3179
+ var PhoneSvg = () => /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3180
+ "path",
3181
+ {
3182
+ d: "M5 4h4l2 5-3 2a12 12 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 3 6a2 2 0 0 1 2-2Z",
3183
+ stroke: "currentColor",
3184
+ strokeWidth: "1.6",
3185
+ strokeLinejoin: "round"
3186
+ }
3187
+ ) });
3188
+ var ChevronDown = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3189
+ "path",
3190
+ {
3191
+ d: "M4 6l4 4 4-4",
3192
+ stroke: "currentColor",
3193
+ strokeWidth: "1.5",
3194
+ strokeLinecap: "round",
3195
+ strokeLinejoin: "round"
3196
+ }
3197
+ ) });
3198
+ var ChevronUp = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3199
+ "path",
3200
+ {
3201
+ d: "M4 10l4-4 4 4",
3202
+ stroke: "currentColor",
3203
+ strokeWidth: "1.5",
3204
+ strokeLinecap: "round",
3205
+ strokeLinejoin: "round"
3206
+ }
3207
+ ) });
3208
+ var scrollToTop = () => {
3209
+ if (typeof window === "undefined") return;
3210
+ window.scrollTo({ top: 0, behavior: "smooth" });
3211
+ };
3212
+ var Footer2 = forwardRef(
3213
+ ({
3214
+ columns,
3215
+ companyName,
3216
+ cin,
3217
+ address,
3218
+ contact,
3219
+ socials,
3220
+ footerImage,
3221
+ footerImageAlt = "",
3222
+ copyright,
3223
+ showScrollToTop = false,
3224
+ ...rest
3225
+ }, ref) => {
3226
+ const [openColumns, setOpenColumns] = useState({});
3227
+ const toggleColumn = (heading) => {
3228
+ setOpenColumns((prev) => ({ ...prev, [heading]: !prev[heading] }));
3229
+ };
3230
+ return /* @__PURE__ */ jsxs(Wrapper6, { ref, ...rest, children: [
3231
+ /* @__PURE__ */ jsx(TopAccent, { "aria-hidden": "true" }),
3232
+ /* @__PURE__ */ jsxs(DarkArea, { children: [
3233
+ /* @__PURE__ */ jsx(ColumnsRow, { children: columns.map((column) => {
3234
+ const isOpen = !!openColumns[column.heading];
3235
+ return /* @__PURE__ */ jsxs(Column, { children: [
3236
+ /* @__PURE__ */ jsxs(
3237
+ ColumnHeader,
3238
+ {
3239
+ type: "button",
3240
+ "aria-expanded": isOpen,
3241
+ onClick: () => toggleColumn(column.heading),
3242
+ children: [
3243
+ /* @__PURE__ */ jsx(ColumnHeading, { children: column.heading }),
3244
+ /* @__PURE__ */ jsx(ColumnChevron, { $open: isOpen, "aria-hidden": "true", children: /* @__PURE__ */ jsx(ChevronDown, {}) })
3245
+ ]
3246
+ }
3247
+ ),
3248
+ /* @__PURE__ */ jsx(ColumnLinks, { $open: isOpen, children: column.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(ColumnLink, { href: link.href, children: link.label }) }, `${column.heading}|${link.label}`)) })
3249
+ ] }, column.heading);
3250
+ }) }),
3251
+ /* @__PURE__ */ jsx(Divider3, { "aria-hidden": "true" }),
3252
+ /* @__PURE__ */ jsxs(Address2, { children: [
3253
+ /* @__PURE__ */ jsx(CompanyName, { children: companyName }),
3254
+ cin ? /* @__PURE__ */ jsx(CinLine, { children: cin }) : null,
3255
+ /* @__PURE__ */ jsx(AddressLine, { children: address })
3256
+ ] }),
3257
+ contact ? /* @__PURE__ */ jsxs(ContactRow, { children: [
3258
+ contact.email ? /* @__PURE__ */ jsxs(ContactItem, { href: `mailto:${contact.email}`, children: [
3259
+ /* @__PURE__ */ jsx(ContactIcon, { children: /* @__PURE__ */ jsx(MailSvg2, {}) }),
3260
+ contact.email
3261
+ ] }) : null,
3262
+ contact.phone ? /* @__PURE__ */ jsxs(ContactItem, { href: `tel:${contact.phone.replace(/\s+/g, "")}`, children: [
3263
+ /* @__PURE__ */ jsx(ContactIcon, { children: /* @__PURE__ */ jsx(PhoneSvg, {}) }),
3264
+ contact.phone
3265
+ ] }) : null,
3266
+ contact.websiteUrl ? /* @__PURE__ */ jsxs(ContactItem, { href: contact.websiteUrl, target: "_blank", rel: "noopener noreferrer", children: [
3267
+ /* @__PURE__ */ jsx(ContactIcon, { children: /* @__PURE__ */ jsx(GlobeSvg, {}) }),
3268
+ contact.websiteLabel ?? contact.websiteUrl
3269
+ ] }) : null
3270
+ ] }) : null,
3271
+ socials && socials.length > 0 ? /* @__PURE__ */ jsx(SocialPill, { children: socials.map((social) => /* @__PURE__ */ jsx(
3272
+ SocialLink2,
3273
+ {
3274
+ href: social.href,
3275
+ "aria-label": social.label,
3276
+ target: "_blank",
3277
+ rel: "noopener noreferrer",
3278
+ children: social.icon
3279
+ },
3280
+ social.label
3281
+ )) }) : null,
3282
+ footerImage ? /* @__PURE__ */ jsx(FooterImage, { src: footerImage, alt: footerImageAlt }) : null,
3283
+ /* @__PURE__ */ jsx(Divider3, { "aria-hidden": "true" }),
3284
+ /* @__PURE__ */ jsx(Copyright, { children: copyright })
3285
+ ] }),
3286
+ showScrollToTop ? /* @__PURE__ */ jsx(ScrollToTopButton, { type: "button", onClick: scrollToTop, "aria-label": "Scroll to top", children: /* @__PURE__ */ jsx(ChevronUp, {}) }) : null
3287
+ ] });
3288
+ }
3289
+ );
3290
+ Footer2.displayName = "Footer";
3291
+ var Section8 = styled30.section`
3292
+ position: relative;
3293
+ display: flex;
3294
+ flex-direction: column;
3295
+ align-items: center;
3296
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
3297
+ padding: 0 80px;
3298
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
3299
+
3300
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3301
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
3302
+ }
3303
+ `;
3304
+ var PhotosFrame = styled30.div`
3305
+ position: relative;
3306
+ width: 100%;
3307
+ `;
3308
+ var Track3 = styled30.div`
3309
+ display: flex;
3310
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3311
+ padding: 0 60px;
3312
+ overflow-x: auto;
3313
+ scroll-snap-type: x mandatory;
3314
+ scrollbar-width: none;
3315
+
3316
+ &::-webkit-scrollbar {
3317
+ display: none;
3318
+ }
3319
+
3320
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3321
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
3322
+ }
3323
+ `;
3324
+ var ArrowButton2 = styled30.button`
3325
+ position: absolute;
3326
+ top: 50%;
3327
+ ${({ $side }) => $side === "left" ? "left: 8px;" : "right: 8px;"}
3328
+ transform: translateY(-50%);
3329
+ display: inline-flex;
3330
+ align-items: center;
3331
+ justify-content: center;
3332
+ width: 32px;
3333
+ height: 32px;
3334
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
3335
+ border: none;
3336
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3337
+ color: #fbfbfb;
3338
+ cursor: pointer;
3339
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
3340
+ transition: opacity 0.15s ease;
3341
+ z-index: 1;
3342
+
3343
+ &:disabled {
3344
+ opacity: 0.4;
3345
+ cursor: not-allowed;
3346
+ }
3347
+
3348
+ &:focus-visible {
3349
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3350
+ outline-offset: 2px;
3351
+ }
3352
+
3353
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3354
+ display: none;
3355
+ }
3356
+ `;
3357
+ var ChevronLeft2 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3358
+ "path",
3359
+ {
3360
+ d: "M10 12L6 8l4-4",
3361
+ stroke: "currentColor",
3362
+ strokeWidth: "1.5",
3363
+ strokeLinecap: "round",
3364
+ strokeLinejoin: "round"
3365
+ }
3366
+ ) });
3367
+ var ChevronRight2 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3368
+ "path",
3369
+ {
3370
+ d: "M6 4l4 4-4 4",
3371
+ stroke: "currentColor",
3372
+ strokeWidth: "1.5",
3373
+ strokeLinecap: "round",
3374
+ strokeLinejoin: "round"
3375
+ }
3376
+ ) });
3377
+ var GallerySection = forwardRef(
3378
+ ({ heading, subheading, photos, ...rest }, ref) => {
3379
+ const { ref: trackRef, scrollPrev, scrollNext, canPrev, canNext } = useScrollSnap(photos.length);
3380
+ return /* @__PURE__ */ jsxs(Section8, { ref, ...rest, children: [
3381
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading, align: "center" }),
3382
+ /* @__PURE__ */ jsxs(PhotosFrame, { children: [
3383
+ /* @__PURE__ */ jsx(
3384
+ ArrowButton2,
3385
+ {
3386
+ type: "button",
3387
+ $side: "left",
3388
+ onClick: scrollPrev,
3389
+ disabled: !canPrev,
3390
+ "aria-label": "Previous photos",
3391
+ children: /* @__PURE__ */ jsx(ChevronLeft2, {})
3392
+ }
3393
+ ),
3394
+ /* @__PURE__ */ jsx(Track3, { ref: trackRef, children: photos.map((photo) => /* @__PURE__ */ jsx(
3395
+ GalleryPhoto,
3396
+ {
3397
+ image: photo.image,
3398
+ alt: photo.alt,
3399
+ destination: photo.destination
3400
+ },
3401
+ `${photo.image}|${photo.alt}`
3402
+ )) }),
3403
+ /* @__PURE__ */ jsx(
3404
+ ArrowButton2,
3405
+ {
3406
+ type: "button",
3407
+ $side: "right",
3408
+ onClick: scrollNext,
3409
+ disabled: !canNext,
3410
+ "aria-label": "Next photos",
3411
+ children: /* @__PURE__ */ jsx(ChevronRight2, {})
3412
+ }
3413
+ )
3414
+ ] })
3415
+ ] });
3416
+ }
3417
+ );
3418
+ GallerySection.displayName = "GallerySection";
3419
+ var Section9 = styled30.section`
3420
+ position: relative;
3421
+ display: flex;
3422
+ flex-direction: column;
3423
+ align-items: ${({ $variant }) => $variant === "centered" ? "center" : "flex-start"};
3424
+ justify-content: center;
3425
+ text-align: ${({ $variant }) => $variant === "centered" ? "center" : "left"};
3426
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
3427
+ min-height: 420px;
3428
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.xl} ${theme2.spacing.xl}`};
3429
+ color: #ffffff;
3430
+ background-color: ${({ $backgroundColor, theme: theme2 }) => $backgroundColor ?? theme2.colors.primary};
3431
+ background-image: ${({ $backgroundImage }) => $backgroundImage ? `url(${$backgroundImage})` : "none"};
3432
+ background-size: cover;
3433
+ background-position: center;
3434
+
3435
+ &::before {
3436
+ content: '';
3437
+ position: absolute;
3438
+ inset: 0;
3439
+ background: ${({ $backgroundImage }) => $backgroundImage ? "rgba(0, 0, 0, 0.45)" : "transparent"};
3440
+ pointer-events: none;
3441
+ }
3442
+
3443
+ & > * {
3444
+ position: relative;
3445
+ }
3446
+
3447
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3448
+ align-items: center;
3449
+ text-align: center;
3450
+ min-height: 360px;
3451
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.xl} ${theme2.spacing.md} 0`};
3452
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
3453
+ }
3454
+ `;
3455
+ var TopAccent2 = styled30.span`
3456
+ position: absolute;
3457
+ top: 0;
3458
+ left: 0;
3459
+ right: 0;
3460
+ height: 3px;
3461
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
3462
+ `;
3463
+ var TitleAccent = styled30.div`
3464
+ display: flex;
3465
+ align-items: stretch;
3466
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
3467
+
3468
+ &::before {
3469
+ content: '';
3470
+ width: 4px;
3471
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
3472
+ border-radius: ${({ theme: theme2 }) => theme2.radii.sm};
3473
+ }
3474
+
3475
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3476
+ justify-content: center;
3477
+ gap: 0;
3478
+
3479
+ &::before {
3480
+ display: none;
3481
+ }
3482
+ }
3483
+ `;
3484
+ var Title5 = styled30.h1`
3485
+ margin: 0;
3486
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes["2xl"]};
3487
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
3488
+ line-height: 1.2;
3489
+ max-width: 760px;
3490
+
3491
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3492
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
3493
+ }
3494
+ `;
3495
+ var Subtitle2 = styled30.p`
3496
+ margin: 0;
3497
+ max-width: 640px;
3498
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.lg};
3499
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3500
+ line-height: 1.5;
3501
+ opacity: 0.95;
3502
+ `;
3503
+ var SubtitlePill = styled30.p`
3504
+ display: inline-block;
3505
+ margin: 0;
3506
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.sm} ${theme2.spacing.md}`};
3507
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
3508
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
3509
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
3510
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
3511
+ line-height: 1.4;
3512
+
3513
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3514
+ background: transparent;
3515
+ color: ${({ theme: theme2 }) => theme2.colors.accent};
3516
+ padding: 0;
3517
+ align-self: center;
3518
+ }
3519
+ `;
3520
+ var ReviewsRow = styled30.div`
3521
+ display: flex;
3522
+ flex-wrap: wrap;
3523
+ align-items: center;
3524
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
3525
+ margin-top: auto;
3526
+ padding-top: ${({ theme: theme2 }) => theme2.spacing.xl};
3527
+
3528
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3529
+ width: calc(100% + 2 * ${({ theme: theme2 }) => theme2.spacing.md});
3530
+ margin: ${({ theme: theme2 }) => theme2.spacing.lg} -${({ theme: theme2 }) => theme2.spacing.md} 0;
3531
+ padding: ${({ theme: theme2 }) => theme2.spacing.md};
3532
+ background: #e8fbff;
3533
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
3534
+ justify-content: space-around;
3535
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3536
+ }
3537
+ `;
3538
+ var Wrapper7 = styled30.div`
3539
+ display: inline-flex;
3540
+ align-items: center;
3541
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3542
+ color: inherit;
3543
+ `;
3544
+ var Logo3 = styled30.img`
3545
+ width: 32px;
3546
+ height: 32px;
3547
+ object-fit: contain;
3548
+ `;
3549
+ var Meta = styled30.div`
3550
+ display: flex;
3551
+ flex-direction: column;
3552
+ line-height: 1.2;
3553
+ `;
3554
+ var RatingLine = styled30.span`
3555
+ display: inline-flex;
3556
+ align-items: center;
3557
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
3558
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
3559
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
3560
+ `;
3561
+ var Star = styled30.span`
3562
+ color: ${({ theme: theme2 }) => theme2.colors.accent};
3563
+ `;
3564
+ var ReviewCount = styled30.span`
3565
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
3566
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.regular};
3567
+ opacity: 0.9;
3568
+ `;
3569
+ var RatingBadge = ({ logo, alt, rating, reviewCount }) => /* @__PURE__ */ jsxs(Wrapper7, { children: [
3570
+ /* @__PURE__ */ jsx(Logo3, { src: logo, alt }),
3571
+ /* @__PURE__ */ jsxs(Meta, { children: [
3572
+ /* @__PURE__ */ jsxs(RatingLine, { children: [
3573
+ /* @__PURE__ */ jsx(Star, { "aria-hidden": "true", children: "\u2605" }),
3574
+ rating.toFixed(1)
3575
+ ] }),
3576
+ /* @__PURE__ */ jsxs(ReviewCount, { children: [
3577
+ "(",
3578
+ reviewCount.toLocaleString("en-US"),
3579
+ " reviews)"
3580
+ ] })
3581
+ ] })
3582
+ ] });
3583
+ var Hero = forwardRef((props, ref) => {
3584
+ const variant = props.variant ?? "centered";
3585
+ if (variant === "reviews") {
3586
+ const reviewProps = props;
3587
+ const {
3588
+ title: title2,
3589
+ subtitle: subtitle2,
3590
+ backgroundImage: backgroundImage2,
3591
+ backgroundColor: backgroundColor2,
3592
+ reviews,
3593
+ variant: _variant2,
3594
+ ...rest2
3595
+ } = reviewProps;
3596
+ return /* @__PURE__ */ jsxs(
3597
+ Section9,
3598
+ {
3599
+ ref,
3600
+ $backgroundImage: backgroundImage2,
3601
+ $backgroundColor: backgroundColor2,
3602
+ $variant: "reviews",
3603
+ ...rest2,
3604
+ children: [
3605
+ /* @__PURE__ */ jsx(TopAccent2, { "aria-hidden": "true" }),
3606
+ /* @__PURE__ */ jsx(TitleAccent, { children: /* @__PURE__ */ jsx(Title5, { children: title2 }) }),
3607
+ subtitle2 ? /* @__PURE__ */ jsx(SubtitlePill, { children: subtitle2 }) : null,
3608
+ reviews.length > 0 ? /* @__PURE__ */ jsx(ReviewsRow, { children: reviews.map((review) => /* @__PURE__ */ jsx(RatingBadge, { ...review }, `${review.alt}-${review.rating}`)) }) : null
3609
+ ]
3610
+ }
3611
+ );
3612
+ }
3613
+ const centeredProps = props;
3614
+ const {
3615
+ title,
3616
+ subtitle,
3617
+ backgroundImage,
3618
+ backgroundColor,
3619
+ variant: _variant,
3620
+ ...rest
3621
+ } = centeredProps;
3622
+ return /* @__PURE__ */ jsxs(
3623
+ Section9,
3624
+ {
3625
+ ref,
3626
+ $backgroundImage: backgroundImage,
3627
+ $backgroundColor: backgroundColor,
3628
+ $variant: "centered",
3629
+ ...rest,
3630
+ children: [
3631
+ /* @__PURE__ */ jsx(Title5, { children: title }),
3632
+ subtitle ? /* @__PURE__ */ jsx(Subtitle2, { children: subtitle }) : null
3633
+ ]
3634
+ }
3635
+ );
3636
+ });
3637
+ Hero.displayName = "Hero";
3638
+ var Bar3 = styled30.header`
3639
+ position: sticky;
3640
+ top: 0;
3641
+ z-index: 99;
3642
+ display: flex;
3643
+ align-items: center;
3644
+ justify-content: space-between;
3645
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
3646
+ width: 100%;
3647
+ height: 64px;
3648
+ padding: ${({ theme: theme2 }) => `${theme2.spacing.sm} 48px`};
3649
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3650
+
3651
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3652
+ display: none;
3653
+ }
3654
+ `;
3655
+ var LeftGroup = styled30.div`
3656
+ display: flex;
3657
+ align-items: center;
3658
+ gap: 64px;
3659
+ `;
3660
+ var RightGroup = styled30.div`
3661
+ display: flex;
3662
+ align-items: center;
3663
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
3664
+ `;
3665
+ var LogoLink = styled30.a`
3666
+ display: inline-flex;
3667
+ align-items: center;
3668
+ text-decoration: none;
3669
+ `;
3670
+ var LogoSlot = styled30.span`
3671
+ display: inline-flex;
3672
+ align-items: center;
3673
+ justify-content: center;
3674
+ width: 60px;
3675
+ height: 60px;
3676
+ flex-shrink: 0;
3677
+
3678
+ & > img,
3679
+ & > svg {
3680
+ width: 100%;
3681
+ height: 100%;
3682
+ object-fit: contain;
3683
+ }
3684
+ `;
3685
+ var SearchLink = styled30.a`
3686
+ display: inline-flex;
3687
+ text-decoration: none;
3688
+ flex-shrink: 0;
3689
+ `;
3690
+ var SearchInput = styled30.span`
3691
+ display: inline-flex;
3692
+ align-items: center;
3693
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3694
+ width: 302px;
3695
+ height: 38px;
3696
+ padding: 0 12px 0 24px;
3697
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
3698
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.primary};
3699
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3700
+ color: #707070;
3701
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
3702
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.light};
3703
+ line-height: 24px;
3704
+ `;
3705
+ var SearchPlaceholder = styled30.span`
3706
+ flex: 1 1 auto;
3707
+ min-width: 0;
3708
+ `;
3709
+ var SearchIcon = styled30.span`
3710
+ display: inline-flex;
3711
+ align-items: center;
3712
+ justify-content: center;
3713
+ width: 20px;
3714
+ height: 20px;
3715
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
3716
+ flex-shrink: 0;
3717
+ `;
3718
+ var NavList = styled30.ul`
3719
+ display: flex;
3720
+ align-items: center;
3721
+ gap: 24px;
3722
+ margin: 0;
3723
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.sm};
3724
+ list-style: none;
3725
+ `;
3726
+ var NavItem = styled30.li`
3727
+ display: inline-flex;
3728
+ align-items: center;
3729
+ `;
3730
+ var NavLinkText = styled30.a`
3731
+ position: relative;
3732
+ display: inline-flex;
3733
+ align-items: center;
3734
+ gap: ${({ theme: theme2 }) => theme2.spacing.xs};
3735
+ color: #2d2d2d;
3736
+ text-decoration: none;
3737
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
3738
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
3739
+ line-height: 20px;
3740
+ white-space: nowrap;
3741
+
3742
+ &::after {
3743
+ content: '';
3744
+ position: absolute;
3745
+ left: 0;
3746
+ bottom: -4px;
3747
+ width: 100%;
3748
+ height: 2px;
3749
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
3750
+ transform: scaleX(0);
3751
+ transform-origin: left;
3752
+ transition: transform 0.2s ease;
3753
+ }
3754
+
3755
+ &:hover::after,
3756
+ &:focus-visible::after {
3757
+ transform: scaleX(1);
3758
+ }
3759
+ `;
3760
+ var BadgeIcon = styled30.span`
3761
+ display: inline-flex;
3762
+ align-items: center;
3763
+ justify-content: center;
3764
+ width: 16px;
3765
+ height: 16px;
3766
+ `;
3767
+ var PhoneButton = styled30.a`
3768
+ display: inline-flex;
3769
+ align-items: center;
3770
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3771
+ padding: ${({ theme: theme2 }) => theme2.spacing.sm} 20px;
3772
+ background: transparent;
3773
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.primary};
3774
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3775
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
3776
+ text-decoration: none;
3777
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
3778
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.sm};
3779
+ line-height: 20px;
3780
+ white-space: nowrap;
3781
+ transition: background 0.15s ease, color 0.15s ease;
3782
+
3783
+ &:hover {
3784
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
3785
+ color: #ffffff;
3786
+ }
3787
+ `;
3788
+ var PhoneIconDefault = styled30.span`
3789
+ display: inline-flex;
3790
+ align-items: center;
3791
+ justify-content: center;
3792
+ width: 16px;
3793
+ height: 16px;
3794
+ flex-shrink: 0;
3795
+ `;
3796
+ var SearchSvg2 = () => /* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
3797
+ /* @__PURE__ */ jsx("circle", { cx: "9", cy: "9", r: "6.5", stroke: "currentColor", strokeWidth: "1.5" }),
3798
+ /* @__PURE__ */ jsx(
3799
+ "line",
3800
+ {
3801
+ x1: "13.5",
3802
+ y1: "13.5",
3803
+ x2: "17.5",
3804
+ y2: "17.5",
3805
+ stroke: "currentColor",
3806
+ strokeWidth: "1.5",
3807
+ strokeLinecap: "round"
3808
+ }
3809
+ )
3810
+ ] });
3811
+ var PhoneSvg2 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3812
+ "path",
3813
+ {
3814
+ d: "M14 11.32v2a1.33 1.33 0 0 1-1.45 1.33 13.2 13.2 0 0 1-5.76-2.05 13 13 0 0 1-4-4 13.2 13.2 0 0 1-2.05-5.79 1.33 1.33 0 0 1 1.32-1.45h2a1.33 1.33 0 0 1 1.33 1.15c.08.64.23 1.27.45 1.87a1.33 1.33 0 0 1-.3 1.4l-.85.85a10.67 10.67 0 0 0 4 4l.85-.85a1.33 1.33 0 0 1 1.4-.3c.6.22 1.23.37 1.87.45A1.33 1.33 0 0 1 14 11.32Z",
3815
+ stroke: "currentColor",
3816
+ strokeWidth: "1.4",
3817
+ strokeLinecap: "round",
3818
+ strokeLinejoin: "round"
3819
+ }
3820
+ ) });
3821
+ var Navbar = forwardRef(
3822
+ ({
3823
+ logo,
3824
+ logoHref = "/",
3825
+ links,
3826
+ searchPlaceholder = "Where do you want to go?",
3827
+ searchHref = "/search",
3828
+ phoneNumber,
3829
+ phoneIcon,
3830
+ LinkComponent,
3831
+ ...rest
3832
+ }, ref) => {
3833
+ const Link = LinkComponent ?? "a";
3834
+ return /* @__PURE__ */ jsxs(Bar3, { ref, ...rest, children: [
3835
+ /* @__PURE__ */ jsxs(LeftGroup, { children: [
3836
+ /* @__PURE__ */ jsx(LogoLink, { as: Link, href: logoHref, "aria-label": "Home", children: /* @__PURE__ */ jsx(LogoSlot, { children: typeof logo === "string" ? /* @__PURE__ */ jsx("img", { src: logo, alt: "" }) : logo }) }),
3837
+ /* @__PURE__ */ jsx(SearchLink, { as: Link, href: searchHref, children: /* @__PURE__ */ jsxs(SearchInput, { children: [
3838
+ /* @__PURE__ */ jsx(SearchPlaceholder, { children: searchPlaceholder }),
3839
+ /* @__PURE__ */ jsx(SearchIcon, { children: /* @__PURE__ */ jsx(SearchSvg2, {}) })
3840
+ ] }) })
3841
+ ] }),
3842
+ /* @__PURE__ */ jsxs(RightGroup, { children: [
3843
+ /* @__PURE__ */ jsx("nav", { "aria-label": "Primary", children: /* @__PURE__ */ jsx(NavList, { children: links.map((link) => /* @__PURE__ */ jsx(NavItem, { children: /* @__PURE__ */ jsxs(NavLinkText, { as: Link, href: link.href, children: [
3844
+ /* @__PURE__ */ jsx("span", { children: link.label }),
3845
+ link.badgeIcon ? /* @__PURE__ */ jsx(BadgeIcon, { "aria-hidden": "true", children: link.badgeIcon }) : null
3846
+ ] }) }, link.href)) }) }),
3847
+ phoneNumber ? /* @__PURE__ */ jsxs(PhoneButton, { href: `tel:${phoneNumber.replace(/\s+/g, "")}`, children: [
3848
+ phoneIcon ?? /* @__PURE__ */ jsx(PhoneIconDefault, { "aria-hidden": "true", children: /* @__PURE__ */ jsx(PhoneSvg2, {}) }),
3849
+ /* @__PURE__ */ jsx("span", { children: phoneNumber })
3850
+ ] }) : null
3851
+ ] })
3852
+ ] });
3853
+ }
3854
+ );
3855
+ Navbar.displayName = "Navbar";
3856
+ var Section10 = styled30.section`
3857
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
3858
+ `;
3859
+ var Row3 = styled30.div`
3860
+ display: flex;
3861
+ flex-wrap: wrap;
3862
+ gap: ${({ theme: theme2 }) => theme2.layout.gridGap};
3863
+
3864
+ & > * {
3865
+ flex: 1 1 280px;
3866
+ }
3867
+ `;
3868
+ var OfficesSection = ({
3869
+ heading,
3870
+ subheading,
3871
+ locations,
3872
+ ...rest
3873
+ }) => {
3874
+ return /* @__PURE__ */ jsxs(Section10, { ...rest, children: [
3875
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
3876
+ /* @__PURE__ */ jsx(Row3, { children: locations.map((office) => /* @__PURE__ */ jsx(LocationCard, { ...office }, office.location)) })
3877
+ ] });
3878
+ };
3879
+ OfficesSection.displayName = "OfficesSection";
3880
+ var Section11 = styled30.section`
3881
+ display: flex;
3882
+ flex-direction: column;
3883
+ align-items: center;
3884
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
3885
+ padding: 0 80px;
3886
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
3887
+
3888
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3889
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
3890
+ }
3891
+ `;
3892
+ var Inner2 = styled30.div`
3893
+ display: flex;
3894
+ flex-direction: column;
3895
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
3896
+ width: 100%;
3897
+ `;
3898
+ var Header3 = styled30.div`
3899
+ display: flex;
3900
+ align-items: center;
3901
+ justify-content: space-between;
3902
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
3903
+ `;
3904
+ var Heading5 = styled30.h2`
3905
+ margin: 0;
3906
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
3907
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
3908
+ line-height: 20px;
3909
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
3910
+ `;
3911
+ var ViewAllLink = styled30.a`
3912
+ display: inline-flex;
3913
+ align-items: center;
3914
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3915
+ color: #0b3741;
3916
+ text-decoration: none;
3917
+ font-size: 12px;
3918
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
3919
+ line-height: 20px;
3920
+
3921
+ &:hover {
3922
+ text-decoration: underline;
3923
+ }
3924
+
3925
+ &:focus-visible {
3926
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3927
+ outline-offset: 2px;
3928
+ }
3929
+ `;
3930
+ var CarouselArea = styled30.div`
3931
+ position: relative;
3932
+ width: 100%;
3933
+ `;
3934
+ var Track4 = styled30.div`
3935
+ display: flex;
3936
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
3937
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.lg};
3938
+ overflow-x: auto;
3939
+ scroll-snap-type: x mandatory;
3940
+ scrollbar-width: none;
3941
+
3942
+ &::-webkit-scrollbar {
3943
+ display: none;
3944
+ }
3945
+ `;
3946
+ var ArrowButton3 = styled30.button`
3947
+ position: absolute;
3948
+ top: 50%;
3949
+ ${({ $side }) => $side === "left" ? "left: -8px;" : "right: -8px;"}
3950
+ transform: translateY(-50%);
3951
+ display: inline-flex;
3952
+ align-items: center;
3953
+ justify-content: center;
3954
+ width: 32px;
3955
+ height: 32px;
3956
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
3957
+ border: none;
3958
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
3959
+ color: #fbfbfb;
3960
+ cursor: pointer;
3961
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
3962
+ transition: opacity 0.15s ease;
3963
+ z-index: 1;
3964
+
3965
+ &:disabled {
3966
+ opacity: 0.4;
3967
+ cursor: not-allowed;
3968
+ }
3969
+
3970
+ &:focus-visible {
3971
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
3972
+ outline-offset: 2px;
3973
+ }
3974
+
3975
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
3976
+ display: none;
3977
+ }
3978
+ `;
3979
+ var ChevronLeft3 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3980
+ "path",
3981
+ {
3982
+ d: "M10 12L6 8l4-4",
3983
+ stroke: "currentColor",
3984
+ strokeWidth: "1.5",
3985
+ strokeLinecap: "round",
3986
+ strokeLinejoin: "round"
3987
+ }
3988
+ ) });
3989
+ var ChevronRight3 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
3990
+ "path",
3991
+ {
3992
+ d: "M6 4l4 4-4 4",
3993
+ stroke: "currentColor",
3994
+ strokeWidth: "1.5",
3995
+ strokeLinecap: "round",
3996
+ strokeLinejoin: "round"
3997
+ }
3998
+ ) });
3999
+ var ArrowRight = () => /* @__PURE__ */ jsx("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
4000
+ "path",
4001
+ {
4002
+ d: "M3 8h10M9 4l4 4-4 4",
4003
+ stroke: "currentColor",
4004
+ strokeWidth: "1.5",
4005
+ strokeLinecap: "round",
4006
+ strokeLinejoin: "round"
4007
+ }
4008
+ ) });
4009
+ var PackagesCarousel = forwardRef(
4010
+ ({
4011
+ heading,
4012
+ viewAllHref,
4013
+ viewAllLabel = "View All",
4014
+ months,
4015
+ activeMonthId,
4016
+ onMonthChange,
4017
+ packages,
4018
+ ...rest
4019
+ }, ref) => {
4020
+ const {
4021
+ ref: trackRef,
4022
+ scrollPrev,
4023
+ scrollNext,
4024
+ canPrev,
4025
+ canNext
4026
+ } = useScrollSnap(packages.length);
4027
+ return /* @__PURE__ */ jsx(Section11, { ref, ...rest, children: /* @__PURE__ */ jsxs(Inner2, { children: [
4028
+ /* @__PURE__ */ jsxs(Header3, { children: [
4029
+ /* @__PURE__ */ jsx(Heading5, { children: heading }),
4030
+ viewAllHref ? /* @__PURE__ */ jsxs(ViewAllLink, { href: viewAllHref, children: [
4031
+ viewAllLabel,
4032
+ /* @__PURE__ */ jsx(ArrowRight, {})
4033
+ ] }) : null
4034
+ ] }),
4035
+ /* @__PURE__ */ jsx(MonthTabs, { months, activeMonthId, onMonthChange }),
4036
+ /* @__PURE__ */ jsxs(CarouselArea, { children: [
4037
+ /* @__PURE__ */ jsx(
4038
+ ArrowButton3,
4039
+ {
4040
+ type: "button",
4041
+ $side: "left",
4042
+ onClick: scrollPrev,
4043
+ disabled: !canPrev,
4044
+ "aria-label": "Previous packages",
4045
+ children: /* @__PURE__ */ jsx(ChevronLeft3, {})
4046
+ }
4047
+ ),
4048
+ /* @__PURE__ */ jsx(Track4, { ref: trackRef, children: packages.map((pkg) => /* @__PURE__ */ jsx(
4049
+ PackageCard,
4050
+ {
4051
+ image: pkg.image,
4052
+ alt: pkg.alt,
4053
+ title: pkg.title,
4054
+ currentPrice: pkg.currentPrice,
4055
+ originalPrice: pkg.originalPrice,
4056
+ priceSuffix: pkg.priceSuffix,
4057
+ duration: pkg.duration,
4058
+ location: pkg.location,
4059
+ date: pkg.date,
4060
+ href: pkg.href
4061
+ },
4062
+ `${pkg.image}|${pkg.title}|${pkg.date}`
4063
+ )) }),
4064
+ /* @__PURE__ */ jsx(
4065
+ ArrowButton3,
4066
+ {
4067
+ type: "button",
4068
+ $side: "right",
4069
+ onClick: scrollNext,
4070
+ disabled: !canNext,
4071
+ "aria-label": "Next packages",
4072
+ children: /* @__PURE__ */ jsx(ChevronRight3, {})
4073
+ }
4074
+ )
4075
+ ] })
4076
+ ] }) });
4077
+ }
4078
+ );
4079
+ PackagesCarousel.displayName = "PackagesCarousel";
4080
+ var Section12 = styled30.section`
4081
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
4082
+ `;
4083
+ var Grid = styled30.div`
4084
+ display: grid;
4085
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
4086
+ gap: ${({ theme: theme2 }) => theme2.layout.gridGap};
4087
+
4088
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4089
+ display: flex;
4090
+ flex-wrap: nowrap;
4091
+ overflow-x: auto;
4092
+ scroll-snap-type: x proximity;
4093
+ scrollbar-width: none;
4094
+ -ms-overflow-style: none;
4095
+
4096
+ &::-webkit-scrollbar {
4097
+ display: none;
4098
+ }
4099
+ }
4100
+ `;
4101
+ var TeamSection = ({ heading, subheading, members, ...rest }) => {
4102
+ return /* @__PURE__ */ jsxs(Section12, { ...rest, children: [
4103
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
4104
+ /* @__PURE__ */ jsx(Grid, { children: members.map((member) => /* @__PURE__ */ jsx(TeamInfoCard, { ...member }, `${member.name}-${member.designation}`)) })
4105
+ ] });
4106
+ };
4107
+ TeamSection.displayName = "TeamSection";
4108
+ var Section13 = styled30.section`
4109
+ display: flex;
4110
+ flex-direction: column;
4111
+ align-items: center;
4112
+ gap: 28px;
4113
+ padding: 0 80px;
4114
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
4115
+
4116
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4117
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
4118
+ }
4119
+ `;
4120
+ var Controls = styled30.div`
4121
+ display: flex;
4122
+ align-items: center;
4123
+ justify-content: center;
4124
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
4125
+ `;
4126
+ var ControlArrow = styled30.button`
4127
+ display: inline-flex;
4128
+ align-items: center;
4129
+ justify-content: center;
4130
+ width: 36px;
4131
+ height: 36px;
4132
+ padding: 0;
4133
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
4134
+ border: none;
4135
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
4136
+ color: #fbfbfb;
4137
+ cursor: pointer;
4138
+ transition: opacity 0.15s ease;
4139
+
4140
+ &:disabled {
4141
+ opacity: 0.4;
4142
+ cursor: not-allowed;
4143
+ }
4144
+
4145
+ &:focus-visible {
4146
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
4147
+ outline-offset: 2px;
4148
+ }
4149
+ `;
4150
+ var Indicators2 = styled30.div`
4151
+ display: flex;
4152
+ align-items: center;
4153
+ justify-content: center;
4154
+ gap: 12px;
4155
+ `;
4156
+ var Dot2 = styled30.button`
4157
+ display: inline-block;
4158
+ width: ${({ $active }) => $active ? "20px" : "5px"};
4159
+ height: 6px;
4160
+ padding: 0;
4161
+ border: none;
4162
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
4163
+ background: ${({ $active, theme: theme2 }) => $active ? theme2.colors.primary : theme2.colors.border};
4164
+ cursor: pointer;
4165
+ transition: width 0.2s ease, background 0.2s ease;
4166
+
4167
+ &:focus-visible {
4168
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
4169
+ outline-offset: 2px;
4170
+ }
4171
+ `;
4172
+ var ChevronLeft4 = () => /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
4173
+ "path",
4174
+ {
4175
+ d: "M12 15l-5-5 5-5",
4176
+ stroke: "currentColor",
4177
+ strokeWidth: "2",
4178
+ strokeLinecap: "round",
4179
+ strokeLinejoin: "round"
4180
+ }
4181
+ ) });
4182
+ var ChevronRight4 = () => /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
4183
+ "path",
4184
+ {
4185
+ d: "M8 5l5 5-5 5",
4186
+ stroke: "currentColor",
4187
+ strokeWidth: "2",
4188
+ strokeLinecap: "round",
4189
+ strokeLinejoin: "round"
4190
+ }
4191
+ ) });
4192
+ var TestimonialsCarousel = forwardRef(
4193
+ ({ testimonials, defaultIndex = 0, activeIndex, onActiveIndexChange, ...rest }, ref) => {
4194
+ const isControlled = activeIndex !== void 0;
4195
+ const [internalIndex, setInternalIndex] = useState(defaultIndex);
4196
+ const currentIndex = isControlled ? activeIndex : internalIndex;
4197
+ const setIndex = (next) => {
4198
+ if (!isControlled) setInternalIndex(next);
4199
+ onActiveIndexChange?.(next);
4200
+ };
4201
+ const current = testimonials[currentIndex];
4202
+ if (!current) return null;
4203
+ const isFirst = currentIndex <= 0;
4204
+ const isLast = currentIndex >= testimonials.length - 1;
4205
+ return /* @__PURE__ */ jsxs(Section13, { ref, ...rest, children: [
4206
+ /* @__PURE__ */ jsx(
4207
+ TestimonialCard,
4208
+ {
4209
+ thumbnail: current.thumbnail,
4210
+ thumbnailAlt: current.thumbnailAlt,
4211
+ logo: current.logo,
4212
+ logoAlt: current.logoAlt,
4213
+ caption: current.caption,
4214
+ videoHref: current.videoHref
4215
+ }
4216
+ ),
4217
+ testimonials.length > 1 ? /* @__PURE__ */ jsxs(Controls, { children: [
4218
+ /* @__PURE__ */ jsx(
4219
+ ControlArrow,
4220
+ {
4221
+ type: "button",
4222
+ onClick: () => setIndex(currentIndex - 1),
4223
+ disabled: isFirst,
4224
+ "aria-label": "Previous testimonial",
4225
+ children: /* @__PURE__ */ jsx(ChevronLeft4, {})
4226
+ }
4227
+ ),
4228
+ /* @__PURE__ */ jsx(Indicators2, { role: "tablist", "aria-label": "Testimonial slide", children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsx(
4229
+ Dot2,
4230
+ {
4231
+ type: "button",
4232
+ role: "tab",
4233
+ "aria-selected": index === currentIndex,
4234
+ "aria-label": `Go to testimonial ${index + 1}`,
4235
+ $active: index === currentIndex,
4236
+ onClick: () => setIndex(index)
4237
+ },
4238
+ `${testimonial.thumbnail}|${testimonial.caption}`
4239
+ )) }),
4240
+ /* @__PURE__ */ jsx(
4241
+ ControlArrow,
4242
+ {
4243
+ type: "button",
4244
+ onClick: () => setIndex(currentIndex + 1),
4245
+ disabled: isLast,
4246
+ "aria-label": "Next testimonial",
4247
+ children: /* @__PURE__ */ jsx(ChevronRight4, {})
4248
+ }
4249
+ )
4250
+ ] }) : null
4251
+ ] });
4252
+ }
4253
+ );
4254
+ TestimonialsCarousel.displayName = "TestimonialsCarousel";
4255
+ var Section14 = styled30.section`
4256
+ display: flex;
4257
+ flex-direction: column;
4258
+ align-items: ${({ $align }) => $align === "center" ? "center" : "flex-start"};
4259
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
4260
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
4261
+ text-align: ${({ $align }) => $align};
4262
+ `;
4263
+ var Heading6 = styled30.h2`
4264
+ margin: 0;
4265
+ ${({ theme: theme2 }) => theme2.typography.sectionHeading}
4266
+ `;
4267
+ var Paragraphs = styled30.div`
4268
+ display: flex;
4269
+ flex-direction: column;
4270
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
4271
+ max-width: ${({ theme: theme2 }) => theme2.layout.contentWidth};
4272
+ `;
4273
+ var Paragraph = styled30.p`
4274
+ margin: 0;
4275
+ ${({ theme: theme2 }) => theme2.typography.cardBody}
4276
+ `;
4277
+ var TextSection = forwardRef(
4278
+ ({ heading, paragraphs, align = "left", ...rest }, ref) => /* @__PURE__ */ jsxs(Section14, { ref, $align: align, ...rest, children: [
4279
+ /* @__PURE__ */ jsx(Heading6, { children: heading }),
4280
+ /* @__PURE__ */ jsx(Paragraphs, { children: paragraphs.map((paragraph) => /* @__PURE__ */ jsx(Paragraph, { children: paragraph }, paragraph)) })
4281
+ ] })
4282
+ );
4283
+ TextSection.displayName = "TextSection";
4284
+ var Section15 = styled30.section`
4285
+ position: relative;
4286
+ display: flex;
4287
+ flex-direction: column;
4288
+ padding: 0 80px;
4289
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
4290
+
4291
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4292
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
4293
+ }
4294
+ `;
4295
+ var Banner2 = styled30.div`
4296
+ position: relative;
4297
+ height: 318px;
4298
+ border-radius: ${({ theme: theme2 }) => theme2.radii.lg};
4299
+ overflow: hidden;
4300
+
4301
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4302
+ height: 260px;
4303
+ }
4304
+ `;
4305
+ var BannerMedia = styled30.div`
4306
+ position: absolute;
4307
+ inset: 0;
4308
+
4309
+ & > img,
4310
+ & > video {
4311
+ width: 100%;
4312
+ height: 100%;
4313
+ object-fit: cover;
4314
+ }
4315
+ `;
4316
+ var BannerContent = styled30.div`
4317
+ position: absolute;
4318
+ inset: 0;
4319
+ display: flex;
4320
+ flex-direction: column;
4321
+ justify-content: center;
4322
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
4323
+ padding: 44px;
4324
+ color: #f2f2f2;
4325
+ text-shadow: 0px 6px 24px rgba(0, 0, 0, 0.16);
4326
+ `;
4327
+ var BannerTitle = styled30.h2`
4328
+ margin: 0;
4329
+ font-size: 32px;
4330
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
4331
+ line-height: 40px;
4332
+ letter-spacing: 0.08px;
4333
+ max-width: 436px;
4334
+ `;
4335
+ var BannerDescription = styled30.p`
4336
+ margin: 0;
4337
+ font-size: 12px;
4338
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.bold};
4339
+ line-height: 20px;
4340
+ `;
4341
+ var BannerButton = styled30.button`
4342
+ display: inline-flex;
4343
+ align-items: center;
4344
+ justify-content: center;
4345
+ align-self: flex-start;
4346
+ height: 44px;
4347
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.xl};
4348
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
4349
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
4350
+ border: none;
4351
+ border-radius: ${({ theme: theme2 }) => theme2.radii.md};
4352
+ font-family: inherit;
4353
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.md};
4354
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.medium};
4355
+ line-height: 18px;
4356
+ cursor: pointer;
4357
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.14);
4358
+ transition: background 0.15s ease;
4359
+
4360
+ &:hover {
4361
+ background: ${({ theme: theme2 }) => darken(0.05, theme2.colors.accent)};
4362
+ }
4363
+
4364
+ &:focus-visible {
4365
+ outline: 2px solid #ffffff;
4366
+ outline-offset: 2px;
4367
+ }
4368
+ `;
4369
+ var CardsArea = styled30.div`
4370
+ position: relative;
4371
+ margin-top: -68px;
4372
+ padding: ${({ theme: theme2 }) => theme2.spacing.sm} 25px 0;
4373
+ `;
4374
+ var Track5 = styled30.div`
4375
+ display: flex;
4376
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
4377
+ overflow-x: auto;
4378
+ scroll-snap-type: x mandatory;
4379
+ scrollbar-width: none;
4380
+
4381
+ &::-webkit-scrollbar {
4382
+ display: none;
4383
+ }
4384
+ `;
4385
+ var ProgressBar = styled30.div`
4386
+ position: relative;
4387
+ width: 120px;
4388
+ height: 6px;
4389
+ margin: ${({ theme: theme2 }) => theme2.spacing.md} auto 0;
4390
+ background: #d7d7d7;
4391
+ border-radius: 32px;
4392
+ overflow: hidden;
4393
+ `;
4394
+ var ProgressFill = styled30.span`
4395
+ position: absolute;
4396
+ top: 0;
4397
+ left: 0;
4398
+ width: ${({ $progress }) => `${Math.min(33 + $progress * (120 - 33), 120)}px`};
4399
+ height: 100%;
4400
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
4401
+ border-radius: 32px;
4402
+ transition: width 0.2s ease;
4403
+ `;
4404
+ var ArrowButton4 = styled30.button`
4405
+ position: absolute;
4406
+ top: calc(50% + 30px);
4407
+ ${({ $side }) => $side === "left" ? "left: 8px;" : "right: 8px;"}
4408
+ transform: translateY(-50%);
4409
+ display: inline-flex;
4410
+ align-items: center;
4411
+ justify-content: center;
4412
+ width: 32px;
4413
+ height: 32px;
4414
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
4415
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
4416
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
4417
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
4418
+ cursor: pointer;
4419
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.card};
4420
+ transition: opacity 0.15s ease;
4421
+ z-index: 1;
4422
+
4423
+ &:disabled {
4424
+ opacity: 0.4;
4425
+ cursor: not-allowed;
4426
+ }
4427
+
4428
+ &:focus-visible {
4429
+ outline: 2px solid ${({ theme: theme2 }) => theme2.colors.accent};
4430
+ outline-offset: 2px;
4431
+ }
4432
+
4433
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4434
+ display: none;
4435
+ }
4436
+ `;
4437
+ var ChevronLeft5 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
4438
+ "path",
4439
+ {
4440
+ d: "M10 12L6 8l4-4",
4441
+ stroke: "currentColor",
4442
+ strokeWidth: "1.5",
4443
+ strokeLinecap: "round",
4444
+ strokeLinejoin: "round"
4445
+ }
4446
+ ) });
4447
+ var ChevronRight5 = () => /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
4448
+ "path",
4449
+ {
4450
+ d: "M6 4l4 4-4 4",
4451
+ stroke: "currentColor",
4452
+ strokeWidth: "1.5",
4453
+ strokeLinecap: "round",
4454
+ strokeLinejoin: "round"
4455
+ }
4456
+ ) });
4457
+ var TripsCategorySection = forwardRef(
4458
+ ({ title, description, cta, poster, videoSrc, trips, ...rest }, ref) => {
4459
+ const {
4460
+ ref: trackRef,
4461
+ scrollPrev,
4462
+ scrollNext,
4463
+ canPrev,
4464
+ canNext,
4465
+ scrollProgress
4466
+ } = useScrollSnap(trips.length);
4467
+ const handleCtaClick = () => {
4468
+ if (cta.href) {
4469
+ window.location.assign(cta.href);
4470
+ return;
4471
+ }
4472
+ cta.onClick?.();
4473
+ };
4474
+ return /* @__PURE__ */ jsxs(Section15, { ref, ...rest, children: [
4475
+ /* @__PURE__ */ jsxs(Banner2, { children: [
4476
+ /* @__PURE__ */ jsx(BannerMedia, { children: /* @__PURE__ */ jsx("video", { autoPlay: true, muted: true, loop: true, playsInline: true, poster, src: videoSrc }) }),
4477
+ /* @__PURE__ */ jsxs(BannerContent, { children: [
4478
+ /* @__PURE__ */ jsx(BannerTitle, { children: title }),
4479
+ /* @__PURE__ */ jsx(BannerDescription, { children: description }),
4480
+ /* @__PURE__ */ jsx(BannerButton, { type: "button", onClick: handleCtaClick, children: cta.label })
4481
+ ] })
4482
+ ] }),
4483
+ /* @__PURE__ */ jsxs(CardsArea, { children: [
4484
+ /* @__PURE__ */ jsx(
4485
+ ArrowButton4,
4486
+ {
4487
+ type: "button",
4488
+ $side: "left",
4489
+ onClick: scrollPrev,
4490
+ disabled: !canPrev,
4491
+ "aria-label": "Previous trips",
4492
+ children: /* @__PURE__ */ jsx(ChevronLeft5, {})
4493
+ }
4494
+ ),
4495
+ /* @__PURE__ */ jsx(Track5, { ref: trackRef, children: trips.map((trip) => /* @__PURE__ */ jsx(
4496
+ TripCategoryCard,
4497
+ {
4498
+ image: trip.image,
4499
+ alt: trip.alt,
4500
+ destination: trip.destination,
4501
+ startingPrice: trip.startingPrice,
4502
+ href: trip.href
4503
+ },
4504
+ `${trip.image}|${trip.destination}`
4505
+ )) }),
4506
+ /* @__PURE__ */ jsx(
4507
+ ArrowButton4,
4508
+ {
4509
+ type: "button",
4510
+ $side: "right",
4511
+ onClick: scrollNext,
4512
+ disabled: !canNext,
4513
+ "aria-label": "Next trips",
4514
+ children: /* @__PURE__ */ jsx(ChevronRight5, {})
4515
+ }
4516
+ ),
4517
+ /* @__PURE__ */ jsx(
4518
+ ProgressBar,
4519
+ {
4520
+ role: "progressbar",
4521
+ "aria-valuenow": Math.round(scrollProgress * 100),
4522
+ "aria-valuemin": 0,
4523
+ "aria-valuemax": 100,
4524
+ "aria-label": "Scroll position",
4525
+ children: /* @__PURE__ */ jsx(ProgressFill, { $progress: scrollProgress })
4526
+ }
4527
+ )
4528
+ ] })
4529
+ ] });
4530
+ }
4531
+ );
4532
+ TripsCategorySection.displayName = "TripsCategorySection";
4533
+ var Section16 = styled30.section`
4534
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
4535
+ `;
4536
+ var List2 = styled30.div`
4537
+ display: flex;
4538
+ flex-direction: column;
4539
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
4540
+ max-width: ${({ theme: theme2 }) => theme2.layout.contentWidth};
4541
+ margin: 0 auto;
4542
+ `;
4543
+ var ValuesSection = ({
4544
+ heading,
4545
+ subheading,
4546
+ values,
4547
+ singleOpen = false,
4548
+ ...rest
4549
+ }) => {
4550
+ const [openIndex, setOpenIndex] = useState(null);
4551
+ return /* @__PURE__ */ jsxs(Section16, { ...rest, children: [
4552
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
4553
+ /* @__PURE__ */ jsx(List2, { children: values.map((value, index) => {
4554
+ const serialNumber = index + 1;
4555
+ if (!singleOpen) {
4556
+ return /* @__PURE__ */ jsx(
4557
+ ExpandableValueCard,
4558
+ {
4559
+ serialNumber,
4560
+ title: value.title,
4561
+ bullets: value.bullets
4562
+ },
4563
+ value.title
4564
+ );
4565
+ }
4566
+ return /* @__PURE__ */ jsx(
4567
+ ExpandableValueCard,
4568
+ {
4569
+ serialNumber,
4570
+ title: value.title,
4571
+ bullets: value.bullets,
4572
+ expanded: openIndex === index,
4573
+ onToggle: (next) => setOpenIndex(next ? index : null)
4574
+ },
4575
+ value.title
4576
+ );
4577
+ }) })
4578
+ ] });
4579
+ };
4580
+ ValuesSection.displayName = "ValuesSection";
4581
+ var Section17 = styled30.section`
4582
+ padding: ${({ theme: theme2 }) => theme2.layout.sectionPadding};
4583
+ `;
4584
+ var Grid2 = styled30.div`
4585
+ display: grid;
4586
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
4587
+ gap: ${({ theme: theme2 }) => theme2.layout.gridGap};
4588
+ `;
4589
+ var WarriorsSection = ({
4590
+ heading,
4591
+ subheading,
4592
+ warriors,
4593
+ ...rest
4594
+ }) => {
4595
+ return /* @__PURE__ */ jsxs(Section17, { ...rest, children: [
4596
+ /* @__PURE__ */ jsx(SectionHeader, { heading, subheading }),
4597
+ /* @__PURE__ */ jsx(Grid2, { children: warriors.map((warrior) => /* @__PURE__ */ jsx(WarriorCard, { ...warrior }, warrior.name)) })
4598
+ ] });
4599
+ };
4600
+ WarriorsSection.displayName = "WarriorsSection";
4601
+ var Section18 = styled30.section`
4602
+ display: flex;
4603
+ flex-direction: column;
4604
+ align-items: center;
4605
+ gap: ${({ theme: theme2 }) => theme2.spacing.xl};
4606
+ padding: 0 80px;
4607
+ background: ${({ theme: theme2 }) => theme2.colors.surface};
4608
+
4609
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4610
+ padding: 0 ${({ theme: theme2 }) => theme2.spacing.md};
4611
+ gap: ${({ theme: theme2 }) => theme2.spacing.lg};
4612
+ }
4613
+ `;
4614
+ var Heading7 = styled30.h2`
4615
+ margin: 0;
4616
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes.xl};
4617
+ font-weight: ${({ theme: theme2 }) => theme2.fontWeights.semibold};
4618
+ line-height: 20px;
4619
+ color: ${({ theme: theme2 }) => theme2.colors.secondary};
4620
+ text-align: center;
4621
+ `;
4622
+ var Cards = styled30.div`
4623
+ display: flex;
4624
+ flex-wrap: wrap;
4625
+ align-items: flex-start;
4626
+ justify-content: center;
4627
+ gap: 16px;
4628
+ width: 100%;
4629
+ max-width: 1106px;
4630
+
4631
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4632
+ flex-wrap: nowrap;
4633
+ justify-content: flex-start;
4634
+ gap: ${({ theme: theme2 }) => theme2.spacing.md};
4635
+ overflow-x: auto;
4636
+ scroll-snap-type: x mandatory;
4637
+ padding: ${({ theme: theme2 }) => `0 ${theme2.spacing.xl}`};
4638
+ scrollbar-width: none;
4639
+
4640
+ &::-webkit-scrollbar {
4641
+ display: none;
4642
+ }
4643
+ }
4644
+ `;
4645
+ var Dots = styled30.div`
4646
+ display: none;
4647
+
4648
+ @media (max-width: ${({ theme: theme2 }) => theme2.layout.mobileBreakpoint}) {
4649
+ display: flex;
4650
+ align-items: center;
4651
+ justify-content: center;
4652
+ gap: ${({ theme: theme2 }) => theme2.spacing.sm};
4653
+ }
4654
+ `;
4655
+ var Dot3 = styled30.span`
4656
+ width: ${({ $active }) => $active ? "20px" : "8px"};
4657
+ height: 8px;
4658
+ border-radius: ${({ theme: theme2 }) => theme2.radii.full};
4659
+ background: ${({ $active, theme: theme2 }) => $active ? theme2.colors.primary : theme2.colors.border};
4660
+ transition: width 0.2s ease, background 0.2s ease;
4661
+ `;
4662
+ var WhyChooseSection = forwardRef(
4663
+ ({ heading, features, ...rest }, ref) => {
4664
+ const { ref: trackRef, activeIndex } = useScrollSnap(features.length);
4665
+ return /* @__PURE__ */ jsxs(Section18, { ref, ...rest, children: [
4666
+ /* @__PURE__ */ jsx(Heading7, { children: heading }),
4667
+ /* @__PURE__ */ jsx(Cards, { ref: trackRef, children: features.map((feature) => /* @__PURE__ */ jsx(
4668
+ FeatureCard,
4669
+ {
4670
+ title: feature.title,
4671
+ description: feature.description,
4672
+ illustration: feature.illustration,
4673
+ illustrationAlt: feature.illustrationAlt
4674
+ },
4675
+ feature.title
4676
+ )) }),
4677
+ features.length > 1 ? /* @__PURE__ */ jsx(Dots, { role: "tablist", "aria-label": "Feature carousel position", children: features.map((feature, index) => /* @__PURE__ */ jsx(
4678
+ Dot3,
4679
+ {
4680
+ $active: index === activeIndex,
4681
+ "aria-hidden": "true"
4682
+ },
4683
+ `${feature.title}|dot`
4684
+ )) }) : null
4685
+ ] });
4686
+ }
4687
+ );
4688
+ WhyChooseSection.displayName = "WhyChooseSection";
4689
+ var tokens = {
4690
+ colors: {
4691
+ primary: "#01AFD1",
4692
+ primaryHover: "#0089A6",
4693
+ accent: "#FEE60B",
4694
+ accentHover: "#E6CF09",
4695
+ secondary: "#4A4A4A",
4696
+ secondaryHover: "#333333",
4697
+ danger: "#DC2626",
4698
+ text: "#4A4A4A",
4699
+ textMuted: "#848484",
4700
+ background: "#FFFFFF",
4701
+ surface: "#FFFFFF",
4702
+ border: "#E2E8F0"
4703
+ },
4704
+ spacing: {
4705
+ xs: "4px",
4706
+ sm: "8px",
4707
+ md: "16px",
4708
+ lg: "24px",
4709
+ xl: "32px"
4710
+ },
4711
+ radii: {
4712
+ sm: "4px",
4713
+ md: "8px",
4714
+ lg: "12px",
4715
+ full: "9999px"
4716
+ },
4717
+ fontSizes: {
4718
+ sm: "14px",
4719
+ md: "16px",
4720
+ lg: "18px",
4721
+ xl: "24px",
4722
+ "2xl": "32px"
4723
+ },
4724
+ fontWeights: {
4725
+ light: 300,
4726
+ regular: 400,
4727
+ medium: 500,
4728
+ semibold: 600,
4729
+ bold: 700
4730
+ },
4731
+ shadows: {
4732
+ card: "0px 6px 12px rgba(0, 0, 0, 0.16)",
4733
+ cardLg: "0px 6px 12px rgba(0, 0, 0, 0.40)"
4734
+ }
4735
+ };
4736
+ var typography = {
4737
+ sectionHeading: css`
4738
+ font-size: ${tokens.fontSizes["2xl"]};
4739
+ font-weight: ${tokens.fontWeights.bold};
4740
+ color: ${tokens.colors.text};
4741
+ line-height: 1.2;
4742
+ `,
4743
+ sectionSubheading: css`
4744
+ font-size: ${tokens.fontSizes.md};
4745
+ font-weight: ${tokens.fontWeights.regular};
4746
+ color: ${tokens.colors.textMuted};
4747
+ line-height: 1.5;
4748
+ `,
4749
+ cardTitle: css`
4750
+ font-size: ${tokens.fontSizes.lg};
4751
+ font-weight: ${tokens.fontWeights.semibold};
4752
+ color: ${tokens.colors.text};
4753
+ line-height: 1.3;
4754
+ `,
4755
+ cardBody: css`
4756
+ font-size: ${tokens.fontSizes.sm};
4757
+ font-weight: ${tokens.fontWeights.light};
4758
+ color: ${tokens.colors.text};
4759
+ line-height: 1.5;
4760
+ `,
4761
+ cardLabel: css`
4762
+ font-size: ${tokens.fontSizes.sm};
4763
+ font-weight: ${tokens.fontWeights.medium};
4764
+ color: ${tokens.colors.textMuted};
4765
+ line-height: 1.4;
4766
+ `
4767
+ };
4768
+ var layout = {
4769
+ sectionPadding: `${tokens.spacing.xl} ${tokens.spacing.lg}`,
4770
+ cardPadding: tokens.spacing.lg,
4771
+ gridGap: tokens.spacing.lg,
4772
+ contentWidth: "760px",
4773
+ mobileBreakpoint: "768px"
4774
+ };
4775
+ var theme = {
4776
+ ...tokens,
4777
+ typography,
4778
+ layout
4779
+ };
4780
+
4781
+ export { BottomNav, BrandLogo, BrandsSection, CategoryNavbar, ContactForm, ContactSection, CtaBanner, DestinationCard, DestinationsSection, EventBanner, EventCarousel, ExpandableValueCard, ExploreCard, ExploreSection, FaqExpandable, FaqSection, FeatureCard, Footer2 as Footer, GalleryPhoto, GallerySection, Hero, LocationCard, MonthTabs, Navbar, OfficesSection, PackageCard, PackagesCarousel, SectionHeader, TeamInfoCard, TeamSection, TestimonialCard, TestimonialsCarousel, TextSection, TripCategoryCard, TripsCategorySection, ValuesSection, WarriorCard, WarriorsSection, WhyChooseSection, theme };
4782
+ //# sourceMappingURL=index.js.map
4783
+ //# sourceMappingURL=index.js.map