@harshit-wander/component-lib 1.1.9 → 1.1.11
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/LICENSE +21 -21
- package/README.md +154 -154
- package/dist/index.cjs +295 -149
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +36 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +295 -149
- package/dist/index.js.map +1 -1
- package/package.json +22 -24
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/cn.ts","../src/components/BrandLogo/BrandLogo.tsx","../src/components/ContactForm/ContactForm.tsx","../src/components/DestinationCard/DestinationCard.tsx","../src/components/EventBanner/EventBanner.tsx","../src/components/EventVideoBanner/EventVideoBanner.tsx","../src/components/ExpandableValueCard/ExpandableValueCard.tsx","../src/components/ExploreCard/ExploreCard.tsx","../src/components/FaqExpandable/FaqExpandable.tsx","../src/components/FeatureCard/FeatureCard.tsx","../src/components/GalleryPhoto/GalleryPhoto.tsx","../src/components/LocationCard/LocationCard.tsx","../src/components/MonthTabs/MonthTabs.tsx","../src/components/PackageCard/PackageCard.tsx","../src/components/SectionHeader/SectionHeader.tsx","../src/components/TeamInfoCard/TeamInfoCard.tsx","../src/components/TestimonialCard/TestimonialCard.tsx","../src/components/TripCategoryCard/TripCategoryCard.tsx","../src/components/WarriorCard/WarriorCard.tsx","../src/sections/BottomNav/BottomNav.tsx","../src/sections/BrandsSection/BrandsSection.tsx","../src/sections/CategoryNavbar/CategoryDropdown.tsx","../src/sections/CategoryNavbar/Hamburger.tsx","../src/sections/CategoryNavbar/MobileDrawer.tsx","../src/sections/CategoryNavbar/CategoryNavbar.tsx","../src/sections/ContactSection/ContactSection.tsx","../src/sections/CtaBanner/CtaBanner.tsx","../src/sections/DestinationsSection/DestinationsSection.tsx","../src/components/_internal/useScrollSnap.ts","../src/sections/EventCarousel/EventCarousel.tsx","../src/sections/ExploreSection/ExploreSection.tsx","../src/sections/FaqSection/FaqSection.tsx","../src/sections/Footer/Footer.tsx","../src/sections/GallerySection/GallerySection.tsx","../src/sections/Hero/RatingBadge.tsx","../src/sections/Hero/Hero.tsx","../src/sections/HomeHero/RatingBadge.tsx","../src/sections/HomeHero/useTypewriter.ts","../src/sections/HomeHero/HomeHero.tsx","../src/sections/Navbar/Navbar.tsx","../src/sections/OfficesSection/OfficesSection.tsx","../src/sections/PackagesCarousel/PackagesCarousel.tsx","../src/sections/SiteHeader/SiteHeader.tsx","../src/sections/TeamSection/TeamSection.tsx","../src/sections/TestimonialsCarousel/TestimonialsCarousel.tsx","../src/sections/TextSection/TextSection.tsx","../src/sections/TripsCategorySection/TripsCategorySection.tsx","../src/sections/UctMobileBanner/UctMobileBanner.tsx","../src/sections/ValuesSection/ValuesSection.tsx","../src/sections/WarriorsSection/WarriorsSection.tsx","../src/sections/WhyChooseSection/WhyChooseSection.tsx","../src/theme/theme.ts"],"names":["jsxs","jsx","forwardRef","Fragment","frameClass","useState","useId","cardClass","ChevronSvg","useRef","ref","useEffect","MailSvg","ChevronLeft","ChevronRight","arrowBase","title","subtitle","backgroundImage","backgroundColor","_variant","className","rest","RatingBadge","SearchSvg","PhoneSvg"],"mappings":"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","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\nexport const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs))\r\n","import { forwardRef, type Ref } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { BrandLogoProps } from './BrandLogo.types'\r\n\r\nconst containerClass =\r\n 'inline-flex flex-col items-center justify-center gap-sm p-md bg-surface border border-border rounded-md no-underline text-inherit'\r\n\r\nexport const BrandLogo = forwardRef<HTMLElement, BrandLogoProps>(\r\n ({ logo, name, href, className, ...rest }, ref) => {\r\n const content = (\r\n <>\r\n <img src={logo} alt={name} className=\"h-[50px] w-auto max-w-full object-contain\" />\r\n <span className=\"text-sm font-medium leading-button text-text\">{name}</span>\r\n </>\r\n )\r\n\r\n if (href) {\r\n return (\r\n <a\r\n ref={ref as Ref<HTMLAnchorElement>}\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className={cn(containerClass, 'hover:border-primary', className)}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n )\r\n }\r\n\r\n return (\r\n <div ref={ref as Ref<HTMLDivElement>} className={cn(containerClass, className)} {...rest}>\r\n {content}\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nBrandLogo.displayName = 'BrandLogo'\r\n","'use client'\r\n\r\nimport { cva } from 'class-variance-authority'\r\nimport { type FormEvent, forwardRef, useId, useState } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type {\r\n ContactFormCountryCode,\r\n ContactFormHeaderVariant,\r\n ContactFormProps,\r\n ContactFormValues\r\n} from './ContactForm.types'\r\n\r\nconst PersonSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <circle cx=\"12\" cy=\"8\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\r\n <path d=\"M4 20a8 8 0 0 1 16 0\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\r\n </svg>\r\n)\r\n\r\nconst MailSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\r\n <path d=\"m3 7 9 6 9-6\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\r\n </svg>\r\n)\r\n\r\nconst DEFAULT_COUNTRY_CODES: ContactFormCountryCode[] = [{ code: '+91' }]\r\n\r\nconst resolveMaxWidth = (input: number | string | undefined): string => {\r\n if (input == null) return '480px'\r\n return typeof input === 'number' ? `${input}px` : input\r\n}\r\n\r\nconst resolveHeaderVariant = (\r\n variant: ContactFormHeaderVariant | undefined,\r\n hasIllustration: boolean\r\n): ContactFormHeaderVariant => {\r\n if (variant) return variant\r\n return hasIllustration ? 'illustration' : 'tinted'\r\n}\r\n\r\nconst formClass = cva('flex flex-col w-full', {\r\n variants: {\r\n variant: {\r\n card: 'bg-background rounded-lg shadow-card overflow-hidden',\r\n plain: 'bg-transparent'\r\n }\r\n }\r\n})\r\n\r\nconst inputClass =\r\n 'flex-1 min-w-0 p-0 bg-transparent border-none outline-none font-[inherit] text-form-input text-text placeholder:text-text-muted placeholder:opacity-80'\r\n\r\nconst selectClass = `${inputClass} pr-[18px] cursor-pointer appearance-none bg-no-repeat bg-[right_0_center] bg-[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>\")] invalid:text-text-muted`\r\n\r\nexport const ContactForm = forwardRef<HTMLFormElement, ContactFormProps>(\r\n (\r\n {\r\n variant = 'card',\r\n headerVariant,\r\n eyebrow = 'Wanderlust Calling?',\r\n heading = 'Allow Us to Call You Back!',\r\n submitLabel = 'Submit',\r\n headerIllustration,\r\n countryCodes,\r\n destinations,\r\n maxWidth,\r\n onSubmit,\r\n className,\r\n style,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const baseId = useId()\r\n const codes = countryCodes && countryCodes.length > 0 ? countryCodes : DEFAULT_COUNTRY_CODES\r\n const firstCode = codes[0]?.code ?? '+91'\r\n const showDestination = !!destinations && destinations.length > 0\r\n const resolvedHeader = resolveHeaderVariant(headerVariant, !!headerIllustration)\r\n\r\n const [values, setValues] = useState<ContactFormValues>({\r\n name: '',\r\n phone: '',\r\n countryCode: firstCode,\r\n email: '',\r\n destination: ''\r\n })\r\n\r\n const update = (key: keyof ContactFormValues, value: string) => {\r\n setValues((prev) => ({ ...prev, [key]: value }))\r\n }\r\n\r\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\r\n event.preventDefault()\r\n onSubmit?.(values)\r\n }\r\n\r\n return (\r\n <form\r\n ref={ref}\r\n onSubmit={handleSubmit}\r\n noValidate\r\n className={cn(formClass({ variant }), className)}\r\n style={{ maxWidth: resolveMaxWidth(maxWidth), ...style }}\r\n {...rest}\r\n >\r\n {resolvedHeader === 'none' ? null : (\r\n <div className=\"flex items-end justify-between gap-md w-full py-md pt-lg px-xl pb-md bg-brand-shade-1 max-md:pt-5 max-md:px-lg max-md:pb-3.5\">\r\n <div className=\"flex flex-col gap-xs flex-auto min-w-0\">\r\n <p className=\"m-0 text-form-eyebrow text-primary\">{eyebrow}</p>\r\n <p className=\"m-0 text-form-heading text-text\">{heading}</p>\r\n </div>\r\n {resolvedHeader === 'illustration' && headerIllustration ? (\r\n <div\r\n aria-hidden=\"true\"\r\n className=\"shrink-0 flex items-end justify-center h-20 [&>img]:h-full [&>img]:w-auto [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:object-contain\"\r\n >\r\n {headerIllustration}\r\n </div>\r\n ) : null}\r\n </div>\r\n )}\r\n\r\n <div className=\"flex flex-col gap-lg p-xl max-md:p-lg max-md:gap-md\">\r\n <FieldShell labelFor={`${baseId}-name`} label=\"Name\" required>\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center w-6 h-6 shrink-0 text-text-muted\"\r\n >\r\n <PersonSvg />\r\n </span>\r\n <input\r\n id={`${baseId}-name`}\r\n name=\"name\"\r\n type=\"text\"\r\n required\r\n placeholder=\"e.g. John Smith\"\r\n value={values.name}\r\n onChange={(e) => update('name', e.target.value)}\r\n className={inputClass}\r\n />\r\n </FieldShell>\r\n\r\n <FieldShell labelFor={`${baseId}-phone`} label=\"Phone Number\" required>\r\n <select\r\n aria-label=\"Country code\"\r\n value={values.countryCode}\r\n onChange={(e) => update('countryCode', e.target.value)}\r\n className={`shrink-0 pr-3.5 mr-sm bg-transparent border-none outline-none border-r border-r-border font-[inherit] text-form-input-strong text-text cursor-pointer appearance-none bg-no-repeat bg-[right_0_center] bg-[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>\")]`}\r\n >\r\n {codes.map((c) => (\r\n <option key={c.code} value={c.code}>\r\n {c.label ?? c.code}\r\n </option>\r\n ))}\r\n </select>\r\n <input\r\n id={`${baseId}-phone`}\r\n name=\"phone\"\r\n type=\"tel\"\r\n required\r\n placeholder=\"Enter your 10 digit number\"\r\n value={values.phone}\r\n onChange={(e) => update('phone', e.target.value)}\r\n className={inputClass}\r\n />\r\n </FieldShell>\r\n\r\n {showDestination ? (\r\n <FieldShell labelFor={`${baseId}-destination`} label=\"Destination\">\r\n <select\r\n id={`${baseId}-destination`}\r\n name=\"destination\"\r\n value={values.destination}\r\n onChange={(e) => update('destination', e.target.value)}\r\n className={selectClass}\r\n >\r\n <option value=\"\">-- Select destination --</option>\r\n {destinations?.map((d) => (\r\n <option key={d.value} value={d.value}>\r\n {d.label}\r\n </option>\r\n ))}\r\n </select>\r\n </FieldShell>\r\n ) : null}\r\n\r\n <FieldShell labelFor={`${baseId}-email`} label=\"Email Id\">\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center w-6 h-6 shrink-0 text-text-muted\"\r\n >\r\n <MailSvg />\r\n </span>\r\n <input\r\n id={`${baseId}-email`}\r\n name=\"email\"\r\n type=\"email\"\r\n placeholder=\"john@example.com\"\r\n value={values.email}\r\n onChange={(e) => update('email', e.target.value)}\r\n className={inputClass}\r\n />\r\n </FieldShell>\r\n\r\n <button\r\n type=\"submit\"\r\n className=\"inline-flex items-center justify-center h-12 w-full py-2.5 px-xl mt-xs bg-accent border-none rounded-full text-text font-[inherit] text-md font-semibold leading-6 cursor-pointer transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2\"\r\n >\r\n {submitLabel}\r\n </button>\r\n </div>\r\n </form>\r\n )\r\n }\r\n)\r\n\r\nContactForm.displayName = 'ContactForm'\r\n\r\n/* Inline subcomponent to keep the shell + floating label markup tidy. */\r\nfunction FieldShell({\r\n label,\r\n labelFor,\r\n required,\r\n children\r\n}: {\r\n label: string\r\n labelFor: string\r\n required?: boolean\r\n children: React.ReactNode\r\n}) {\r\n return (\r\n <div className=\"relative w-full\">\r\n <div className=\"group relative flex items-center gap-sm min-h-14 py-3.5 px-md bg-background border border-border rounded-md transition-colors duration-150 ease-in focus-within:border-primary\">\r\n <label\r\n htmlFor={labelFor}\r\n className=\"absolute -top-2 left-3 inline-flex items-center px-1 bg-background text-form-label text-text opacity-80 group-focus-within:text-primary group-focus-within:opacity-100\"\r\n >\r\n {label}\r\n {required ? <span className=\"ml-[2px] text-danger font-semibold\">*</span> : null}\r\n </label>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { DestinationCardProps } from './DestinationCard.types'\n\nconst cardClass =\n 'shrink-0 flex flex-col items-center gap-sm w-[66px] no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:rounded-md'\n\nexport const DestinationCard = forwardRef<HTMLElement, DestinationCardProps>(\n ({ image, alt, label, href, className, ...rest }, ref) => {\n const content = (\n <>\n <img\n src={image}\n alt={alt}\n className=\"w-[66px] h-[66px] rounded-full object-cover bg-border\"\n />\n <span className=\"text-sm font-medium leading-5 text-secondary text-center whitespace-nowrap\">\n {label}\n </span>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nDestinationCard.displayName = 'DestinationCard'\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { EventBannerProps } from './EventBanner.types'\r\n\r\nconst frameClass =\r\n 'block w-full h-[300px] overflow-hidden rounded-md no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nexport const EventBanner = forwardRef<HTMLDivElement, EventBannerProps>(\r\n ({ imageUrl, alt, href, className, ...rest }, ref) => (\r\n <div ref={ref} className={cn('shrink-0 w-full snap-start', className)} {...rest}>\r\n {href ? (\r\n <a href={href} className={frameClass}>\r\n <img src={imageUrl} alt={alt} className=\"block w-full h-full object-cover\" />\r\n </a>\r\n ) : (\r\n <div className={frameClass}>\r\n <img src={imageUrl} alt={alt} className=\"block w-full h-full object-cover\" />\r\n </div>\r\n )}\r\n </div>\r\n )\r\n)\r\n\r\nEventBanner.displayName = 'EventBanner'\r\n","'use client'\n\nimport { forwardRef, useEffect, useRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { EventVideoBannerProps } from './EventVideoBanner.types'\n\nconst frameClass =\n 'block w-full h-[300px] overflow-hidden rounded-md no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nconst videoClass = 'block w-full h-full object-cover'\n\nexport const EventVideoBanner = forwardRef<HTMLDivElement, EventVideoBannerProps>(\n ({ posterUrl, videoUrl, alt, href, className, ...rest }, ref) => {\n const videoRef = useRef<HTMLVideoElement>(null)\n\n useEffect(() => {\n const video = videoRef.current\n if (!video || !videoUrl) return\n\n if (!videoUrl.includes('.m3u8')) {\n video.src = videoUrl\n return\n }\n\n // Safari / iOS — native HLS\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoUrl\n return\n }\n\n // Chrome / Android / Firefox — lazy-load hls.js\n let cancelled = false\n import('hls.js').then(({ default: Hls }) => {\n if (cancelled || !Hls.isSupported()) return\n const hls = new Hls({ autoStartLoad: true, startLevel: -1 })\n hls.loadSource(videoUrl)\n hls.attachMedia(video)\n // store on element for cleanup\n ;(video as HTMLVideoElement & { _hls?: typeof hls })._hls = hls\n })\n\n return () => {\n cancelled = true\n const stored = (video as HTMLVideoElement & { _hls?: { destroy(): void } })._hls\n stored?.destroy()\n }\n }, [videoUrl])\n\n const videoEl = (\n <video\n ref={videoRef}\n src={videoUrl?.includes('.m3u8') ? undefined : videoUrl}\n poster={posterUrl}\n aria-label={alt}\n muted\n autoPlay\n loop\n playsInline\n preload=\"metadata\"\n className={videoClass}\n />\n )\n\n return (\n <div ref={ref} className={cn('shrink-0 w-full snap-start', className)} {...rest}>\n {href ? (\n <a href={href} className={frameClass}>\n {videoEl}\n </a>\n ) : (\n <div className={frameClass}>{videoEl}</div>\n )}\n </div>\n )\n }\n)\n\nEventVideoBanner.displayName = 'EventVideoBanner'\n","'use client'\r\n\r\nimport { forwardRef, useId, useState } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { ExpandableValueCardProps } from './ExpandableValueCard.types'\r\n\r\nexport const ExpandableValueCard = forwardRef<HTMLElement, ExpandableValueCardProps>(\r\n (\r\n { serialNumber, title, bullets, defaultOpen = false, expanded, onToggle, className, ...rest },\r\n ref\r\n ) => {\r\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\r\n const isControlled = expanded !== undefined\r\n const open = isControlled ? expanded : internalOpen\r\n const panelId = useId()\r\n const formattedSerial = String(serialNumber).padStart(2, '0')\r\n\r\n const handleToggle = () => {\r\n const next = !open\r\n if (!isControlled) {\r\n setInternalOpen(next)\r\n }\r\n onToggle?.(next)\r\n }\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn('border border-border rounded-md overflow-hidden bg-surface', className)}\r\n {...rest}\r\n >\r\n <button\r\n type=\"button\"\r\n aria-expanded={open}\r\n aria-controls={panelId}\r\n onClick={handleToggle}\r\n className={cn(\r\n 'flex items-center gap-md w-full py-md px-lg border-none cursor-pointer text-left transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\r\n open ? 'bg-primary text-white' : 'bg-surface text-text'\r\n )}\r\n >\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'shrink-0 min-w-[36px] text-lg font-bold',\r\n open ? 'text-white' : 'text-text-muted'\r\n )}\r\n >\r\n {formattedSerial}\r\n </span>\r\n <span className=\"flex-1 text-card-title text-inherit\">{title}</span>\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n \"inline-flex items-center justify-center w-4 h-4 shrink-0 transition-transform duration-200 ease-in before:content-['›'] before:text-[24px] before:leading-none\",\r\n open ? 'rotate-90' : 'rotate-0'\r\n )}\r\n />\r\n </button>\r\n <div id={panelId} className={cn('py-md px-lg bg-surface', open ? 'block' : 'hidden')}>\r\n <ul className=\"m-0 pl-lg flex flex-col gap-xs\">\r\n {bullets.map((text) => (\r\n <li key={text} className=\"text-card-body [overflow-wrap:anywhere]\">\r\n {text}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nExpandableValueCard.displayName = 'ExpandableValueCard'\r\n","import { forwardRef, type Ref } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { ExploreCardProps } from './ExploreCard.types'\r\n\r\nconst cardClass =\r\n 'shrink-0 w-[132px] flex flex-col bg-surface border border-border rounded-lg overflow-hidden no-underline text-inherit shadow-[0_1px_4px_rgba(0,0,0,0.06)] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nexport const ExploreCard = forwardRef<HTMLElement, ExploreCardProps>(\r\n ({ image, alt, label, href, className, ...rest }, ref) => {\r\n const content = (\r\n <>\r\n <img src={image} alt={alt} className=\"block w-full h-[102px] object-cover\" />\r\n <span className=\"flex items-center justify-center min-h-[56px] py-sm px-md text-md font-medium leading-card text-secondary text-center\">\r\n {label}\r\n </span>\r\n </>\r\n )\r\n\r\n if (href) {\r\n return (\r\n <a\r\n ref={ref as Ref<HTMLAnchorElement>}\r\n href={href}\r\n className={cn(cardClass, className)}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n )\r\n }\r\n\r\n return (\r\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\r\n {content}\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nExploreCard.displayName = 'ExploreCard'\r\n","'use client'\r\n\r\nimport { forwardRef, useId, useState } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { FaqExpandableProps } from './FaqExpandable.types'\r\n\r\nexport const FaqExpandable = forwardRef<HTMLElement, FaqExpandableProps>(\r\n ({ question, bullets, defaultOpen = false, expanded, onToggle, className, ...rest }, ref) => {\r\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\r\n const isControlled = expanded !== undefined\r\n const open = isControlled ? expanded : internalOpen\r\n const panelId = useId()\r\n\r\n const handleToggle = () => {\r\n const next = !open\r\n if (!isControlled) {\r\n setInternalOpen(next)\r\n }\r\n onToggle?.(next)\r\n }\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn('border border-border rounded-md overflow-hidden bg-surface', className)}\r\n {...rest}\r\n >\r\n <button\r\n type=\"button\"\r\n aria-expanded={open}\r\n aria-controls={panelId}\r\n onClick={handleToggle}\r\n className={cn(\r\n 'flex items-center justify-between gap-md w-full py-md px-lg border-none cursor-pointer text-md font-semibold text-left transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\r\n open ? 'bg-primary text-white' : 'bg-surface text-text'\r\n )}\r\n >\r\n <span>{question}</span>\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n \"inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in before:content-['›'] before:text-[24px] before:leading-none\",\r\n open ? 'rotate-90' : 'rotate-0'\r\n )}\r\n />\r\n </button>\r\n <div id={panelId} className={cn('py-md px-lg bg-surface', open ? 'block' : 'hidden')}>\r\n <ul className=\"m-0 pl-lg flex flex-col gap-xs\">\r\n {bullets.map((text) => (\r\n <li key={text} className=\"text-sm text-text leading-body [overflow-wrap:anywhere]\">\r\n {text}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nFaqExpandable.displayName = 'FaqExpandable'\r\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { FeatureCardProps } from './FeatureCard.types'\n\nexport const FeatureCard = forwardRef<HTMLElement, FeatureCardProps>(\n ({ heading: h, description: d, imageUrl, className, style, ...rest }, ref) => (\n <article\n ref={ref}\n className={cn(\n 'relative flex flex-col w-full aspect-[268/355] rounded-lg overflow-hidden shadow-card border border-border bg-surface',\n className\n )}\n style={style}\n {...rest}\n >\n <div className=\"relative z-10 flex flex-col gap-sm px-lg pt-lg\">\n <h3 className=\"m-0 text-lg font-semibold leading-card text-primary\">{h}</h3>\n {d ? <p className=\"m-0 text-sm font-normal leading-body text-text\">{d}</p> : null}\n </div>\n {imageUrl ? (\n <img\n src={imageUrl}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"absolute bottom-0 left-0 w-full pointer-events-none\"\n />\n ) : null}\n </article>\n )\n)\n\nFeatureCard.displayName = 'FeatureCard'\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { GalleryPhotoProps } from './GalleryPhoto.types'\r\n\r\nconst PinSvg = () => (\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n 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\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.4\"\r\n strokeLinejoin=\"round\"\r\n fill=\"none\"\r\n />\r\n </svg>\r\n)\r\n\r\nexport const GalleryPhoto = forwardRef<HTMLDivElement, GalleryPhotoProps>(\r\n ({ image, alt, destination, className, ...rest }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'relative shrink-0 w-[270px] h-[400px] max-md:w-[calc(100vw-2rem)] max-md:h-auto max-md:aspect-[270/400] snap-start overflow-hidden bg-border',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <img src={image} alt={alt} className=\"block w-full h-full object-cover\" />\r\n <div className=\"absolute bottom-12 left-sm inline-flex items-center gap-xs py-[2px] px-[6px] bg-black/40 border-[0.5px] border-secondary rounded-full text-on-dark text-xs font-normal leading-4 max-md:bottom-8\">\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center w-4 h-4 text-on-dark\"\r\n >\r\n <PinSvg />\r\n </span>\r\n {destination}\r\n </div>\r\n </div>\r\n )\r\n)\r\n\r\nGalleryPhoto.displayName = 'GalleryPhoto'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { LocationCardProps } from './LocationCard.types'\r\n\r\nexport const LocationCard = forwardRef<HTMLElement, LocationCardProps>(\r\n ({ location, address, logo, className, ...rest }, ref) => (\r\n <article\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col items-start gap-sm p-lg bg-surface border border-border rounded-lg',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n {logo !== undefined ? (\r\n <div\r\n aria-hidden=\"true\"\r\n className=\"flex items-center h-[50px] [&>img]:h-full [&>img]:w-auto [&>img]:max-w-full [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:max-w-full [&>svg]:object-contain\"\r\n >\r\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\r\n </div>\r\n ) : null}\r\n <h3 className=\"m-0 text-card-title\">{location}</h3>\r\n <span aria-hidden=\"true\" className=\"block w-[56px] h-[2px] bg-accent rounded-sm\" />\r\n <p className=\"m-0 whitespace-pre-line text-card-body\">{address}</p>\r\n </article>\r\n )\r\n)\r\n\r\nLocationCard.displayName = 'LocationCard'\r\n","'use client'\r\n\r\nimport { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { MonthTabsProps } from './MonthTabs.types'\r\n\r\nconst tabBase =\r\n 'shrink-0 inline-flex items-center h-[34px] py-[5px] px-[17px] rounded-full font-[inherit] text-xs font-normal leading-4 whitespace-nowrap cursor-pointer transition-colors duration-150 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nconst tabActive = 'bg-tab-active-bg border border-text-emphasis text-text-emphasis'\r\nconst tabInactive = 'bg-transparent border border-tab-inactive-border text-text-faded'\r\n\r\nexport const MonthTabs = forwardRef<HTMLDivElement, MonthTabsProps>(\r\n ({ months, activeMonthId, onMonthChange, className, ...rest }, ref) => (\r\n <div ref={ref} className={cn('flex flex-col gap-md w-full', className)} {...rest}>\r\n <div\r\n role=\"tablist\"\r\n className=\"flex items-center gap-[12px] overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\r\n >\r\n {months.map((month) => {\r\n const isActive = month.id === activeMonthId\r\n return (\r\n <button\r\n key={month.id}\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected={isActive}\r\n onClick={() => onMonthChange(month.id)}\r\n className={cn(tabBase, isActive ? tabActive : tabInactive)}\r\n >\r\n {month.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n <span aria-hidden=\"true\" className=\"block w-full h-px bg-divider-strong\" />\r\n </div>\r\n )\r\n)\r\n\r\nMonthTabs.displayName = 'MonthTabs'\r\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { PackageCardProps } from './PackageCard.types'\n\nconst ClockSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path\n d=\"M9 5.5V9l2.5 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst LocationSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path\n 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\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n)\n\nconst CalendarSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2.5\" y=\"3.5\" width=\"13\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path\n d=\"M2.5 7h13M6 1.5v3M12 1.5v3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\nconst cardClass =\n 'relative flex flex-col justify-between shrink-0 w-[264px] h-[392px] py-[12px] px-md rounded-md overflow-hidden no-underline text-inherit snap-start focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:w-[320px]'\n\nconst infoItemClass =\n 'flex items-center gap-xs min-w-0 text-xs font-medium leading-5 text-info-on-dark'\n\nconst infoIconClass = 'inline-flex items-center justify-center w-[18px] h-[18px] shrink-0'\n\nexport const PackageCard = forwardRef<HTMLElement, PackageCardProps>(\n (\n {\n image,\n alt,\n title,\n currentPrice,\n originalPrice,\n priceSuffix = 'Onwards',\n duration,\n location,\n date,\n href,\n className,\n ...rest\n },\n ref\n ) => {\n const content = (\n <>\n <span\n role=\"img\"\n aria-label={alt}\n className=\"absolute inset-0 bg-cover bg-center pointer-events-none\"\n style={{ backgroundImage: `url(${image})` }}\n />\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 pointer-events-none bg-[linear-gradient(180deg,rgba(0,0,0,0)_21.67%,rgba(0,0,0,1)_86.21%)]\"\n />\n <div className=\"relative inline-flex items-center self-start gap-xs py-[4px] px-md bg-accent border border-surface rounded-full\">\n {originalPrice ? (\n <span className=\"relative text-2xs font-normal leading-18 text-strike after:content-[''] after:absolute after:left-[-2px] after:right-[-2px] after:top-1/2 after:h-px after:bg-strike after:rotate-[-8deg]\">\n {originalPrice}\n </span>\n ) : null}\n <span className=\"text-sm font-semibold leading-4 text-text-deep\">{currentPrice}</span>\n <span className=\"text-xs font-normal leading-4 text-text-deep\">{priceSuffix}</span>\n </div>\n <div className=\"relative flex flex-col gap-md text-on-image\">\n <p className=\"m-0 text-xs font-medium leading-5\">{title}</p>\n <div className=\"flex flex-col gap-xs min-w-0\">\n <div className=\"flex items-center gap-xl min-w-0\">\n <span className={cn(infoItemClass, 'shrink-0')}>\n <span className={infoIconClass}>\n <ClockSvg />\n </span>\n <span className=\"truncate\">{duration}</span>\n </span>\n <span className={cn(infoItemClass, 'flex-1')}>\n <span className={infoIconClass}>\n <LocationSvg />\n </span>\n <span className=\"truncate\">{location}</span>\n </span>\n </div>\n <span className={infoItemClass}>\n <span className={infoIconClass}>\n <CalendarSvg />\n </span>\n <span className=\"truncate\">{date}</span>\n </span>\n </div>\n </div>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nPackageCard.displayName = 'PackageCard'\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { SectionHeaderProps } from './SectionHeader.types'\r\n\r\nexport const SectionHeader = forwardRef<HTMLElement, SectionHeaderProps>(\r\n ({ heading, subheading, align = 'center', className, ...rest }, ref) => {\r\n const alignClass = align === 'center' ? 'items-center text-center' : 'items-start text-left'\r\n return (\r\n <header ref={ref} className={cn('flex flex-col mb-xl', alignClass, className)} {...rest}>\r\n <h2 className=\"m-0 text-section-heading\">{heading}</h2>\r\n <span aria-hidden=\"true\" className=\"block w-[96px] h-1 mt-sm mb-md bg-accent rounded-sm\" />\r\n {subheading ? (\r\n <p className=\"m-0 max-w-[720px] text-section-subheading\">{subheading}</p>\r\n ) : null}\r\n </header>\r\n )\r\n }\r\n)\r\n\r\nSectionHeader.displayName = 'SectionHeader'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { TeamInfoCardProps } from './TeamInfoCard.types'\r\n\r\nexport const TeamInfoCard = forwardRef<HTMLElement, TeamInfoCardProps>(\r\n ({ image, name, designation, bio, socialLinks, className, ...rest }, ref) => {\r\n const hasSocials = socialLinks !== undefined && socialLinks.length > 0\r\n\r\n return (\r\n <article\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col items-center text-center p-lg bg-surface rounded-lg',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <img\r\n src={image}\r\n alt={name}\r\n className=\"w-[140px] h-[140px] rounded-full object-cover shadow-card-lg\"\r\n />\r\n <h3 className=\"mt-md mb-xs text-card-title\">{name}</h3>\r\n <p className=\"m-0 text-card-label\">{designation}</p>\r\n {bio ? <p className=\"mt-md mb-0 text-card-body\">{bio}</p> : null}\r\n {hasSocials ? (\r\n <>\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"block w-[64px] h-[2px] my-md bg-accent rounded-sm\"\r\n />\r\n <ul className=\"flex gap-md m-0 p-0 list-none\">\r\n {socialLinks.map((link) => (\r\n <li key={link.href}>\r\n <a\r\n href={link.href}\r\n aria-label={link.label}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"inline-flex items-center justify-center w-8 h-8 text-primary no-underline text-sm transition-opacity duration-150 ease-in [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain hover:opacity-70 focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 focus-visible:rounded-sm\"\r\n >\r\n {typeof link.icon === 'string' ? (\r\n <img src={link.icon} alt=\"\" />\r\n ) : (\r\n (link.icon ?? link.label)\r\n )}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </>\r\n ) : null}\r\n </article>\r\n )\r\n }\r\n)\r\n\r\nTeamInfoCard.displayName = 'TeamInfoCard'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { TestimonialCardProps } from './TestimonialCard.types'\r\n\r\nconst PlaySvg = () => (\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" aria-hidden=\"true\">\r\n <circle cx=\"28\" cy=\"28\" r=\"26\" fill=\"#FF0000\" />\r\n <path d=\"M22 18l16 10-16 10V18Z\" fill=\"#ffffff\" />\r\n </svg>\r\n)\r\n\r\nconst thumbnailClass =\r\n \"relative block w-full aspect-[836/470] rounded-sm overflow-hidden after:content-[''] after:absolute after:inset-0 after:bg-black/40 after:pointer-events-none [&>img]:w-full [&>img]:h-full [&>img]:object-cover [&>img]:block focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\r\n\r\nexport const TestimonialCard = forwardRef<HTMLDivElement, TestimonialCardProps>(\r\n (\r\n { thumbnail, thumbnailAlt, logo, logoAlt, caption, videoHref, onPlayClick, className, ...rest },\r\n ref\r\n ) => {\r\n const playLabel = `Play testimonial: ${caption}`\r\n const inner = (\r\n <>\r\n <img src={thumbnail} alt={thumbnailAlt} />\r\n <span className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 inline-flex items-center justify-center w-[56px] h-[56px] pointer-events-none z-[1] text-white\">\r\n <PlaySvg />\r\n </span>\r\n </>\r\n )\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col items-center gap-xs w-[868px] max-w-full pt-md px-md bg-border border border-primary rounded-lg shadow-[0_6px_20px_4px_rgba(0,0,0,0.16)] overflow-hidden',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n {videoHref ? (\r\n <a\r\n href={videoHref}\r\n aria-label={playLabel}\r\n className={cn(thumbnailClass, 'no-underline text-inherit after:rounded-sm')}\r\n >\r\n {inner}\r\n </a>\r\n ) : (\r\n <button\r\n type=\"button\"\r\n aria-label={playLabel}\r\n onClick={onPlayClick}\r\n className={cn(\r\n thumbnailClass,\r\n 'p-0 bg-transparent border-none cursor-pointer font-[inherit] after:rounded-sm'\r\n )}\r\n >\r\n {inner}\r\n </button>\r\n )}\r\n <div className=\"flex items-center gap-sm w-full py-md\">\r\n <img src={logo} alt={logoAlt} className=\"w-[60px] h-[60px] object-contain shrink-0\" />\r\n <p className=\"m-0 text-md font-medium leading-8 text-secondary\">{caption}</p>\r\n </div>\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nTestimonialCard.displayName = 'TestimonialCard'\r\n","import { forwardRef, type Ref } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { TripCategoryCardProps } from './TripCategoryCard.types'\r\n\r\nconst cardClass =\r\n 'relative flex flex-col justify-end shrink-0 w-[200px] h-[316px] p-[20px] border-2 border-surface rounded-lg overflow-hidden no-underline text-inherit snap-start focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nexport const TripCategoryCard = forwardRef<HTMLElement, TripCategoryCardProps>(\r\n ({ image, alt, destination, startingPrice, href, className, ...rest }, ref) => {\r\n const content = (\r\n <>\r\n <span\r\n role=\"img\"\r\n aria-label={alt}\r\n className=\"absolute inset-0 bg-cover bg-center pointer-events-none\"\r\n style={{ backgroundImage: `url(${image})` }}\r\n />\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"absolute inset-0 pointer-events-none bg-[linear-gradient(to_bottom,rgba(0,0,0,0)_58%,rgba(0,0,0,0.8)_100%)]\"\r\n />\r\n <div className=\"relative flex flex-col items-center text-center text-on-image [text-shadow:1px_1px_25px_rgba(0,0,0,0.5)]\">\r\n <span className=\"text-md font-semibold leading-7\">{destination}</span>\r\n <span className=\"text-xs font-medium leading-4\">{startingPrice}</span>\r\n </div>\r\n </>\r\n )\r\n\r\n if (href) {\r\n return (\r\n <a\r\n ref={ref as Ref<HTMLAnchorElement>}\r\n href={href}\r\n className={cn(cardClass, className)}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n )\r\n }\r\n\r\n return (\r\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\r\n {content}\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nTripCategoryCard.displayName = 'TripCategoryCard'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { WarriorCardProps } from './WarriorCard.types'\r\n\r\nexport const WarriorCard = forwardRef<HTMLElement, WarriorCardProps>(\r\n ({ icon, name, description, className, ...rest }, ref) => (\r\n <article\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col items-center text-center p-lg bg-surface rounded-lg shadow-card',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <div\r\n aria-hidden=\"true\"\r\n className=\"flex items-center justify-center w-16 h-16 mb-md [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\"\r\n >\r\n {typeof icon === 'string' ? <img src={icon} alt=\"\" /> : icon}\r\n </div>\r\n <h3 className=\"m-0 text-card-title\">{name}</h3>\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"block w-[56px] h-[2px] mt-sm mb-md bg-accent rounded-sm\"\r\n />\r\n <p className=\"m-0 text-card-body\">{description}</p>\r\n </article>\r\n )\r\n)\r\n\r\nWarriorCard.displayName = 'WarriorCard'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { BottomNavProps } from './BottomNav.types'\r\n\r\nexport const BottomNav = forwardRef<HTMLElement, BottomNavProps>(\r\n ({ items, className, ...rest }, ref) => (\r\n <nav\r\n ref={ref}\r\n className={cn(\r\n 'fixed bottom-0 left-0 right-0 flex justify-around items-stretch py-[12px] bg-surface-dark text-white rounded-t-[20px] overflow-hidden z-[100]',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n {items.map((item) => (\r\n <a\r\n key={item.label}\r\n href={item.href}\r\n aria-current={item.active ? 'page' : undefined}\r\n className={cn(\r\n 'flex flex-col items-center justify-center gap-xs flex-1 py-sm px-xs text-inherit no-underline transition-opacity duration-150 ease-in hover:opacity-100 focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\r\n item.active ? 'opacity-100' : 'opacity-85'\r\n )}\r\n >\r\n <span aria-hidden=\"true\" className=\"inline-flex items-center justify-center w-6 h-6\">\r\n {item.icon}\r\n </span>\r\n <span className=\"text-xs font-normal leading-4\">{item.label}</span>\r\n </a>\r\n ))}\r\n </nav>\r\n )\r\n)\r\n\r\nBottomNav.displayName = 'BottomNav'\r\n","import { forwardRef } from 'react'\r\nimport { BrandLogo } from '../../components/BrandLogo'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { cn } from '../../lib/cn'\r\nimport type { BrandsSectionProps } from './BrandsSection.types'\r\n\r\nexport const BrandsSection = forwardRef<HTMLElement, BrandsSectionProps>(\r\n ({ heading, subheading, brands, className, ...rest }, ref) => {\r\n return (\r\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <div className=\"flex flex-wrap gap-lg justify-center w-full\">\r\n {brands.map((brand) => (\r\n <BrandLogo key={brand.name} {...brand} />\r\n ))}\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nBrandsSection.displayName = 'BrandsSection'\r\n","import type { ElementType } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { NavCategoryItem } from './CategoryNavbar.types'\n\nexport interface CategoryDropdownProps {\n items: NavCategoryItem[]\n open: boolean\n panelId: string\n LinkComponent?: ElementType | undefined\n onItemClick?: () => void\n onMouseEnter?: () => void\n onMouseLeave?: () => void\n}\n\nexport const CategoryDropdown = ({\n items,\n open,\n panelId,\n LinkComponent,\n onItemClick,\n onMouseEnter,\n onMouseLeave\n}: CategoryDropdownProps) => {\n const Link = LinkComponent ?? 'a'\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: hover handlers keep the menu open while the cursor transits the gap between the category trigger and this absolutely-positioned dropdown.\n <div\n id={panelId}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={cn(\n 'absolute top-full left-0 grid-cols-3 [grid-template-columns:repeat(3,minmax(160px,1fr))] gap-x-xl gap-y-xs min-w-[720px] mt-3 p-xl bg-surface text-text rounded-lg shadow-card',\n open ? 'grid' : 'hidden'\n )}\n >\n {items.map((item) => (\n <Link\n key={item.href}\n href={item.href}\n onClick={onItemClick}\n className=\"inline-flex items-center gap-sm px-3 py-1 border border-transparent rounded-md text-text no-underline text-md font-normal leading-button transition-colors duration-150 ease-in hover:border-primary hover:text-primary focus-visible:border-primary focus-visible:text-primary focus-visible:outline-none\"\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-[18px] h-[18px] [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\"\n >\n {typeof item.icon === 'string' ? <img src={item.icon} alt=\"\" /> : item.icon}\n </span>\n ) : null}\n <span>{item.label}</span>\n </Link>\n ))}\n </div>\n )\n}\n","import { cn } from '../../lib/cn'\r\n\r\nexport interface HamburgerProps {\r\n open: boolean\r\n onClick: () => void\r\n controls?: string\r\n}\r\n\r\nconst lineClass =\r\n 'block w-[22px] h-[2px] bg-current rounded-[2px] transition-[transform,opacity] duration-200 ease-in'\r\n\r\nexport const Hamburger = ({ open, onClick, controls }: HamburgerProps) => (\r\n <button\r\n type=\"button\"\r\n onClick={onClick}\r\n aria-label=\"Toggle menu\"\r\n aria-expanded={open}\r\n aria-controls={controls}\r\n className=\"inline-flex flex-col items-center justify-center gap-[5px] w-9 h-9 p-0 bg-transparent border-none rounded-sm text-inherit cursor-pointer hover:bg-white/[0.12] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\r\n >\r\n <span aria-hidden=\"true\" className={cn(lineClass, open ? 'translate-y-[7px] rotate-45' : '')} />\r\n <span aria-hidden=\"true\" className={cn(lineClass, open ? 'opacity-0' : '')} />\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(lineClass, open ? '-translate-y-[7px] -rotate-45' : '')}\r\n />\r\n </button>\r\n)\r\n","'use client'\r\n\r\nimport { type ElementType, useState } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { MobileCta, MobileFooterLink, NavCategory } from './CategoryNavbar.types'\r\n\r\nconst TOP_BAR_HEIGHT = '70px'\r\n\r\nconst rowClass =\r\n 'flex items-center w-full py-[14px] px-5 border-0 border-b border-solid border-b-divider bg-transparent text-inherit no-underline font-[inherit] text-md font-medium leading-6 text-left cursor-pointer outline-none'\r\n\r\nconst ChevronSvg = () => (\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n d=\"M4 6l4 4 4-4\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nexport interface MobileDrawerProps {\r\n open: boolean\r\n onClose: () => void\r\n categories: NavCategory[]\r\n LinkComponent?: ElementType | undefined\r\n drawerId: string\r\n footerLinks?: MobileFooterLink[] | undefined\r\n cta?: MobileCta | undefined\r\n}\r\n\r\nexport const MobileDrawer = ({\r\n open,\r\n onClose,\r\n categories,\r\n LinkComponent,\r\n drawerId,\r\n footerLinks,\r\n cta\r\n}: MobileDrawerProps) => {\r\n const Link = LinkComponent ?? 'a'\r\n const [expanded, setExpanded] = useState<Record<number, boolean>>({})\r\n\r\n const toggleRow = (index: number) => {\r\n setExpanded((prev) => ({ ...prev, [index]: !prev[index] }))\r\n }\r\n\r\n const handleCtaClick = () => {\r\n if (!cta) return\r\n if (cta.href) {\r\n window.location.assign(cta.href)\r\n onClose()\r\n return\r\n }\r\n cta.onClick?.()\r\n onClose()\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n onClick={onClose}\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'fixed left-0 right-0 bottom-0 z-[300] bg-black/40 transition-[opacity,visibility] duration-200 ease-in',\r\n open ? 'opacity-100 visible' : 'opacity-0 invisible'\r\n )}\r\n style={{ top: TOP_BAR_HEIGHT }}\r\n />\r\n <aside\r\n id={drawerId}\r\n aria-hidden={!open}\r\n aria-label=\"Mobile navigation\"\r\n className={cn(\r\n 'fixed right-0 z-[310] flex flex-col gap-lg w-[78vw] max-w-[360px] pb-lg bg-surface text-secondary transition-transform duration-[250ms] ease-in overflow-y-auto',\r\n open ? 'translate-x-0' : 'translate-x-full'\r\n )}\r\n style={{ top: TOP_BAR_HEIGHT, height: `calc(100vh - ${TOP_BAR_HEIGHT})` }}\r\n >\r\n <nav aria-label=\"Mobile primary\" className=\"flex flex-col\">\r\n {categories.map((category, index) => {\r\n const hasItems = (category.items?.length ?? 0) > 0\r\n if (!hasItems) {\r\n return (\r\n <Link\r\n key={category.label}\r\n href={category.href ?? '#'}\r\n onClick={onClose}\r\n className={rowClass}\r\n >\r\n <span className=\"flex-[0_1_auto]\">{category.label}</span>\r\n {category.badge ? (\r\n <span className=\"inline-flex items-center ml-sm text-xs font-semibold text-primary\">\r\n {category.badge}\r\n </span>\r\n ) : null}\r\n {category.trailingIcon ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center ml-auto\"\r\n >\r\n {category.trailingIcon}\r\n </span>\r\n ) : null}\r\n </Link>\r\n )\r\n }\r\n const isOpen = !!expanded[index]\r\n return (\r\n <div key={category.label}>\r\n <button\r\n type=\"button\"\r\n aria-expanded={isOpen}\r\n onClick={() => toggleRow(index)}\r\n className={cn(\r\n rowClass,\r\n 'justify-between focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2'\r\n )}\r\n >\r\n <span className=\"flex-[0_1_auto]\">{category.label}</span>\r\n {category.badge ? (\r\n <span className=\"inline-flex items-center ml-sm text-xs font-semibold text-primary\">\r\n {category.badge}\r\n </span>\r\n ) : null}\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'inline-flex items-center justify-center w-5 h-5 ml-auto transition-transform duration-200 ease-in',\r\n isOpen ? 'rotate-180' : 'rotate-0'\r\n )}\r\n >\r\n <ChevronSvg />\r\n </span>\r\n </button>\r\n <ul\r\n className={cn(\r\n 'flex-col m-0 pb-sm list-none bg-black/[0.02] border-b border-b-divider',\r\n isOpen ? 'flex' : 'hidden'\r\n )}\r\n >\r\n {category.items?.map((item) => (\r\n <li key={item.href}>\r\n <Link\r\n href={item.href}\r\n onClick={onClose}\r\n className=\"flex items-center py-[10px] px-5 text-text no-underline text-sm font-normal outline-none\"\r\n >\r\n {item.label}\r\n </Link>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )\r\n })}\r\n </nav>\r\n\r\n {footerLinks && footerLinks.length > 0 ? (\r\n <div className=\"flex flex-col\">\r\n {footerLinks.map((link) => (\r\n <Link\r\n key={link.href}\r\n href={link.href}\r\n onClick={onClose}\r\n className=\"flex items-center py-[10px] px-5 text-secondary no-underline text-md font-semibold leading-6 outline-none\"\r\n >\r\n {link.label}\r\n </Link>\r\n ))}\r\n </div>\r\n ) : null}\r\n\r\n {cta ? (\r\n <div className=\"px-5\">\r\n <button\r\n type=\"button\"\r\n onClick={handleCtaClick}\r\n className=\"inline-flex items-center justify-center w-full h-12 px-xl bg-accent text-secondary border-none rounded-full font-[inherit] text-md font-semibold leading-none cursor-pointer transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2\"\r\n >\r\n {cta.label}\r\n </button>\r\n </div>\r\n ) : null}\r\n </aside>\r\n </>\r\n )\r\n}\r\n","'use client'\n\nimport { forwardRef, useEffect, useId, useRef, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport { CategoryDropdown } from './CategoryDropdown'\nimport type { CategoryNavbarProps } from './CategoryNavbar.types'\nimport { Hamburger } from './Hamburger'\nimport { MobileDrawer } from './MobileDrawer'\n\nconst HOVER_CLOSE_DELAY_MS = 150\n\nconst ChevronSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst SearchSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <line\n x1=\"13.5\"\n y1=\"13.5\"\n x2=\"17.5\"\n y2=\"17.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\nconst categoryTriggerClass =\n 'inline-flex items-center gap-xs p-0 bg-transparent border-none text-inherit cursor-pointer font-[inherit] text-md font-normal leading-6 whitespace-nowrap no-underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-4 focus-visible:rounded-sm'\n\nconst searchIconClass =\n 'inline-flex items-center justify-center w-9 h-9 bg-transparent border-none rounded-full text-inherit cursor-pointer no-underline hover:bg-white/[0.12] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const CategoryNavbar = forwardRef<HTMLElement, CategoryNavbarProps>(\n (\n {\n logo,\n logoHref = '/',\n desktopCategories,\n mobileCategories,\n searchHref,\n phoneNumber,\n LinkComponent,\n defaultMobileOpen = false,\n mobileOpen,\n onMobileOpenChange,\n mobileFooterLinks,\n mobileCta,\n sticky = true,\n className,\n ...rest\n },\n ref\n ) => {\n const Link = LinkComponent ?? 'a'\n const drawerId = useId()\n const [internalMobileOpen, setInternalMobileOpen] = useState(defaultMobileOpen)\n const isControlled = mobileOpen !== undefined\n const drawerOpen = isControlled ? mobileOpen : internalMobileOpen\n const [openIndex, setOpenIndex] = useState<number | null>(null)\n const navRef = useRef<HTMLElement | null>(null)\n const closeTimerRef = useRef<number | null>(null)\n\n const setDrawerOpen = (next: boolean) => {\n if (!isControlled) setInternalMobileOpen(next)\n onMobileOpenChange?.(next)\n }\n\n const clearCloseTimerNow = () => {\n const ref = closeTimerRef\n if (ref.current !== null) {\n window.clearTimeout(ref.current)\n ref.current = null\n }\n }\n\n const openCategory = (index: number) => {\n clearCloseTimerNow()\n setOpenIndex(index)\n }\n\n const scheduleCloseCategory = () => {\n clearCloseTimerNow()\n closeTimerRef.current = window.setTimeout(() => {\n setOpenIndex(null)\n closeTimerRef.current = null\n }, HOVER_CLOSE_DELAY_MS)\n }\n\n useEffect(\n () => () => {\n const ref = closeTimerRef\n if (ref.current !== null) {\n window.clearTimeout(ref.current)\n ref.current = null\n }\n },\n []\n )\n\n useEffect(() => {\n if (!drawerOpen && openIndex === null) return\n const handleKey = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n if (drawerOpen) {\n if (!isControlled) setInternalMobileOpen(false)\n onMobileOpenChange?.(false)\n }\n if (openIndex !== null) {\n if (closeTimerRef.current !== null) {\n window.clearTimeout(closeTimerRef.current)\n closeTimerRef.current = null\n }\n setOpenIndex(null)\n }\n }\n document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [drawerOpen, openIndex, isControlled, onMobileOpenChange])\n\n useEffect(() => {\n if (openIndex === null) return\n const handleClick = (event: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(event.target as Node)) {\n if (closeTimerRef.current !== null) {\n window.clearTimeout(closeTimerRef.current)\n closeTimerRef.current = null\n }\n setOpenIndex(null)\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [openIndex])\n\n const setNavRef = (element: HTMLElement | null) => {\n navRef.current = element\n if (typeof ref === 'function') ref(element)\n else if (ref) ref.current = element\n }\n\n return (\n <>\n <header\n ref={setNavRef}\n className={cn(\n 'flex items-center justify-center w-full py-2 px-12 bg-primary text-on-dark max-md:h-[70px] max-md:py-0 max-md:px-md max-md:justify-between max-md:gap-sm',\n sticky && 'sticky top-0 z-[200]',\n className\n )}\n {...rest}\n >\n <div className=\"hidden max-md:flex max-md:items-center max-md:shrink-0 max-md:min-w-0\">\n <Link\n href={logoHref}\n aria-label=\"Home\"\n className=\"inline-flex items-center no-underline text-inherit h-[50px] shrink-0 [&>img]:h-full [&>img]:w-auto [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:object-contain\"\n >\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\n </Link>\n </div>\n\n <nav aria-label=\"Categories\" className=\"flex items-center max-md:hidden\">\n <ul className=\"flex items-center gap-8 m-0 p-sm list-none\">\n {desktopCategories.map((category, index) => {\n const hasItems = (category.items?.length ?? 0) > 0\n const itemPanelId = `${drawerId}-cat-${index}`\n if (!hasItems) {\n return (\n <li key={category.label} className=\"relative inline-flex items-center\">\n <Link href={category.href ?? '#'} className={categoryTriggerClass}>\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n </Link>\n </li>\n )\n }\n const isOpen = openIndex === index\n return (\n <li\n key={category.label}\n className=\"relative inline-flex items-center\"\n onMouseEnter={() => openCategory(index)}\n onMouseLeave={scheduleCloseCategory}\n >\n {category.href ? (\n <>\n <Link href={category.href} className={categoryTriggerClass}>\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n </Link>\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={itemPanelId}\n aria-label={`Open ${category.label} menu`}\n onClick={() => openCategory(index)}\n onFocus={() => openCategory(index)}\n className=\"inline-flex items-center justify-center p-0 bg-transparent border-none text-inherit cursor-pointer focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:rounded-sm\"\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronSvg />\n </span>\n </button>\n </>\n ) : (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={itemPanelId}\n onClick={() => openCategory(index)}\n onFocus={() => openCategory(index)}\n className={categoryTriggerClass}\n >\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronSvg />\n </span>\n </button>\n )}\n {isOpen ? (\n <span\n aria-hidden=\"true\"\n className=\"absolute top-full left-1/2 -translate-x-1/2 mt-1 w-4 h-2 bg-surface z-[201] pointer-events-none [clip-path:polygon(50%_0,0_100%,100%_100%)] max-md:hidden\"\n />\n ) : null}\n <CategoryDropdown\n items={category.items ?? []}\n open={isOpen}\n panelId={itemPanelId}\n LinkComponent={LinkComponent}\n onItemClick={() => {\n clearCloseTimerNow()\n setOpenIndex(null)\n }}\n onMouseEnter={() => openCategory(index)}\n onMouseLeave={scheduleCloseCategory}\n />\n </li>\n )\n })}\n </ul>\n </nav>\n\n {phoneNumber ? (\n <a\n href={`tel:${phoneNumber.replace(/\\s+/g, '')}`}\n aria-label={`Call ${phoneNumber}`}\n className=\"hidden max-md:flex max-md:flex-auto max-md:items-center max-md:justify-center max-md:text-inherit max-md:no-underline max-md:text-md max-md:font-normal max-md:whitespace-nowrap max-md:min-w-0\"\n >\n {phoneNumber}\n </a>\n ) : null}\n\n <div className=\"hidden max-md:flex max-md:items-center max-md:gap-xs\">\n {searchHref ? (\n <Link href={searchHref} aria-label=\"Search\" className={searchIconClass}>\n <SearchSvg />\n </Link>\n ) : (\n <button type=\"button\" aria-label=\"Search\" className={searchIconClass}>\n <SearchSvg />\n </button>\n )}\n <Hamburger\n open={drawerOpen}\n onClick={() => setDrawerOpen(!drawerOpen)}\n controls={drawerId}\n />\n </div>\n </header>\n\n <MobileDrawer\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n categories={mobileCategories}\n LinkComponent={LinkComponent}\n drawerId={drawerId}\n footerLinks={mobileFooterLinks}\n cta={mobileCta}\n />\n </>\n )\n }\n)\n\nCategoryNavbar.displayName = 'CategoryNavbar'\n","import { forwardRef } from 'react'\nimport { ContactForm } from '../../components/ContactForm'\nimport { cn } from '../../lib/cn'\nimport type { ContactSectionProps } from './ContactSection.types'\n\nexport const ContactSection = forwardRef<HTMLElement, ContactSectionProps>(\n (\n {\n illustration,\n eyebrow,\n heading,\n submitLabel,\n headerIllustration,\n countryCodes,\n destinations,\n onSubmit,\n className,\n ...rest\n },\n ref\n ) => (\n <section\n ref={ref}\n className={cn(\n 'flex w-full justify-center',\n 'lg:items-center lg:justify-evenly lg:py-xl lg:bg-primary lg:rounded-lg lg:shadow-card',\n className\n )}\n {...rest}\n >\n <div\n aria-hidden=\"true\"\n className=\"hidden shrink-0 items-center justify-center [&>svg]:w-[367px] [&>svg]:max-w-full [&>svg]:h-auto [&>img]:w-[367px] [&>img]:max-w-full [&>img]:h-auto lg:flex\"\n >\n {illustration}\n </div>\n <div className=\"shrink-0 flex justify-center\">\n <ContactForm\n eyebrow={eyebrow}\n heading={heading}\n submitLabel={submitLabel}\n headerIllustration={headerIllustration}\n countryCodes={countryCodes}\n destinations={destinations}\n onSubmit={onSubmit}\n />\n </div>\n </section>\n )\n)\n\nContactSection.displayName = 'ContactSection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { CtaBannerProps } from './CtaBanner.types'\n\nexport const CtaBanner = forwardRef<HTMLElement, CtaBannerProps>(\n ({ title, subtitle, backgroundImage, backgroundColor, cta, className, ...rest }, ref) => {\n const handleCtaClick = () => {\n if (cta.href) {\n window.location.assign(cta.href)\n return\n }\n cta.onClick?.()\n }\n\n return (\n <section ref={ref} className={cn('flex justify-center bg-surface', className)} {...rest}>\n <div\n className=\"relative flex items-center w-full min-h-[300px] pl-[50px] rounded-md bg-cover bg-center overflow-hidden max-md:px-lg\"\n style={{\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\n }}\n >\n <div className=\"flex flex-col gap-xl max-w-[550px]\">\n <div className=\"flex flex-col gap-xs text-white\">\n <h2 className=\"m-0 text-xl font-semibold leading-button\">{title}</h2>\n {subtitle ? <p className=\"m-0 text-sm font-medium leading-body\">{subtitle}</p> : null}\n </div>\n <button\n type=\"button\"\n onClick={handleCtaClick}\n className=\"inline-flex items-center justify-center self-start h-11 px-xl bg-accent text-secondary border-none rounded-md font-[inherit] text-button cursor-pointer shadow-[inset_0_0_6px_rgba(0,0,0,0.14)] transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2\"\n >\n {cta.label}\n </button>\n </div>\n </div>\n </section>\n )\n }\n)\n\nCtaBanner.displayName = 'CtaBanner'\n","import { forwardRef } from 'react'\nimport { DestinationCard } from '../../components/DestinationCard'\nimport { cn } from '../../lib/cn'\nimport type { DestinationsSectionProps } from './DestinationsSection.types'\n\nexport const DestinationsSection = forwardRef<HTMLElement, DestinationsSectionProps>(\n ({ heading, destinations, className, ...rest }, ref) => {\n const half = Math.ceil(destinations.length / 2)\n const firstRow = destinations.slice(0, half)\n const secondRow = destinations.slice(half)\n\n return (\n <section ref={ref} className={cn('flex flex-col gap-lg bg-surface', className)} {...rest}>\n <h2 className=\"m-0 text-xl font-semibold leading-heading text-secondary\">{heading}</h2>\n <div className=\"flex flex-col gap-md overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <div className=\"flex gap-md w-max\">\n {firstRow.map((destination) => (\n <DestinationCard\n key={`r1-${destination.label}`}\n image={destination.image}\n alt={destination.alt}\n label={destination.label}\n href={destination.href}\n />\n ))}\n </div>\n {secondRow.length > 0 ? (\n <div className=\"flex gap-md w-max\">\n {secondRow.map((destination) => (\n <DestinationCard\n key={`r2-${destination.label}`}\n image={destination.image}\n alt={destination.alt}\n label={destination.label}\n href={destination.href}\n />\n ))}\n </div>\n ) : null}\n </div>\n </section>\n )\n }\n)\n\nDestinationsSection.displayName = 'DestinationsSection'\n","'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface UseScrollSnapResult {\n ref: (node: HTMLElement | null) => void\n scrollPrev: () => void\n scrollNext: () => void\n scrollToStart: () => void\n canPrev: boolean\n canNext: boolean\n activeIndex: number\n scrollProgress: number\n}\n\nexport const useScrollSnap = (itemCount: number): UseScrollSnapResult => {\n const elRef = useRef<HTMLElement | null>(null)\n const [canPrev, setCanPrev] = useState(false)\n const [canNext, setCanNext] = useState(itemCount > 1)\n const [activeIndex, setActiveIndex] = useState(0)\n const [scrollProgress, setScrollProgress] = useState(0)\n\n const recompute = useCallback(() => {\n const el = elRef.current\n if (!el) return\n setCanPrev(el.scrollLeft > 0)\n setCanNext(el.scrollLeft + el.clientWidth < el.scrollWidth - 1)\n const maxScroll = el.scrollWidth - el.clientWidth\n setScrollProgress(maxScroll > 0 ? el.scrollLeft / maxScroll : 0)\n if (itemCount > 0) {\n const itemWidth = el.scrollWidth / itemCount\n setActiveIndex(Math.round(el.scrollLeft / itemWidth))\n }\n }, [itemCount])\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n const previous = elRef.current\n if (previous) {\n previous.removeEventListener('scroll', recompute)\n }\n elRef.current = node\n if (node) {\n node.addEventListener('scroll', recompute, { passive: true })\n recompute()\n }\n },\n [recompute]\n )\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n window.addEventListener('resize', recompute)\n return () => window.removeEventListener('resize', recompute)\n }, [recompute])\n\n const scrollPrev = useCallback(() => {\n elRef.current?.scrollBy({ left: -elRef.current.clientWidth, behavior: 'smooth' })\n }, [])\n\n const scrollNext = useCallback(() => {\n elRef.current?.scrollBy({ left: elRef.current.clientWidth, behavior: 'smooth' })\n }, [])\n\n const scrollToStart = useCallback(() => {\n elRef.current?.scrollTo({ left: 0, behavior: 'smooth' })\n }, [])\n\n return {\n ref: setRef,\n scrollPrev,\n scrollNext,\n scrollToStart,\n canPrev,\n canNext,\n activeIndex,\n scrollProgress\n }\n}\n","'use client'\n\nimport { forwardRef, useEffect, useRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { EventBanner } from '../../components/EventBanner'\nimport { EventVideoBanner } from '../../components/EventVideoBanner'\nimport { cn } from '../../lib/cn'\nimport type { EventCarouselProps } from './EventCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-[130px] inline-flex items-center justify-center w-8 h-8 bg-surface border border-border rounded-full text-primary cursor-pointer shadow-card transition-opacity duration-150 ease-in disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const EventCarousel = forwardRef<HTMLElement, EventCarouselProps>(\n ({ events, variant = 'image', className, ...rest }, ref) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n scrollToStart,\n canPrev,\n canNext,\n activeIndex\n } = useScrollSnap(events.length)\n\n const canNextRef = useRef(canNext)\n useEffect(() => {\n canNextRef.current = canNext\n }, [canNext])\n\n useEffect(() => {\n if (events.length <= 1) return\n const id = setInterval(() => {\n if (canNextRef.current) {\n scrollNext()\n } else {\n scrollToStart()\n }\n }, 5000)\n return () => clearInterval(id)\n }, [events.length, scrollNext, scrollToStart])\n\n return (\n <section\n ref={ref}\n className={cn('relative flex flex-col items-center gap-md bg-surface', className)}\n {...rest}\n >\n <div\n ref={trackRef}\n className=\"flex w-full gap-sm overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {events.map((event) =>\n 'videoUrl' in event ? (\n <EventVideoBanner\n key={`${event.videoUrl}|${event.alt}`}\n posterUrl={event.posterUrl}\n videoUrl={event.videoUrl}\n alt={event.alt}\n href={event.href}\n />\n ) : (\n <EventBanner\n key={`${event.imageUrl}|${event.alt}`}\n imageUrl={event.imageUrl}\n alt={event.alt}\n href={event.href}\n />\n )\n )}\n </div>\n\n {events.length > 1 ? (\n <div\n role=\"tablist\"\n aria-label=\"Event carousel position\"\n className=\"flex items-center justify-center gap-sm\"\n >\n {events.map((event, index) => (\n <span\n key={`${'videoUrl' in event ? event.videoUrl : event.imageUrl}|${event.alt}|dot`}\n aria-hidden=\"true\"\n className={cn(\n 'inline-block h-[6px] rounded-full transition-[width,background-color] duration-200 ease-in',\n index === activeIndex ? 'w-5 bg-primary' : 'w-[5px] bg-border'\n )}\n />\n ))}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label={variant === 'video' ? 'Previous video' : 'Previous event'}\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label={variant === 'video' ? 'Next video' : 'Next event'}\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n </section>\n )\n }\n)\n\nEventCarousel.displayName = 'EventCarousel'\n","import { forwardRef } from 'react'\nimport { ExploreCard } from '../../components/ExploreCard'\nimport { cn } from '../../lib/cn'\nimport type { ExploreSectionProps } from './ExploreSection.types'\n\nexport const ExploreSection = forwardRef<HTMLElement, ExploreSectionProps>(\n ({ heading, items, className, ...rest }, ref) => (\n <section ref={ref} className={cn('flex flex-col gap-lg bg-surface', className)} {...rest}>\n <h2 className=\"m-0 text-xl font-semibold leading-heading text-secondary\">{heading}</h2>\n <div className=\"flex gap-md overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n {items.map((item) => (\n <ExploreCard\n key={item.label}\n image={item.image}\n alt={item.alt}\n label={item.label}\n href={item.href}\n />\n ))}\n </div>\n </section>\n )\n)\n\nExploreSection.displayName = 'ExploreSection'\n","'use client'\r\n\r\nimport { useState } from 'react'\r\nimport { FaqExpandable } from '../../components/FaqExpandable'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { cn } from '../../lib/cn'\r\nimport type { FaqSectionProps } from './FaqSection.types'\r\n\r\nexport const FaqSection = ({\r\n heading,\r\n subheading,\r\n faqs,\r\n singleOpen = false,\r\n className,\r\n ...rest\r\n}: FaqSectionProps) => {\r\n const [openIndex, setOpenIndex] = useState<number | null>(null)\r\n\r\n return (\r\n <section className={cn('py-xl px-lg', className)} {...rest}>\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <div className=\"flex flex-col gap-md max-w-[760px] mx-auto\">\r\n {faqs.map((faq, index) => {\r\n if (!singleOpen) {\r\n return <FaqExpandable key={faq.question} {...faq} />\r\n }\r\n return (\r\n <FaqExpandable\r\n key={faq.question}\r\n {...faq}\r\n expanded={openIndex === index}\r\n onToggle={(next) => setOpenIndex(next ? index : null)}\r\n />\r\n )\r\n })}\r\n </div>\r\n </section>\r\n )\r\n}\r\n\r\nFaqSection.displayName = 'FaqSection'\r\n","'use client'\r\n\r\nimport { forwardRef, useState } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { FooterProps } from './Footer.types'\r\n\r\nconst GlobeSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\r\n <path\r\n d=\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.6\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst MailSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\r\n <path d=\"m3 7 9 6 9-6\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\r\n </svg>\r\n)\r\n\r\nconst PhoneSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n 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\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.6\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst ChevronDown = () => (\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n d=\"M4 6l4 4 4-4\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst ChevronUp = () => (\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n d=\"M4 10l4-4 4 4\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst scrollToTop = () => {\r\n if (typeof window === 'undefined') return\r\n window.scrollTo({ top: 0, behavior: 'smooth' })\r\n}\r\n\r\nconst contactItemClass =\r\n 'inline-flex items-center gap-sm text-inherit no-underline text-sm font-normal leading-6 hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nconst columnLinkClass =\r\n 'inline-block text-md font-normal leading-18 text-inherit no-underline whitespace-nowrap hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\r\n\r\nexport const Footer = forwardRef<HTMLElement, FooterProps>(\r\n (\r\n {\r\n columns,\r\n companyName,\r\n cin,\r\n address,\r\n contact,\r\n socials,\r\n footerImage,\r\n footerImageAlt = '',\r\n copyright,\r\n showScrollToTop = false,\r\n className,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const [openColumns, setOpenColumns] = useState<Record<string, boolean>>({})\r\n\r\n const toggleColumn = (heading: string) => {\r\n setOpenColumns((prev) => ({ ...prev, [heading]: !prev[heading] }))\r\n }\r\n\r\n return (\r\n <footer ref={ref} className={cn('flex flex-col items-center', className)} {...rest}>\r\n <div aria-hidden=\"true\" className=\"w-full h-2 bg-primary rounded-t-[200px]\" />\r\n <div className=\"w-full flex flex-col items-center gap-lg py-[40px] bg-surface-dark text-white max-md:px-md\">\r\n <div className=\"flex flex-wrap gap-[96px] w-full max-w-[1106px] px-lg items-start justify-center max-md:flex-col max-md:gap-0 max-md:p-0\">\r\n {columns.map((column) => {\r\n const isOpen = !!openColumns[column.heading]\r\n return (\r\n <div\r\n key={column.heading}\r\n className=\"flex flex-col gap-sm max-md:w-full max-md:gap-0 max-md:py-md max-md:border-t max-md:border-white/[0.18] max-md:last-of-type:border-b\"\r\n >\r\n <button\r\n type=\"button\"\r\n aria-expanded={isOpen}\r\n onClick={() => toggleColumn(column.heading)}\r\n className=\"inline-flex items-center w-full m-0 p-0 bg-transparent border-none text-inherit font-[inherit] text-sm font-semibold leading-6 text-left cursor-default pointer-events-none max-md:justify-between max-md:cursor-pointer max-md:pointer-events-auto focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\r\n >\r\n <span className=\"inline-block whitespace-nowrap\">{column.heading}</span>\r\n <span\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'hidden max-md:inline-flex transition-transform duration-200 ease-in',\r\n isOpen ? 'rotate-180' : 'rotate-0'\r\n )}\r\n >\r\n <ChevronDown />\r\n </span>\r\n </button>\r\n <ul\r\n className={cn(\r\n 'flex flex-col gap-xs m-0 p-0 list-none',\r\n 'max-md:pt-md',\r\n isOpen ? 'max-md:flex' : 'max-md:hidden'\r\n )}\r\n >\r\n {column.links.map((link) => (\r\n <li key={`${column.heading}|${link.label}`}>\r\n <a href={link.href} className={columnLinkClass}>\r\n {link.label}\r\n </a>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )\r\n })}\r\n </div>\r\n\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"block w-[1106px] max-w-[calc(100%-var(--spacing-lg))] h-px bg-white/40 max-md:max-w-full\"\r\n />\r\n\r\n <div className=\"flex flex-col items-center gap-sm text-center px-md max-md:p-0 max-md:w-full\">\r\n <p className=\"m-0 text-md font-medium leading-8\">{companyName}</p>\r\n {cin ? <p className=\"m-0 text-sm font-normal leading-6 tracking-wider\">{cin}</p> : null}\r\n <p className=\"m-0 text-sm font-normal leading-6\">{address}</p>\r\n </div>\r\n\r\n {contact ? (\r\n <div className=\"flex flex-wrap items-center justify-center gap-xl px-md max-md:gap-md max-md:p-0 max-md:w-full\">\r\n {contact.email ? (\r\n <a href={`mailto:${contact.email}`} className={contactItemClass}>\r\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\r\n <MailSvg />\r\n </span>\r\n {contact.email}\r\n </a>\r\n ) : null}\r\n {contact.phone ? (\r\n <a href={`tel:${contact.phone.replace(/\\s+/g, '')}`} className={contactItemClass}>\r\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\r\n <PhoneSvg />\r\n </span>\r\n {contact.phone}\r\n </a>\r\n ) : null}\r\n {contact.websiteUrl ? (\r\n <a\r\n href={contact.websiteUrl}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className={contactItemClass}\r\n >\r\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\r\n <GlobeSvg />\r\n </span>\r\n {contact.websiteLabel ?? contact.websiteUrl}\r\n </a>\r\n ) : null}\r\n </div>\r\n ) : null}\r\n\r\n {socials && socials.length > 0 ? (\r\n <div className=\"inline-flex items-center gap-lg py-md px-xl bg-pill-dark rounded-full\">\r\n {socials.map((social) => (\r\n <a\r\n key={social.label}\r\n href={social.href}\r\n aria-label={social.label}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"inline-flex items-center justify-center w-[30px] h-[30px] rounded-full text-inherit no-underline [&>img]:w-[30px] [&>img]:h-[30px] [&>img]:object-contain [&>svg]:w-[30px] [&>svg]:h-[30px] [&>svg]:object-contain focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\r\n >\r\n {social.icon}\r\n </a>\r\n ))}\r\n </div>\r\n ) : null}\r\n\r\n {footerImage ? (\r\n <img\r\n src={footerImage}\r\n alt={footerImageAlt}\r\n className=\"block w-[1104px] max-w-full h-[70px] object-cover max-md:w-full max-md:h-auto max-md:object-contain\"\r\n />\r\n ) : null}\r\n\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"block w-[1106px] max-w-[calc(100%-var(--spacing-lg))] h-px bg-white/40 max-md:max-w-full\"\r\n />\r\n\r\n <p className=\"m-0 text-sm font-normal leading-6 text-center\">{copyright}</p>\r\n </div>\r\n {showScrollToTop ? (\r\n <button\r\n type=\"button\"\r\n onClick={scrollToTop}\r\n aria-label=\"Scroll to top\"\r\n className=\"fixed right-md bottom-lg inline-flex items-center justify-center w-9 h-9 bg-white border border-border rounded-full text-secondary cursor-pointer shadow-[0_4px_10px_rgba(0,0,0,0.18)] z-50 transition-transform duration-150 ease-in hover:-translate-y-px focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\r\n >\r\n <ChevronUp />\r\n </button>\r\n ) : null}\r\n </footer>\r\n )\r\n }\r\n)\r\n\r\nFooter.displayName = 'Footer'\r\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { GalleryPhoto } from '../../components/GalleryPhoto'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { GallerySectionProps } from './GallerySection.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-1/2 -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-primary border-none rounded-full text-on-dark cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[20] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nconst curveBase =\n 'pointer-events-none absolute z-10 left-0 right-0 h-[80px] bg-surface rounded-[50%] max-md:h-[40px]'\n\nexport const GallerySection = forwardRef<HTMLElement, GallerySectionProps>(\n ({ heading, subheading, photos, className, ...rest }, ref) => {\n const { ref: trackRef, scrollPrev, scrollNext, canPrev, canNext } = useScrollSnap(photos.length)\n\n return (\n <section\n ref={ref}\n className={cn('relative flex flex-col items-center gap-lg bg-surface', className)}\n {...rest}\n >\n <SectionHeader heading={heading} subheading={subheading} align=\"center\" />\n <div className=\"relative w-full\">\n <div aria-hidden=\"true\" className={cn(curveBase, '-top-[40px] max-md:-top-[20px]')} />\n\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous photos\"\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm px-[60px] overflow-x-auto snap-x snap-mandatory [scrollbar-width:none] [&::-webkit-scrollbar]:hidden max-md:px-0\"\n >\n {photos.map((photo) => (\n <GalleryPhoto\n key={`${photo.image}|${photo.alt}`}\n image={photo.image}\n alt={photo.alt}\n destination={photo.destination}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next photos\"\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n\n <div\n aria-hidden=\"true\"\n className={cn(curveBase, '-bottom-[40px] max-md:-bottom-[20px]')}\n />\n </div>\n </section>\n )\n }\n)\n\nGallerySection.displayName = 'GallerySection'\n","import type { HeroReview } from './Hero.types'\r\n\r\nexport const RatingBadge = ({ logo, alt, rating, reviewCount }: HeroReview) => (\r\n <div className=\"inline-flex items-center gap-sm text-inherit\">\r\n <img src={logo} alt={alt} className=\"w-8 h-8 object-contain\" />\r\n <div className=\"flex flex-col leading-heading\">\r\n <span className=\"inline-flex items-center gap-xs text-md font-semibold\">\r\n <span aria-hidden=\"true\" className=\"text-accent\">\r\n ★\r\n </span>\r\n {rating.toFixed(1)}\r\n </span>\r\n <span className=\"text-sm font-normal opacity-90\">\r\n ({reviewCount.toLocaleString('en-US')} reviews)\r\n </span>\r\n </div>\r\n </div>\r\n)\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { HeroProps } from './Hero.types'\r\nimport { RatingBadge } from './RatingBadge'\r\n\r\nconst sectionBase =\r\n \"relative flex flex-col justify-center gap-md min-h-[420px] py-xl px-xl text-white bg-cover bg-center before:content-[''] before:absolute before:inset-0 before:pointer-events-none [&>*]:relative max-md:items-center max-md:text-center max-md:min-h-[360px] max-md:pt-xl max-md:px-md max-md:pb-0 max-md:gap-lg\"\r\n\r\nexport const Hero = forwardRef<HTMLElement, HeroProps>((props, ref) => {\r\n const variant = props.variant ?? 'centered'\r\n\r\n if (variant === 'reviews') {\r\n const reviewProps = props as Extract<HeroProps, { variant: 'reviews' }>\r\n const {\r\n title,\r\n subtitle,\r\n backgroundImage,\r\n backgroundColor,\r\n reviews,\r\n variant: _variant,\r\n className,\r\n ...rest\r\n } = reviewProps\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn(\r\n sectionBase,\r\n 'items-start text-left',\r\n backgroundImage ? 'before:bg-black/45' : 'before:bg-transparent',\r\n className\r\n )}\r\n style={{\r\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\r\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\r\n }}\r\n {...rest}\r\n >\r\n <span aria-hidden=\"true\" className=\"absolute top-0 left-0 right-0 h-[3px] bg-primary\" />\r\n <div className=\"flex items-stretch gap-md before:content-[''] before:w-1 before:bg-accent before:rounded-sm max-md:justify-center max-md:gap-0 max-md:before:hidden\">\r\n <h1 className=\"m-0 text-2xl font-bold leading-heading max-w-[760px] max-md:text-xl\">\r\n {title}\r\n </h1>\r\n </div>\r\n {subtitle ? (\r\n <p className=\"inline-block m-0 py-sm px-md bg-accent text-secondary text-md font-semibold leading-button max-md:bg-transparent max-md:text-accent max-md:p-0 max-md:self-center\">\r\n {subtitle}\r\n </p>\r\n ) : null}\r\n {reviews.length > 0 ? (\r\n <div className=\"flex flex-wrap items-center gap-xl mt-auto pt-xl max-md:w-[calc(100%+2*var(--spacing-md))] max-md:mx-[calc(-1*var(--spacing-md))] max-md:mt-lg max-md:p-md max-md:bg-brand-shade-1 max-md:text-secondary max-md:justify-around max-md:gap-sm\">\r\n {reviews.map((review) => (\r\n <RatingBadge key={`${review.alt}-${review.rating}`} {...review} />\r\n ))}\r\n </div>\r\n ) : null}\r\n </section>\r\n )\r\n }\r\n\r\n const centeredProps = props as Extract<HeroProps, { variant?: 'centered' }>\r\n const {\r\n title,\r\n subtitle,\r\n backgroundImage,\r\n backgroundColor,\r\n variant: _variant,\r\n className,\r\n ...rest\r\n } = centeredProps\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn(\r\n sectionBase,\r\n 'items-center text-center',\r\n backgroundImage ? 'before:bg-black/45' : 'before:bg-transparent',\r\n className\r\n )}\r\n style={{\r\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\r\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\r\n }}\r\n {...rest}\r\n >\r\n <h1 className=\"m-0 text-2xl font-bold leading-heading max-w-[760px] max-md:text-xl\">\r\n {title}\r\n </h1>\r\n {subtitle ? (\r\n <p className=\"m-0 max-w-[640px] text-lg font-normal leading-body opacity-95\">{subtitle}</p>\r\n ) : null}\r\n </section>\r\n )\r\n})\r\n\r\nHero.displayName = 'Hero'\r\n","import type { HomeHeroReview } from './HomeHero.types'\r\n\r\n/**\r\n * Private to HomeHero. Renders a brand logo + star rating + reviews count row.\r\n * Typography is driven by the responsive `text-rating-value` / `text-rating-count`\r\n * composite utilities in `src/styles.css`, which switch between desktop and\r\n * mobile specs at the `md` breakpoint. Inherits its base text color from the\r\n * parent so it works on both dark hero overlays and light pill strips.\r\n */\r\nexport const RatingBadge = ({ logoUrl, alt, rating, reviewCount }: HomeHeroReview) => (\r\n <div className=\"inline-flex items-center gap-[6px] text-secondary max-md:text-text-strong\">\r\n <img\r\n src={logoUrl}\r\n alt={alt}\r\n className=\"w-10 h-10 object-contain shrink-0 max-md:w-7 max-md:h-7\"\r\n />\r\n <div className=\"flex flex-col h-[38px] justify-between max-md:h-auto max-md:gap-1\">\r\n <span className=\"inline-flex items-center gap-[3px] h-[19px] text-rating-value whitespace-nowrap max-md:h-auto\">\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"text-accent text-[20px] leading-none max-md:text-[14px]\"\r\n >\r\n ★\r\n </span>\r\n {rating.toFixed(1)}\r\n </span>\r\n <span className=\"text-rating-count whitespace-nowrap\">\r\n ({reviewCount.toLocaleString('en-US')} reviews)\r\n </span>\r\n </div>\r\n </div>\r\n)\r\n","'use client'\r\n\r\nimport { useEffect, useState } from 'react'\r\nimport type { HomeHeroTypewriterOptions } from './HomeHero.types'\r\n\r\n/**\r\n * Cycles through a list of phrases with a typewriter effect — types each\r\n * phrase one character at a time, pauses, erases, then advances to the next.\r\n * Returns the current displayed text.\r\n */\r\nexport const useTypewriter = (phrases: string[], options?: HomeHeroTypewriterOptions): string => {\r\n const typeSpeedMs = options?.typeSpeedMs ?? 80\r\n const deleteSpeedMs = options?.deleteSpeedMs ?? 40\r\n const pauseFullMs = options?.pauseFullMs ?? 1500\r\n const pauseEmptyMs = options?.pauseEmptyMs ?? 300\r\n\r\n const [text, setText] = useState('')\r\n const [phraseIndex, setPhraseIndex] = useState(0)\r\n const [isDeleting, setIsDeleting] = useState(false)\r\n\r\n useEffect(() => {\r\n if (phrases.length === 0) return undefined\r\n\r\n const phrase = phrases[phraseIndex] ?? ''\r\n\r\n let timeout: number\r\n if (!isDeleting && text === phrase) {\r\n // Just finished typing — hold, then start deleting.\r\n // If there's only one phrase, don't cycle — keep it on screen.\r\n if (phrases.length === 1) return undefined\r\n timeout = window.setTimeout(() => setIsDeleting(true), pauseFullMs)\r\n } else if (isDeleting && text === '') {\r\n // Just finished deleting — hold briefly, then advance.\r\n timeout = window.setTimeout(() => {\r\n setIsDeleting(false)\r\n setPhraseIndex((index) => (index + 1) % phrases.length)\r\n }, pauseEmptyMs)\r\n } else if (isDeleting) {\r\n timeout = window.setTimeout(() => setText((current) => current.slice(0, -1)), deleteSpeedMs)\r\n } else {\r\n timeout = window.setTimeout(() => setText(phrase.slice(0, text.length + 1)), typeSpeedMs)\r\n }\r\n\r\n return () => window.clearTimeout(timeout)\r\n }, [\r\n text,\r\n isDeleting,\r\n phraseIndex,\r\n phrases,\r\n typeSpeedMs,\r\n deleteSpeedMs,\r\n pauseFullMs,\r\n pauseEmptyMs\r\n ])\r\n\r\n return text\r\n}\r\n","'use client'\r\n\r\nimport { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { HomeHeroProps } from './HomeHero.types'\r\nimport { RatingBadge } from './RatingBadge'\r\nimport { useTypewriter } from './useTypewriter'\r\n\r\nexport const HomeHero = forwardRef<HTMLElement, HomeHeroProps>(\r\n (\r\n { videoUrl, posterUrl, title, cyclingPhrases, typewriter, reviews, className, ...rest },\r\n ref\r\n ) => {\r\n const currentPhrase = useTypewriter(cyclingPhrases, typewriter)\r\n const hasReviews = reviews !== undefined && reviews.length > 0\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn('relative w-full h-full overflow-hidden bg-secondary', className)}\r\n {...rest}\r\n >\r\n <video\r\n src={videoUrl}\r\n poster={posterUrl}\r\n muted\r\n autoPlay\r\n loop\r\n playsInline\r\n preload=\"metadata\"\r\n tabIndex={-1}\r\n className=\"absolute inset-0 w-full h-full object-cover\"\r\n />\r\n <div aria-hidden=\"true\" className=\"absolute inset-0 bg-black/30 pointer-events-none\" />\r\n\r\n <div className=\"relative w-full h-full flex flex-col\">\r\n <div className=\"flex-1 flex flex-col items-center justify-center gap-md px-md text-center [text-shadow:0px_2px_8px_rgba(0,0,0,0.12)] max-md:gap-[10px] max-md:[text-shadow:2px_4px_15px_rgba(0,0,0,0.8)]\">\r\n <h1 className=\"m-0 max-w-[631px] text-hero-title text-on-image max-md:max-w-[349px]\">\r\n {title}\r\n </h1>\r\n <p className=\"m-0 min-h-5 text-hero-subtitle text-accent\" aria-live=\"polite\">\r\n {currentPhrase}\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"ml-[2px] inline-block w-[2px] h-[1em] align-[-2px] bg-accent animate-pulse\"\r\n />\r\n </p>\r\n </div>\r\n\r\n {hasReviews ? (\r\n <div className=\"shrink-0 w-full bg-brand-shade-1 py-3 px-md max-md:py-[10px] max-md:px-5\">\r\n <div className=\"mx-auto w-fit flex items-center justify-center gap-xl max-md:gap-[14px] max-md:flex-wrap\">\r\n {reviews.map((review) => (\r\n <RatingBadge key={`${review.alt}|${review.rating}`} {...review} />\r\n ))}\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nHomeHero.displayName = 'HomeHero'\r\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { NavbarProps } from './Navbar.types'\r\n\r\nconst SearchSvg = () => (\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\r\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\r\n <line\r\n x1=\"13.5\"\r\n y1=\"13.5\"\r\n x2=\"17.5\"\r\n y2=\"17.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst PhoneSvg = () => (\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\r\n <path\r\n 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\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.4\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n)\r\n\r\nconst navLinkClass =\r\n \"relative inline-flex items-center gap-xs text-text-deep no-underline text-md font-medium leading-5 whitespace-nowrap after:content-[''] after:absolute after:left-0 after:-bottom-1 after:w-full after:h-[2px] after:bg-primary after:scale-x-0 after:origin-left after:transition-transform after:duration-200 after:ease-in hover:after:scale-x-100 focus-visible:after:scale-x-100\"\r\n\r\nexport const Navbar = forwardRef<HTMLElement, NavbarProps>(\r\n (\r\n {\r\n logo,\r\n logoHref = '/',\r\n links,\r\n searchPlaceholder = 'Where do you want to go?',\r\n searchHref = '/search',\r\n phoneNumber,\r\n phoneIcon,\r\n LinkComponent,\r\n sticky = true,\r\n className,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const Link = LinkComponent ?? 'a'\r\n\r\n return (\r\n <header\r\n ref={ref}\r\n className={cn(\r\n 'flex items-center justify-between gap-lg w-full h-16 py-sm px-[48px] bg-background max-md:hidden',\r\n sticky && 'sticky top-0 z-[99]',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <div className=\"flex items-center gap-[64px]\">\r\n <Link href={logoHref} aria-label=\"Home\" className=\"inline-flex items-center no-underline\">\r\n <span className=\"inline-flex items-center justify-center w-[60px] h-[60px] shrink-0 [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\">\r\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\r\n </span>\r\n </Link>\r\n\r\n <Link href={searchHref} className=\"inline-flex no-underline shrink-0\">\r\n <span className=\"inline-flex items-center gap-sm w-[302px] h-[38px] pr-3 pl-6 bg-surface border border-primary rounded-full text-text-faded text-sm font-light leading-6\">\r\n <span className=\"flex-auto min-w-0\">{searchPlaceholder}</span>\r\n <span className=\"inline-flex items-center justify-center w-5 h-5 text-primary shrink-0\">\r\n <SearchSvg />\r\n </span>\r\n </span>\r\n </Link>\r\n </div>\r\n\r\n <div className=\"flex items-center gap-md\">\r\n <nav aria-label=\"Primary\">\r\n <ul className=\"flex items-center gap-6 m-0 px-sm list-none\">\r\n {links.map((link) => (\r\n <li key={link.href} className=\"inline-flex items-center\">\r\n <Link href={link.href} className={navLinkClass}>\r\n <span>{link.label}</span>\r\n {link.badgeIcon ? (\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center w-4 h-4\"\r\n >\r\n {link.badgeIcon}\r\n </span>\r\n ) : null}\r\n </Link>\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n\r\n {phoneNumber ? (\r\n <a\r\n href={`tel:${phoneNumber.replace(/\\s+/g, '')}`}\r\n className=\"inline-flex items-center gap-sm py-sm px-5 bg-transparent border border-primary rounded-full text-primary no-underline font-bold text-sm leading-5 whitespace-nowrap transition-colors duration-150 ease-in hover:bg-primary hover:text-white\"\r\n >\r\n {phoneIcon ?? (\r\n <span\r\n aria-hidden=\"true\"\r\n className=\"inline-flex items-center justify-center w-4 h-4 shrink-0\"\r\n >\r\n <PhoneSvg />\r\n </span>\r\n )}\r\n <span>{phoneNumber}</span>\r\n </a>\r\n ) : null}\r\n </div>\r\n </header>\r\n )\r\n }\r\n)\r\n\r\nNavbar.displayName = 'Navbar'\r\n","import { forwardRef } from 'react'\r\nimport { LocationCard } from '../../components/LocationCard'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { cn } from '../../lib/cn'\r\nimport type { OfficesSectionProps } from './OfficesSection.types'\r\n\r\nexport const OfficesSection = forwardRef<HTMLElement, OfficesSectionProps>(\r\n ({ heading, subheading, locations, className, ...rest }, ref) => {\r\n return (\r\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <div className=\"flex flex-wrap gap-lg w-full [&>*]:flex-[1_1_280px]\">\r\n {locations.map((office) => (\r\n <LocationCard key={office.location} {...office} />\r\n ))}\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nOfficesSection.displayName = 'OfficesSection'\r\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { MonthTabs } from '../../components/MonthTabs'\nimport { PackageCard } from '../../components/PackageCard'\nimport { cn } from '../../lib/cn'\nimport type { PackagesCarouselProps } from './PackagesCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ArrowRight = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M3 8h10M9 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-1/2 -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-primary border-none rounded-full text-on-dark cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[1] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const PackagesCarousel = forwardRef<HTMLElement, PackagesCarouselProps>(\n (\n {\n heading,\n viewAllHref,\n viewAllLabel = 'View All',\n months,\n activeMonthId,\n onMonthChange,\n packages,\n className,\n ...rest\n },\n ref\n ) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n canPrev,\n canNext\n } = useScrollSnap(packages.length)\n\n return (\n <section\n ref={ref}\n className={cn('flex flex-col items-center gap-xl bg-surface', className)}\n {...rest}\n >\n <div className=\"flex flex-col gap-xl w-full\">\n <div className=\"flex items-center justify-between gap-lg\">\n <h2 className=\"m-0 text-xl font-semibold leading-5 text-secondary\">{heading}</h2>\n {viewAllHref ? (\n <a\n href={viewAllHref}\n className=\"inline-flex items-center gap-sm text-text-emphasis no-underline text-xs font-medium leading-5 hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n {viewAllLabel}\n <ArrowRight />\n </a>\n ) : null}\n </div>\n\n <MonthTabs months={months} activeMonthId={activeMonthId} onMonthChange={onMonthChange} />\n\n <div className=\"relative w-full\">\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous packages\"\n className={cn(arrowBase, '-left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm px-lg overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {packages.map((pkg) => (\n <PackageCard\n key={`${pkg.image}|${pkg.title}|${pkg.date}`}\n image={pkg.image}\n alt={pkg.alt}\n title={pkg.title}\n currentPrice={pkg.currentPrice}\n originalPrice={pkg.originalPrice}\n priceSuffix={pkg.priceSuffix}\n duration={pkg.duration}\n location={pkg.location}\n date={pkg.date}\n href={pkg.href}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next packages\"\n className={cn(arrowBase, '-right-2')}\n >\n <ChevronRight />\n </button>\n </div>\n </div>\n </section>\n )\n }\n)\n\nPackagesCarousel.displayName = 'PackagesCarousel'\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport { CategoryNavbar } from '../CategoryNavbar'\r\nimport { Navbar } from '../Navbar'\r\nimport type { SiteHeaderProps } from './SiteHeader.types'\r\n\r\nexport const SiteHeader = forwardRef<HTMLDivElement, SiteHeaderProps>(\r\n ({ navbar, categoryNavbar, sticky = true, className, ...rest }, ref) => (\r\n <div ref={ref} className={cn(sticky && 'sticky top-0 z-[200]', className)} {...rest}>\r\n <Navbar {...navbar} sticky={false} />\r\n <CategoryNavbar {...categoryNavbar} sticky={false} />\r\n </div>\r\n )\r\n)\r\n\r\nSiteHeader.displayName = 'SiteHeader'\r\n","'use client'\r\n\r\nimport { forwardRef } from 'react'\r\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { TeamInfoCard } from '../../components/TeamInfoCard'\r\nimport { cn } from '../../lib/cn'\r\nimport type { TeamSectionProps } from './TeamSection.types'\r\n\r\nexport const TeamSection = forwardRef<HTMLElement, TeamSectionProps>(\r\n ({ heading, subheading, members, className, ...rest }, ref) => {\r\n const { ref: trackRef, activeIndex } = useScrollSnap(members.length)\r\n\r\n return (\r\n <section\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col items-center gap-lg px-md bg-surface',\r\n 'md:gap-xl md:px-lg',\r\n 'lg:px-[80px]',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <ul\r\n ref={trackRef}\r\n className={cn(\r\n 'flex gap-md w-full max-w-[1106px] m-0 p-0 list-none',\r\n 'overflow-x-auto snap-x snap-mandatory',\r\n '[scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\r\n 'lg:grid lg:grid-cols-3 lg:overflow-visible lg:snap-none'\r\n )}\r\n >\r\n {members.map((member) => (\r\n <li\r\n key={`${member.name}-${member.designation}`}\r\n className={cn(\r\n 'm-0 shrink-0 snap-center',\r\n 'w-full',\r\n 'md:w-[calc((100%-var(--spacing-md))/2)]',\r\n 'lg:w-auto lg:shrink lg:snap-align-none'\r\n )}\r\n >\r\n <TeamInfoCard {...member} />\r\n </li>\r\n ))}\r\n </ul>\r\n {members.length > 1 ? (\r\n <div\r\n role=\"tablist\"\r\n aria-label=\"Team carousel position\"\r\n className=\"flex items-center justify-center gap-sm lg:hidden\"\r\n >\r\n {members.map((member, index) => (\r\n <span\r\n key={`${member.name}-${member.designation}|dot`}\r\n aria-hidden=\"true\"\r\n className={cn(\r\n 'h-2 rounded-full transition-[width,background-color] duration-200 ease-in',\r\n index === activeIndex ? 'w-5 bg-primary' : 'w-2 bg-border'\r\n )}\r\n />\r\n ))}\r\n </div>\r\n ) : null}\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nTeamSection.displayName = 'TeamSection'\r\n","'use client'\n\nimport { forwardRef, useRef, useState } from 'react'\nimport { TestimonialCard } from '../../components/TestimonialCard'\nimport { cn } from '../../lib/cn'\nimport type { TestimonialsCarouselProps } from './TestimonialsCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12 15l-5-5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M8 5l5 5-5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowClass =\n 'inline-flex items-center justify-center w-9 h-9 p-0 bg-primary border-none rounded-full text-on-dark cursor-pointer transition-opacity duration-150 ease-in disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const TestimonialsCarousel = forwardRef<HTMLElement, TestimonialsCarouselProps>(\n (\n { testimonials, defaultIndex = 0, activeIndex, onActiveIndexChange, className, ...rest },\n ref\n ) => {\n const isControlled = activeIndex !== undefined\n const [internalIndex, setInternalIndex] = useState(defaultIndex)\n const currentIndex = isControlled ? activeIndex : internalIndex\n const touchStartX = useRef<number | null>(null)\n\n const setIndex = (next: number) => {\n if (!isControlled) setInternalIndex(next)\n onActiveIndexChange?.(next)\n }\n\n const current = testimonials[currentIndex]\n if (!current) return null\n\n const isFirst = currentIndex <= 0\n const isLast = currentIndex >= testimonials.length - 1\n\n const handleTouchStart = (e: React.TouchEvent) => {\n touchStartX.current = e.touches[0]?.clientX ?? null\n }\n\n const handleTouchEnd = (e: React.TouchEvent) => {\n if (touchStartX.current === null) return\n const endX = e.changedTouches[0]?.clientX\n if (endX === undefined) return\n const delta = touchStartX.current - endX\n if (Math.abs(delta) > 40) {\n if (delta > 0 && !isLast) setIndex(currentIndex + 1)\n else if (delta < 0 && !isFirst) setIndex(currentIndex - 1)\n }\n touchStartX.current = null\n }\n\n return (\n <section\n ref={ref}\n className={cn('flex flex-col items-center gap-[28px] bg-surface', className)}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n {...rest}\n >\n <TestimonialCard\n thumbnail={current.thumbnail}\n thumbnailAlt={current.thumbnailAlt}\n logo={current.logo}\n logoAlt={current.logoAlt}\n caption={current.caption}\n videoHref={current.videoHref}\n />\n {testimonials.length > 1 ? (\n <div className=\"flex items-center justify-center gap-lg\">\n <button\n type=\"button\"\n onClick={() => setIndex(currentIndex - 1)}\n disabled={isFirst}\n aria-label=\"Previous testimonial\"\n className={arrowClass}\n >\n <ChevronLeft />\n </button>\n <div\n role=\"tablist\"\n aria-label=\"Testimonial slide\"\n className=\"flex items-center justify-center gap-3\"\n >\n {testimonials.map((testimonial, index) => (\n <button\n key={`${testimonial.thumbnail}|${testimonial.caption}`}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === currentIndex}\n aria-label={`Go to testimonial ${index + 1}`}\n onClick={() => setIndex(index)}\n className={cn(\n 'inline-block h-[6px] p-0 border-none rounded-full cursor-pointer transition-[width,background-color] duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2',\n index === currentIndex ? 'w-5 bg-primary' : 'w-[5px] bg-border'\n )}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={() => setIndex(currentIndex + 1)}\n disabled={isLast}\n aria-label=\"Next testimonial\"\n className={arrowClass}\n >\n <ChevronRight />\n </button>\n </div>\n ) : null}\n </section>\n )\n }\n)\n\nTestimonialsCarousel.displayName = 'TestimonialsCarousel'\n","import { forwardRef } from 'react'\r\nimport { cn } from '../../lib/cn'\r\nimport type { TextSectionProps } from './TextSection.types'\r\n\r\nexport const TextSection = forwardRef<HTMLElement, TextSectionProps>(\r\n ({ heading, paragraphs, align = 'left', className, ...rest }, ref) => (\r\n <section\r\n ref={ref}\r\n className={cn(\r\n 'flex flex-col gap-md w-full',\r\n align === 'center' ? 'items-center text-center' : 'items-start text-left',\r\n className\r\n )}\r\n {...rest}\r\n >\r\n <h2 className=\"m-0 text-section-heading\">{heading}</h2>\r\n <div className=\"flex flex-col gap-md max-w-[760px]\">\r\n {paragraphs.map((paragraph) => (\r\n <p key={paragraph} className=\"m-0 text-card-body\">\r\n {paragraph}\r\n </p>\r\n ))}\r\n </div>\r\n </section>\r\n )\r\n)\r\n\r\nTextSection.displayName = 'TextSection'\r\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { EffectCards } from 'swiper/modules'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { TripCategoryCard } from '../../components/TripCategoryCard'\nimport { cn } from '../../lib/cn'\nimport type { TripsCategorySectionProps } from './TripsCategorySection.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-[calc(50%+30px)] -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-surface border border-border rounded-full text-primary cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[1] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const TripsCategorySection = forwardRef<HTMLElement, TripsCategorySectionProps>(\n ({ title, description, cta, poster, videoSrc, trips, className, ...rest }, ref) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n canPrev,\n canNext,\n scrollProgress\n } = useScrollSnap(trips.length)\n\n const handleCtaClick = () => {\n if (cta.href) {\n window.location.assign(cta.href)\n return\n }\n cta.onClick?.()\n }\n\n const progressWidth = Math.min(33 + scrollProgress * (120 - 33), 120)\n\n return (\n <section ref={ref} className={cn('relative flex flex-col bg-surface max-md:overflow-x-clip', className)} {...rest}>\n {/* Header banner */}\n <div className=\"relative h-[318px] rounded-lg overflow-hidden max-md:h-[260px]\">\n <div className=\"absolute inset-0\">\n {/* Mobile: static poster image */}\n <img\n src={poster}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"w-full h-full object-cover md:hidden\"\n />\n {/* Desktop: autoplay video */}\n <video\n autoPlay\n muted\n loop\n playsInline\n poster={poster}\n src={videoSrc}\n className=\"hidden md:block w-full h-full object-cover\"\n />\n </div>\n <div className=\"absolute inset-0 flex flex-col justify-center gap-lg p-[44px] max-md:p-[24px] text-on-image [text-shadow:0px_6px_24px_rgba(0,0,0,0.16)]\">\n <h2 className=\"m-0 text-hero-title max-w-[436px] max-md:text-secondary max-md:[text-shadow:none]\">{title}</h2>\n <p className=\"max-md:hidden m-0 text-xs font-bold leading-5\">{description}</p>\n <button\n type=\"button\"\n onClick={handleCtaClick}\n className=\"max-md:hidden inline-flex items-center justify-center self-start h-11 px-xl bg-accent text-secondary border-none rounded-md font-[inherit] text-button cursor-pointer shadow-[inset_0_0_6px_rgba(0,0,0,0.14)] transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2\"\n >\n {cta.label}\n </button>\n </div>\n </div>\n\n {/* Desktop: horizontal scroll carousel */}\n <div className=\"relative -mt-[68px] py-sm px-[25px] hidden md:block\">\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous trips\"\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {trips.map((trip) => (\n <TripCategoryCard\n key={`${trip.image}|${trip.destination}`}\n image={trip.image}\n alt={trip.alt}\n destination={trip.destination}\n startingPrice={trip.startingPrice}\n href={trip.href}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next trips\"\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n <div\n role=\"progressbar\"\n aria-valuenow={Math.round(scrollProgress * 100)}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label=\"Scroll position\"\n className=\"relative w-[120px] h-[6px] mt-md mx-auto bg-track rounded-[32px] overflow-hidden\"\n >\n <span\n className=\"absolute top-0 left-0 h-full bg-primary rounded-[32px] transition-[width] duration-200 ease-in\"\n style={{ width: `${progressWidth}px` }}\n />\n </div>\n </div>\n\n {/* Mobile: Swiper cards effect deck */}\n <div className=\"relative -mt-[60px] pb-md md:hidden flex justify-center\">\n <Swiper\n effect=\"cards\"\n grabCursor\n modules={[EffectCards]}\n className=\"w-[74vw] [aspect-ratio:289/367]\"\n style={{ overflow: 'visible' }}\n >\n {trips.map((trip) => (\n <SwiperSlide\n key={`${trip.image}|${trip.destination}|mobile`}\n style={{ borderRadius: '12px', overflow: 'hidden' }}\n >\n <TripCategoryCard\n image={trip.image}\n alt={trip.alt}\n destination={trip.destination}\n startingPrice={trip.startingPrice}\n href={trip.href}\n className=\"w-full h-full rounded-xl shrink-0\"\n />\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </section>\n )\n }\n)\n\nTripsCategorySection.displayName = 'TripsCategorySection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { UctMobileBannerProps } from './UctMobileBanner.types'\n\nconst UCT_VIDEO_DEFAULT = 'https://wanderon-video.gumlet.io/upcoming-community-trips-a.mp4'\nconst UCT_POSTER_DEFAULT =\n 'https://wanderon-images.gumlet.io/uct-thumbnail.jpg?updatedAt=1739361886945'\n\nexport const UctMobileBanner = forwardRef<HTMLAnchorElement, UctMobileBannerProps>(\n (\n {\n href,\n videoUrl = UCT_VIDEO_DEFAULT,\n posterUrl = UCT_POSTER_DEFAULT,\n LinkComponent,\n className,\n ...rest\n },\n ref\n ) => {\n const Link = LinkComponent ?? 'a'\n\n return (\n <Link\n ref={ref}\n href={href}\n className={cn(\n 'flex justify-center no-underline outline-none select-none [-webkit-tap-highlight-color:transparent]',\n className\n )}\n {...rest}\n >\n <div className=\"relative w-full mx-4\">\n {/* Circle video — pops above the pill */}\n <div className=\"absolute top-[-15px] left-[10px] w-[51px] h-[50px] rounded-full z-[6] [box-shadow:0px_4px_10px_0px_rgba(254,230,11,0.2)]\">\n <video\n src={videoUrl}\n poster={posterUrl}\n muted\n loop\n autoPlay\n playsInline\n className=\"w-full h-full object-cover rounded-full\"\n />\n </div>\n\n {/* Pill */}\n <div\n className=\"relative flex items-center justify-between overflow-hidden h-[60px] pl-[70px] pr-[10px] py-[10px] rounded-xl cursor-pointer\"\n style={{\n background: 'linear-gradient(90deg, #015f74 0%, #02b3da 100%)',\n boxShadow: '0px 4px 4px 0px rgba(1, 95, 116, 0.3) inset'\n }}\n >\n <span className=\"text-[#f5fdff] text-base font-medium leading-7 font-[inherit]\">\n Upcoming Community Trips\n </span>\n\n <span\n aria-hidden=\"true\"\n className=\"inline-flex\"\n style={{ animation: 'uct-move-arrow 1.5s infinite' }}\n >\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M13 6L19 12L13 18M5 6L11 12L5 18\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n\n {/* Pulse rings */}\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[300px] h-[250px] pointer-events-none\">\n <div\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[#ababab] w-0 h-0\"\n style={{ animation: 'uct-pulse-one 2s infinite 0s ease-in-out' }}\n />\n <div\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[#ababab] w-0 h-0\"\n style={{ animation: 'uct-pulse-two 2s infinite 1s ease-in-out' }}\n />\n </div>\n </div>\n </div>\n </Link>\n )\n }\n)\n\nUctMobileBanner.displayName = 'UctMobileBanner'\n","'use client'\r\n\r\nimport { forwardRef, useState } from 'react'\r\nimport { ExpandableValueCard } from '../../components/ExpandableValueCard'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { cn } from '../../lib/cn'\r\nimport type { ValuesSectionProps } from './ValuesSection.types'\r\n\r\nexport const ValuesSection = forwardRef<HTMLElement, ValuesSectionProps>(\r\n ({ heading, subheading, values, singleOpen = false, className, ...rest }, ref) => {\r\n const [openIndex, setOpenIndex] = useState<number | null>(null)\r\n\r\n return (\r\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <div className=\"flex flex-col gap-md w-full\">\r\n {values.map((value, index) => {\r\n const serialNumber = index + 1\r\n if (!singleOpen) {\r\n return (\r\n <ExpandableValueCard\r\n key={value.title}\r\n serialNumber={serialNumber}\r\n title={value.title}\r\n bullets={value.bullets}\r\n />\r\n )\r\n }\r\n return (\r\n <ExpandableValueCard\r\n key={value.title}\r\n serialNumber={serialNumber}\r\n title={value.title}\r\n bullets={value.bullets}\r\n expanded={openIndex === index}\r\n onToggle={(next) => setOpenIndex(next ? index : null)}\r\n />\r\n )\r\n })}\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nValuesSection.displayName = 'ValuesSection'\r\n","import { forwardRef } from 'react'\r\nimport { SectionHeader } from '../../components/SectionHeader'\r\nimport { WarriorCard } from '../../components/WarriorCard'\r\nimport { cn } from '../../lib/cn'\r\nimport type { WarriorsSectionProps } from './WarriorsSection.types'\r\n\r\nexport const WarriorsSection = forwardRef<HTMLElement, WarriorsSectionProps>(\r\n ({ heading, subheading, warriors, className, ...rest }, ref) => {\r\n return (\r\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\r\n <SectionHeader heading={heading} subheading={subheading} />\r\n <div className=\"grid grid-cols-[repeat(auto-fit,minmax(240px,1fr))] gap-lg w-full\">\r\n {warriors.map((warrior) => (\r\n <WarriorCard key={warrior.name} {...warrior} />\r\n ))}\r\n </div>\r\n </section>\r\n )\r\n }\r\n)\r\n\r\nWarriorsSection.displayName = 'WarriorsSection'\r\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { FeatureCard } from '../../components/FeatureCard'\nimport { cn } from '../../lib/cn'\nimport type { WhyChooseSectionProps } from './WhyChooseSection.types'\n\nexport const WhyChooseSection = forwardRef<HTMLElement, WhyChooseSectionProps>(\n ({ heading, features, className, ...rest }, ref) => {\n const { ref: trackRef, activeIndex } = useScrollSnap(features.length)\n\n return (\n <section\n ref={ref}\n className={cn(\n // Mobile (default)\n 'flex flex-col items-center gap-lg bg-surface',\n // Tablet\n 'md:gap-xl',\n className\n )}\n {...rest}\n >\n <h2 className=\"m-0 text-section-h2 text-secondary text-center\">{heading}</h2>\n <ul\n ref={trackRef}\n className={cn(\n // Mobile + tablet: flex with snap scroll\n 'flex gap-md w-full max-w-[1106px] m-0 p-0 list-none',\n 'overflow-x-auto snap-x snap-mandatory',\n '[scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n // Desktop: static 4-col grid (no scroll)\n 'lg:grid lg:grid-cols-4 lg:overflow-visible lg:snap-none'\n )}\n >\n {features.map((feature) => (\n <li\n key={feature.heading}\n className={cn(\n 'm-0 shrink-0 snap-center',\n // Mobile: 1 card per view (fills the content area)\n 'w-full',\n // Tablet: 2 cards per view ((100% - one gap) / 2)\n 'md:w-[calc((100%-var(--spacing-md))/2)]',\n // Desktop: grid track decides width\n 'lg:w-auto lg:shrink lg:snap-align-none'\n )}\n >\n <FeatureCard\n heading={feature.heading}\n description={feature.description}\n imageUrl={feature.imageUrl}\n />\n </li>\n ))}\n </ul>\n {features.length > 1 ? (\n <div\n role=\"tablist\"\n aria-label=\"Feature carousel position\"\n className=\"flex items-center justify-center gap-sm lg:hidden\"\n >\n {features.map((feature, index) => (\n <span\n key={`${feature.heading}|dot`}\n aria-hidden=\"true\"\n className={cn(\n 'h-2 rounded-full transition-[width,background-color] duration-200 ease-in',\n index === activeIndex ? 'w-5 bg-primary' : 'w-2 bg-border'\n )}\n />\n ))}\n </div>\n ) : null}\n </section>\n )\n }\n)\n\nWhyChooseSection.displayName = 'WhyChooseSection'\n","const tokens = {\r\n colors: {\r\n primary: '#01AFD1',\r\n primaryHover: '#0089A6',\r\n accent: '#FEE60B',\r\n accentHover: '#E6CF09',\r\n secondary: '#4A4A4A',\r\n secondaryHover: '#333333',\r\n danger: '#DC2626',\r\n text: '#4A4A4A',\r\n textMuted: '#848484',\r\n background: '#FFFFFF',\r\n surface: '#FFFFFF',\r\n border: '#E2E8F0'\r\n },\r\n spacing: {\r\n xs: '4px',\r\n sm: '8px',\r\n md: '16px',\r\n lg: '24px',\r\n xl: '32px'\r\n },\r\n radii: {\r\n sm: '4px',\r\n md: '8px',\r\n lg: '12px',\r\n full: '9999px'\r\n },\r\n fontSizes: {\r\n sm: '14px',\r\n md: '16px',\r\n lg: '18px',\r\n xl: '24px',\r\n '2xl': '32px'\r\n },\r\n fontWeights: {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700\r\n },\r\n shadows: {\r\n card: '0px 6px 12px rgba(0, 0, 0, 0.16)',\r\n cardLg: '0px 6px 12px rgba(0, 0, 0, 0.40)'\r\n }\r\n} as const\r\n\r\nconst layout = {\r\n sectionPadding: `${tokens.spacing.xl} ${tokens.spacing.lg}`,\r\n cardPadding: tokens.spacing.lg,\r\n gridGap: tokens.spacing.lg,\r\n contentWidth: '760px',\r\n mobileBreakpoint: '768px'\r\n} as const\r\n\r\nexport const theme = {\r\n ...tokens,\r\n layout\r\n} as const\r\n\r\nexport type Theme = typeof theme\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/cn.ts","../src/components/BrandLogo/BrandLogo.tsx","../src/components/ContactForm/ContactForm.tsx","../src/components/DestinationCard/DestinationCard.tsx","../src/components/EventBanner/EventBanner.tsx","../src/components/EventVideoBanner/EventVideoBanner.tsx","../src/components/ExpandableValueCard/ExpandableValueCard.tsx","../src/components/ExploreCard/ExploreCard.tsx","../src/components/FaqExpandable/FaqExpandable.tsx","../src/components/FeatureCard/FeatureCard.tsx","../src/components/GalleryPhoto/GalleryPhoto.tsx","../src/components/LocationCard/LocationCard.tsx","../src/components/MonthTabs/MonthTabs.tsx","../src/components/PackageCard/PackageCard.tsx","../src/components/SectionHeader/SectionHeader.tsx","../src/components/TeamInfoCard/TeamInfoCard.tsx","../src/components/TestimonialCard/TestimonialCard.tsx","../src/components/TripCategoryCard/TripCategoryCard.tsx","../src/components/WarriorCard/WarriorCard.tsx","../src/sections/BottomNav/BottomNav.tsx","../src/sections/BrandsSection/BrandsSection.tsx","../src/sections/CategoryNavbar/CategoryDropdown.tsx","../src/sections/CategoryNavbar/Hamburger.tsx","../src/sections/CategoryNavbar/MobileDrawer.tsx","../src/sections/CategoryNavbar/CategoryNavbar.tsx","../src/sections/ContactSection/ContactSection.tsx","../src/sections/CtaBanner/CtaBanner.tsx","../src/sections/DestinationsSection/DestinationsSection.tsx","../src/components/_internal/useScrollSnap.ts","../src/sections/EventCarousel/EventCarousel.tsx","../src/sections/ExploreSection/ExploreSection.tsx","../src/sections/FaqSection/FaqSection.tsx","../src/sections/Footer/Footer.tsx","../src/sections/GallerySection/GallerySection.tsx","../src/sections/Hero/RatingBadge.tsx","../src/sections/Hero/Hero.tsx","../src/sections/HomeHero/RatingBadge.tsx","../src/sections/HomeHero/useTypewriter.ts","../src/sections/HomeHero/HomeHero.tsx","../src/sections/Navbar/Navbar.tsx","../src/sections/OfficesSection/OfficesSection.tsx","../src/sections/PackagesCarousel/PackagesCarousel.tsx","../src/sections/SiteHeader/SiteHeader.tsx","../src/sections/TeamSection/TeamSection.tsx","../src/sections/TestimonialsCarousel/TestimonialsCarousel.tsx","../src/sections/TextSection/TextSection.tsx","../src/sections/TripsCategorySection/TripsCategorySection.tsx","../src/sections/UctMobileBanner/UctMobileBanner.tsx","../src/sections/ValuesSection/ValuesSection.tsx","../src/sections/WarriorsSection/WarriorsSection.tsx","../src/sections/WhyChooseSection/WhyChooseSection.tsx","../src/theme/theme.ts"],"names":["jsxs","jsx","forwardRef","Fragment","frameClass","useState","useId","cardClass","ChevronSvg","useRef","ref","useEffect","MailSvg","ChevronLeft","ChevronRight","arrowBase","title","subtitle","backgroundImage","backgroundColor","_variant","className","rest","RatingBadge","SearchSvg","PhoneSvg"],"mappings":"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","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs))\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { BrandLogoProps } from './BrandLogo.types'\n\nconst containerClass =\n 'inline-flex flex-col items-center justify-center gap-sm p-md bg-surface border border-border rounded-md no-underline text-inherit'\n\nexport const BrandLogo = forwardRef<HTMLElement, BrandLogoProps>(\n ({ logo, name, href, className, ...rest }, ref) => {\n const content = (\n <>\n <img src={logo} alt={name} className=\"h-[50px] w-auto max-w-full object-contain\" />\n <span className=\"text-sm font-medium leading-button text-text\">{name}</span>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(containerClass, 'hover:border-primary', className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(containerClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nBrandLogo.displayName = 'BrandLogo'\n","'use client'\n\nimport { cva } from 'class-variance-authority'\nimport { type FormEvent, forwardRef, useId, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport type {\n ContactFormCountryCode,\n ContactFormHeaderVariant,\n ContactFormProps,\n ContactFormValues\n} from './ContactForm.types'\n\nconst PersonSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"8\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"M4 20a8 8 0 0 1 16 0\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinecap=\"round\" />\n </svg>\n)\n\nconst MailSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"m3 7 9 6 9-6\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n </svg>\n)\n\nconst DEFAULT_COUNTRY_CODES: ContactFormCountryCode[] = [{ code: '+91' }]\n\nconst resolveMaxWidth = (input: number | string | undefined): string => {\n if (input == null) return '480px'\n return typeof input === 'number' ? `${input}px` : input\n}\n\nconst resolveHeaderVariant = (\n variant: ContactFormHeaderVariant | undefined,\n hasIllustration: boolean\n): ContactFormHeaderVariant => {\n if (variant) return variant\n return hasIllustration ? 'illustration' : 'tinted'\n}\n\nconst formClass = cva('flex flex-col w-full', {\n variants: {\n variant: {\n card: 'bg-background rounded-lg shadow-card overflow-hidden',\n plain: 'bg-transparent'\n }\n }\n})\n\nconst inputClass =\n 'flex-1 min-w-0 p-0 bg-transparent border-none outline-none font-[inherit] text-form-input text-text placeholder:text-text-muted placeholder:opacity-80'\n\nconst selectClass = `${inputClass} pr-[18px] cursor-pointer appearance-none bg-no-repeat bg-[right_0_center] bg-[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>\")] invalid:text-text-muted`\n\nexport const ContactForm = forwardRef<HTMLFormElement, ContactFormProps>(\n (\n {\n variant = 'card',\n headerVariant,\n eyebrow = 'Wanderlust Calling?',\n heading = 'Allow Us to Call You Back!',\n submitLabel = 'Submit',\n headerIllustration,\n countryCodes,\n destinations,\n maxWidth,\n onSubmit,\n className,\n style,\n ...rest\n },\n ref\n ) => {\n const baseId = useId()\n const codes = countryCodes && countryCodes.length > 0 ? countryCodes : DEFAULT_COUNTRY_CODES\n const firstCode = codes[0]?.code ?? '+91'\n const showDestination = !!destinations && destinations.length > 0\n const resolvedHeader = resolveHeaderVariant(headerVariant, !!headerIllustration)\n\n const [values, setValues] = useState<ContactFormValues>({\n name: '',\n phone: '',\n countryCode: firstCode,\n email: '',\n destination: ''\n })\n\n const update = (key: keyof ContactFormValues, value: string) => {\n setValues((prev) => ({ ...prev, [key]: value }))\n }\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault()\n onSubmit?.(values)\n }\n\n return (\n <form\n ref={ref}\n onSubmit={handleSubmit}\n noValidate\n className={cn(formClass({ variant }), className)}\n style={{ maxWidth: resolveMaxWidth(maxWidth), ...style }}\n {...rest}\n >\n {resolvedHeader === 'none' ? null : (\n <div className=\"flex items-end justify-between gap-md w-full py-md pt-lg px-xl pb-md bg-brand-shade-1 max-md:pt-5 max-md:px-lg max-md:pb-3.5\">\n <div className=\"flex flex-col gap-xs flex-auto min-w-0\">\n <p className=\"m-0 text-form-eyebrow text-primary\">{eyebrow}</p>\n <p className=\"m-0 text-form-heading text-text\">{heading}</p>\n </div>\n {resolvedHeader === 'illustration' && headerIllustration ? (\n <div\n aria-hidden=\"true\"\n className=\"shrink-0 flex items-end justify-center h-20 [&>img]:h-full [&>img]:w-auto [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:object-contain\"\n >\n {headerIllustration}\n </div>\n ) : null}\n </div>\n )}\n\n <div className=\"flex flex-col gap-lg p-xl max-md:p-lg max-md:gap-md\">\n <FieldShell labelFor={`${baseId}-name`} label=\"Name\" required>\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-6 h-6 shrink-0 text-text-muted\"\n >\n <PersonSvg />\n </span>\n <input\n id={`${baseId}-name`}\n name=\"name\"\n type=\"text\"\n required\n placeholder=\"e.g. John Smith\"\n value={values.name}\n onChange={(e) => update('name', e.target.value)}\n className={inputClass}\n />\n </FieldShell>\n\n <FieldShell labelFor={`${baseId}-phone`} label=\"Phone Number\" required>\n <select\n aria-label=\"Country code\"\n value={values.countryCode}\n onChange={(e) => update('countryCode', e.target.value)}\n className={`shrink-0 pr-3.5 mr-sm bg-transparent border-none outline-none border-r border-r-border font-[inherit] text-form-input-strong text-text cursor-pointer appearance-none bg-no-repeat bg-[right_0_center] bg-[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>\")]`}\n >\n {codes.map((c) => (\n <option key={c.code} value={c.code}>\n {c.label ?? c.code}\n </option>\n ))}\n </select>\n <input\n id={`${baseId}-phone`}\n name=\"phone\"\n type=\"tel\"\n required\n placeholder=\"Enter your 10 digit number\"\n value={values.phone}\n onChange={(e) => update('phone', e.target.value)}\n className={inputClass}\n />\n </FieldShell>\n\n {showDestination ? (\n <FieldShell labelFor={`${baseId}-destination`} label=\"Destination\">\n <select\n id={`${baseId}-destination`}\n name=\"destination\"\n value={values.destination}\n onChange={(e) => update('destination', e.target.value)}\n className={selectClass}\n >\n <option value=\"\">-- Select destination --</option>\n {destinations?.map((d) => (\n <option key={d.value} value={d.value}>\n {d.label}\n </option>\n ))}\n </select>\n </FieldShell>\n ) : null}\n\n <FieldShell labelFor={`${baseId}-email`} label=\"Email Id\">\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-6 h-6 shrink-0 text-text-muted\"\n >\n <MailSvg />\n </span>\n <input\n id={`${baseId}-email`}\n name=\"email\"\n type=\"email\"\n placeholder=\"john@example.com\"\n value={values.email}\n onChange={(e) => update('email', e.target.value)}\n className={inputClass}\n />\n </FieldShell>\n\n <button\n type=\"submit\"\n className=\"inline-flex items-center justify-center h-12 w-full py-2.5 px-xl mt-xs bg-accent border-none rounded-full text-text font-[inherit] text-md font-semibold leading-6 cursor-pointer transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2\"\n >\n {submitLabel}\n </button>\n </div>\n </form>\n )\n }\n)\n\nContactForm.displayName = 'ContactForm'\n\n/* Inline subcomponent to keep the shell + floating label markup tidy. */\nfunction FieldShell({\n label,\n labelFor,\n required,\n children\n}: {\n label: string\n labelFor: string\n required?: boolean\n children: React.ReactNode\n}) {\n return (\n <div className=\"relative w-full\">\n <div className=\"group relative flex items-center gap-sm min-h-14 py-3.5 px-md bg-background border border-border rounded-md transition-colors duration-150 ease-in focus-within:border-primary\">\n <label\n htmlFor={labelFor}\n className=\"absolute -top-2 left-3 inline-flex items-center px-1 bg-background text-form-label text-text opacity-80 group-focus-within:text-primary group-focus-within:opacity-100\"\n >\n {label}\n {required ? <span className=\"ml-[2px] text-danger font-semibold\">*</span> : null}\n </label>\n {children}\n </div>\n </div>\n )\n}\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { DestinationCardProps } from './DestinationCard.types'\n\nconst cardClass =\n 'shrink-0 flex flex-col items-center gap-sm w-[66px] no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:rounded-md'\n\nexport const DestinationCard = forwardRef<HTMLElement, DestinationCardProps>(\n ({ image, alt, label, href, className, ...rest }, ref) => {\n const content = (\n <>\n <img\n src={image}\n alt={alt}\n className=\"w-[66px] h-[66px] rounded-full object-cover bg-border\"\n />\n <span className=\"text-sm font-medium leading-5 text-secondary text-center whitespace-nowrap\">\n {label}\n </span>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nDestinationCard.displayName = 'DestinationCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { EventBannerProps } from './EventBanner.types'\n\nconst frameClass =\n 'block w-full h-[300px] overflow-hidden rounded-md no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const EventBanner = forwardRef<HTMLDivElement, EventBannerProps>(\n ({ imageUrl, alt, href, className, ...rest }, ref) => (\n <div ref={ref} className={cn('shrink-0 w-full snap-start', className)} {...rest}>\n {href ? (\n <a href={href} className={frameClass}>\n <img\n src={imageUrl}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"block w-full h-full object-cover\"\n />\n </a>\n ) : (\n <div className={frameClass}>\n <img\n src={imageUrl}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"block w-full h-full object-cover\"\n />\n </div>\n )}\n </div>\n )\n)\n\nEventBanner.displayName = 'EventBanner'\n","'use client'\n\nimport { forwardRef, useEffect, useRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { EventVideoBannerProps } from './EventVideoBanner.types'\n\nconst frameClass =\n 'block w-full h-[300px] overflow-hidden rounded-md no-underline text-inherit focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nconst mediaClass = 'block w-full h-full object-cover'\n\nexport const EventVideoBanner = forwardRef<HTMLDivElement, EventVideoBannerProps>(\n (\n {\n posterUrl,\n videoUrl,\n alt,\n href,\n mobileVideoUrl,\n mobilePosterUrl,\n isActive = true,\n className,\n ...rest\n },\n ref\n ) => {\n const videoRef = useRef<HTMLVideoElement>(null)\n\n useEffect(() => {\n if (!isActive) return\n const video = videoRef.current\n if (!video || !videoUrl) return\n\n // Pick URL/poster for this viewport at mount (client-only). SSR markup\n // intentionally has no `src`, so mobile never fetches the desktop MP4.\n const isMobileViewport =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(max-width: 767px)').matches\n const activeUrl = isMobileViewport && mobileVideoUrl ? mobileVideoUrl : videoUrl\n const activePoster = isMobileViewport && mobilePosterUrl ? mobilePosterUrl : posterUrl\n if (activePoster && video.poster !== activePoster) {\n video.poster = activePoster\n }\n\n if (!activeUrl.includes('.m3u8')) {\n video.src = activeUrl\n return\n }\n\n // Safari / iOS — native HLS\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = activeUrl\n return\n }\n\n // Chrome / Android / Firefox — lazy-load hls.js\n let cancelled = false\n import('hls.js').then(({ default: Hls }) => {\n if (cancelled || !Hls.isSupported()) return\n const hls = new Hls({ autoStartLoad: true, startLevel: -1 })\n hls.loadSource(activeUrl)\n hls.attachMedia(video)\n // store on element for cleanup\n ;(video as HTMLVideoElement & { _hls?: typeof hls })._hls = hls\n })\n\n return () => {\n cancelled = true\n const stored = (video as HTMLVideoElement & { _hls?: { destroy(): void } })._hls\n stored?.destroy()\n }\n }, [videoUrl, mobileVideoUrl, posterUrl, mobilePosterUrl, isActive])\n\n const mediaEl = isActive ? (\n <video\n ref={videoRef}\n // No src in markup — useEffect picks the viewport-appropriate URL\n poster={posterUrl}\n aria-label={alt}\n muted\n autoPlay\n loop\n playsInline\n preload=\"metadata\"\n className={mediaClass}\n />\n ) : (\n // <picture> lets the browser pick mobile/desktop poster via CSS, no JS\n <picture>\n {mobilePosterUrl ? <source media=\"(max-width: 767px)\" srcSet={mobilePosterUrl} /> : null}\n <img src={posterUrl} alt={alt} loading=\"lazy\" decoding=\"async\" className={mediaClass} />\n </picture>\n )\n\n return (\n <div ref={ref} className={cn('shrink-0 w-full snap-start', className)} {...rest}>\n {href ? (\n <a href={href} className={frameClass}>\n {mediaEl}\n </a>\n ) : (\n <div className={frameClass}>{mediaEl}</div>\n )}\n </div>\n )\n }\n)\n\nEventVideoBanner.displayName = 'EventVideoBanner'\n","'use client'\n\nimport { forwardRef, useId, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { ExpandableValueCardProps } from './ExpandableValueCard.types'\n\nexport const ExpandableValueCard = forwardRef<HTMLElement, ExpandableValueCardProps>(\n (\n { serialNumber, title, bullets, defaultOpen = false, expanded, onToggle, className, ...rest },\n ref\n ) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const isControlled = expanded !== undefined\n const open = isControlled ? expanded : internalOpen\n const panelId = useId()\n const formattedSerial = String(serialNumber).padStart(2, '0')\n\n const handleToggle = () => {\n const next = !open\n if (!isControlled) {\n setInternalOpen(next)\n }\n onToggle?.(next)\n }\n\n return (\n <section\n ref={ref}\n className={cn('border border-border rounded-md overflow-hidden bg-surface', className)}\n {...rest}\n >\n <button\n type=\"button\"\n aria-expanded={open}\n aria-controls={panelId}\n onClick={handleToggle}\n className={cn(\n 'flex items-center gap-md w-full py-md px-lg border-none cursor-pointer text-left transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\n open ? 'bg-primary text-white' : 'bg-surface text-text'\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 min-w-[36px] text-lg font-bold',\n open ? 'text-white' : 'text-text-muted'\n )}\n >\n {formattedSerial}\n </span>\n <span className=\"flex-1 text-card-title text-inherit\">{title}</span>\n <span\n aria-hidden=\"true\"\n className={cn(\n \"inline-flex items-center justify-center w-4 h-4 shrink-0 transition-transform duration-200 ease-in before:content-['›'] before:text-[24px] before:leading-none\",\n open ? 'rotate-90' : 'rotate-0'\n )}\n />\n </button>\n <div id={panelId} className={cn('py-md px-lg bg-surface', open ? 'block' : 'hidden')}>\n <ul className=\"m-0 pl-lg flex flex-col gap-xs\">\n {bullets.map((text) => (\n <li key={text} className=\"text-card-body [overflow-wrap:anywhere]\">\n {text}\n </li>\n ))}\n </ul>\n </div>\n </section>\n )\n }\n)\n\nExpandableValueCard.displayName = 'ExpandableValueCard'\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { ExploreCardProps } from './ExploreCard.types'\n\nconst cardClass =\n 'shrink-0 w-[132px] flex flex-col bg-surface border border-border rounded-lg overflow-hidden no-underline text-inherit shadow-[0_1px_4px_rgba(0,0,0,0.06)] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const ExploreCard = forwardRef<HTMLElement, ExploreCardProps>(\n ({ image, alt, label, href, className, ...rest }, ref) => {\n const content = (\n <>\n <img\n src={image}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"block w-full h-[102px] object-cover\"\n />\n <span className=\"flex items-center justify-center min-h-[56px] py-sm px-md text-md font-medium leading-card text-secondary text-center\">\n {label}\n </span>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nExploreCard.displayName = 'ExploreCard'\n","'use client'\n\nimport { forwardRef, useId, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { FaqExpandableProps } from './FaqExpandable.types'\n\nexport const FaqExpandable = forwardRef<HTMLElement, FaqExpandableProps>(\n ({ question, bullets, defaultOpen = false, expanded, onToggle, className, ...rest }, ref) => {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const isControlled = expanded !== undefined\n const open = isControlled ? expanded : internalOpen\n const panelId = useId()\n\n const handleToggle = () => {\n const next = !open\n if (!isControlled) {\n setInternalOpen(next)\n }\n onToggle?.(next)\n }\n\n return (\n <section\n ref={ref}\n className={cn('border border-border rounded-md overflow-hidden bg-surface', className)}\n {...rest}\n >\n <button\n type=\"button\"\n aria-expanded={open}\n aria-controls={panelId}\n onClick={handleToggle}\n className={cn(\n 'flex items-center justify-between gap-md w-full py-md px-lg border-none cursor-pointer text-md font-semibold text-left transition-colors duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\n open ? 'bg-primary text-white' : 'bg-surface text-text'\n )}\n >\n <span>{question}</span>\n <span\n aria-hidden=\"true\"\n className={cn(\n \"inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in before:content-['›'] before:text-[24px] before:leading-none\",\n open ? 'rotate-90' : 'rotate-0'\n )}\n />\n </button>\n <div id={panelId} className={cn('py-md px-lg bg-surface', open ? 'block' : 'hidden')}>\n <ul className=\"m-0 pl-lg flex flex-col gap-xs\">\n {bullets.map((text) => (\n <li key={text} className=\"text-sm text-text leading-body [overflow-wrap:anywhere]\">\n {text}\n </li>\n ))}\n </ul>\n </div>\n </section>\n )\n }\n)\n\nFaqExpandable.displayName = 'FaqExpandable'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { FeatureCardProps } from './FeatureCard.types'\n\nexport const FeatureCard = forwardRef<HTMLElement, FeatureCardProps>(\n ({ heading: h, description: d, imageUrl, className, style, ...rest }, ref) => (\n <article\n ref={ref}\n className={cn(\n 'relative flex flex-col w-full aspect-[268/355] rounded-lg overflow-hidden shadow-card border border-border bg-surface',\n className\n )}\n style={style}\n {...rest}\n >\n <div className=\"relative z-10 flex flex-col gap-sm px-lg pt-lg\">\n <h3 className=\"m-0 text-lg font-semibold leading-card text-primary\">{h}</h3>\n {d ? <p className=\"m-0 text-sm font-normal leading-body text-text\">{d}</p> : null}\n </div>\n {imageUrl ? (\n <img\n src={imageUrl}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"absolute bottom-0 left-0 w-full pointer-events-none\"\n />\n ) : null}\n </article>\n )\n)\n\nFeatureCard.displayName = 'FeatureCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { GalleryPhotoProps } from './GalleryPhoto.types'\n\nconst PinSvg = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n 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\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n)\n\nexport const GalleryPhoto = forwardRef<HTMLDivElement, GalleryPhotoProps>(\n ({ image, alt, destination, className, ...rest }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'relative shrink-0 w-[270px] h-[400px] max-md:w-[calc(100vw-2rem)] max-md:h-auto max-md:aspect-[270/400] snap-start overflow-hidden bg-border',\n className\n )}\n {...rest}\n >\n <img\n src={image}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"block w-full h-full object-cover\"\n />\n <div className=\"absolute bottom-12 left-sm inline-flex items-center gap-xs py-[2px] px-[6px] bg-black/40 border-[0.5px] border-secondary rounded-full text-on-dark text-xs font-normal leading-4 max-md:bottom-8\">\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-4 h-4 text-on-dark\"\n >\n <PinSvg />\n </span>\n {destination}\n </div>\n </div>\n )\n)\n\nGalleryPhoto.displayName = 'GalleryPhoto'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { LocationCardProps } from './LocationCard.types'\n\nexport const LocationCard = forwardRef<HTMLElement, LocationCardProps>(\n ({ location, address, logo, className, ...rest }, ref) => (\n <article\n ref={ref}\n className={cn(\n 'flex flex-col items-start gap-sm p-lg bg-surface border border-border rounded-lg',\n className\n )}\n {...rest}\n >\n {logo !== undefined ? (\n <div\n aria-hidden=\"true\"\n className=\"flex items-center h-[50px] [&>img]:h-full [&>img]:w-auto [&>img]:max-w-full [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:max-w-full [&>svg]:object-contain\"\n >\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\n </div>\n ) : null}\n <h3 className=\"m-0 text-card-title\">{location}</h3>\n <span aria-hidden=\"true\" className=\"block w-[56px] h-[2px] bg-accent rounded-sm\" />\n <p className=\"m-0 whitespace-pre-line text-card-body\">{address}</p>\n </article>\n )\n)\n\nLocationCard.displayName = 'LocationCard'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { MonthTabsProps } from './MonthTabs.types'\n\nconst tabBase =\n 'shrink-0 inline-flex items-center h-[34px] py-[5px] px-[17px] rounded-full font-[inherit] text-xs font-normal leading-4 whitespace-nowrap cursor-pointer transition-colors duration-150 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nconst tabActive = 'bg-tab-active-bg border border-text-emphasis text-text-emphasis'\nconst tabInactive = 'bg-transparent border border-tab-inactive-border text-text-faded'\n\nexport const MonthTabs = forwardRef<HTMLDivElement, MonthTabsProps>(\n ({ months, activeMonthId, onMonthChange, className, ...rest }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-md w-full', className)} {...rest}>\n <div\n role=\"tablist\"\n className=\"flex items-center gap-[12px] overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {months.map((month) => {\n const isActive = month.id === activeMonthId\n return (\n <button\n key={month.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n onClick={() => onMonthChange(month.id)}\n className={cn(tabBase, isActive ? tabActive : tabInactive)}\n >\n {month.label}\n </button>\n )\n })}\n </div>\n <span aria-hidden=\"true\" className=\"block w-full h-px bg-divider-strong\" />\n </div>\n )\n)\n\nMonthTabs.displayName = 'MonthTabs'\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { PackageCardProps } from './PackageCard.types'\n\nconst ClockSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path\n d=\"M9 5.5V9l2.5 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst LocationSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <path\n 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\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n)\n\nconst CalendarSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2.5\" y=\"3.5\" width=\"13\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" />\n <path\n d=\"M2.5 7h13M6 1.5v3M12 1.5v3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\nconst cardClass =\n 'relative flex flex-col justify-between shrink-0 w-[264px] h-[392px] py-[12px] px-md rounded-md overflow-hidden no-underline text-inherit snap-start focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:w-[320px]'\n\nconst infoItemClass =\n 'flex items-center gap-xs min-w-0 text-xs font-medium leading-5 text-info-on-dark'\n\nconst infoIconClass = 'inline-flex items-center justify-center w-[18px] h-[18px] shrink-0'\n\nexport const PackageCard = forwardRef<HTMLElement, PackageCardProps>(\n (\n {\n image,\n alt,\n title,\n currentPrice,\n originalPrice,\n priceSuffix = 'Onwards',\n duration,\n location,\n date,\n href,\n className,\n ...rest\n },\n ref\n ) => {\n const content = (\n <>\n <span\n role=\"img\"\n aria-label={alt}\n className=\"absolute inset-0 bg-cover bg-center pointer-events-none\"\n style={{ backgroundImage: `url(${image})` }}\n />\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 pointer-events-none bg-[linear-gradient(180deg,rgba(0,0,0,0)_21.67%,rgba(0,0,0,1)_86.21%)]\"\n />\n <div className=\"relative inline-flex items-center self-start gap-xs py-[4px] px-md bg-accent border border-surface rounded-full\">\n {originalPrice ? (\n <span className=\"relative text-2xs font-normal leading-18 text-strike after:content-[''] after:absolute after:left-[-2px] after:right-[-2px] after:top-1/2 after:h-px after:bg-strike after:rotate-[-8deg]\">\n {originalPrice}\n </span>\n ) : null}\n <span className=\"text-sm font-semibold leading-4 text-text-deep\">{currentPrice}</span>\n <span className=\"text-xs font-normal leading-4 text-text-deep\">{priceSuffix}</span>\n </div>\n <div className=\"relative flex flex-col gap-md text-on-image\">\n <p className=\"m-0 text-xs font-medium leading-5\">{title}</p>\n <div className=\"flex flex-col gap-xs min-w-0\">\n <div className=\"flex items-center gap-xl min-w-0\">\n <span className={cn(infoItemClass, 'shrink-0')}>\n <span className={infoIconClass}>\n <ClockSvg />\n </span>\n <span className=\"truncate\">{duration}</span>\n </span>\n <span className={cn(infoItemClass, 'flex-1')}>\n <span className={infoIconClass}>\n <LocationSvg />\n </span>\n <span className=\"truncate\">{location}</span>\n </span>\n </div>\n <span className={infoItemClass}>\n <span className={infoIconClass}>\n <CalendarSvg />\n </span>\n <span className=\"truncate\">{date}</span>\n </span>\n </div>\n </div>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nPackageCard.displayName = 'PackageCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { SectionHeaderProps } from './SectionHeader.types'\n\nexport const SectionHeader = forwardRef<HTMLElement, SectionHeaderProps>(\n ({ heading, subheading, align = 'center', className, ...rest }, ref) => {\n const alignClass = align === 'center' ? 'items-center text-center' : 'items-start text-left'\n return (\n <header ref={ref} className={cn('flex flex-col mb-xl', alignClass, className)} {...rest}>\n <h2 className=\"m-0 text-section-heading\">{heading}</h2>\n <span aria-hidden=\"true\" className=\"block w-[96px] h-1 mt-sm mb-md bg-accent rounded-sm\" />\n {subheading ? (\n <p className=\"m-0 max-w-[720px] text-section-subheading\">{subheading}</p>\n ) : null}\n </header>\n )\n }\n)\n\nSectionHeader.displayName = 'SectionHeader'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { TeamInfoCardProps } from './TeamInfoCard.types'\n\nexport const TeamInfoCard = forwardRef<HTMLElement, TeamInfoCardProps>(\n ({ image, name, designation, bio, socialLinks, className, ...rest }, ref) => {\n const hasSocials = socialLinks !== undefined && socialLinks.length > 0\n\n return (\n <article\n ref={ref}\n className={cn(\n 'flex flex-col items-center text-center p-lg bg-surface rounded-lg',\n className\n )}\n {...rest}\n >\n <img\n src={image}\n alt={name}\n className=\"w-[140px] h-[140px] rounded-full object-cover shadow-card-lg\"\n />\n <h3 className=\"mt-md mb-xs text-card-title\">{name}</h3>\n <p className=\"m-0 text-card-label\">{designation}</p>\n {bio ? <p className=\"mt-md mb-0 text-card-body\">{bio}</p> : null}\n {hasSocials ? (\n <>\n <span\n aria-hidden=\"true\"\n className=\"block w-[64px] h-[2px] my-md bg-accent rounded-sm\"\n />\n <ul className=\"flex gap-md m-0 p-0 list-none\">\n {socialLinks.map((link) => (\n <li key={link.href}>\n <a\n href={link.href}\n aria-label={link.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center justify-center w-8 h-8 text-primary no-underline text-sm transition-opacity duration-150 ease-in [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain hover:opacity-70 focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 focus-visible:rounded-sm\"\n >\n {typeof link.icon === 'string' ? (\n <img src={link.icon} alt=\"\" />\n ) : (\n (link.icon ?? link.label)\n )}\n </a>\n </li>\n ))}\n </ul>\n </>\n ) : null}\n </article>\n )\n }\n)\n\nTeamInfoCard.displayName = 'TeamInfoCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { TestimonialCardProps } from './TestimonialCard.types'\n\nconst PlaySvg = () => (\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"28\" cy=\"28\" r=\"26\" fill=\"#FF0000\" />\n <path d=\"M22 18l16 10-16 10V18Z\" fill=\"#ffffff\" />\n </svg>\n)\n\nconst thumbnailClass =\n \"relative block w-full aspect-[836/470] rounded-sm overflow-hidden after:content-[''] after:absolute after:inset-0 after:bg-black/40 after:pointer-events-none [&>img]:w-full [&>img]:h-full [&>img]:object-cover [&>img]:block focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n\nexport const TestimonialCard = forwardRef<HTMLDivElement, TestimonialCardProps>(\n (\n { thumbnail, thumbnailAlt, logo, logoAlt, caption, videoHref, onPlayClick, className, ...rest },\n ref\n ) => {\n const playLabel = `Play testimonial: ${caption}`\n const inner = (\n <>\n <img src={thumbnail} alt={thumbnailAlt} loading=\"lazy\" decoding=\"async\" />\n <span className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 inline-flex items-center justify-center w-[56px] h-[56px] pointer-events-none z-[1] text-white\">\n <PlaySvg />\n </span>\n </>\n )\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col items-center gap-xs w-[868px] max-w-full pt-md px-md bg-border border border-primary rounded-lg shadow-[0_6px_20px_4px_rgba(0,0,0,0.16)] overflow-hidden',\n className\n )}\n {...rest}\n >\n {videoHref ? (\n <a\n href={videoHref}\n aria-label={playLabel}\n className={cn(thumbnailClass, 'no-underline text-inherit after:rounded-sm')}\n >\n {inner}\n </a>\n ) : (\n <button\n type=\"button\"\n aria-label={playLabel}\n onClick={onPlayClick}\n className={cn(\n thumbnailClass,\n 'p-0 bg-transparent border-none cursor-pointer font-[inherit] after:rounded-sm'\n )}\n >\n {inner}\n </button>\n )}\n <div className=\"flex items-center gap-sm w-full py-md\">\n <img\n src={logo}\n alt={logoAlt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"w-[60px] h-[60px] object-contain shrink-0\"\n />\n <p className=\"m-0 text-md font-medium leading-8 text-secondary\">{caption}</p>\n </div>\n </div>\n )\n }\n)\n\nTestimonialCard.displayName = 'TestimonialCard'\n","import { forwardRef, type Ref } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { TripCategoryCardProps } from './TripCategoryCard.types'\n\nconst cardClass =\n 'relative flex flex-col justify-end shrink-0 w-[200px] h-[316px] p-[20px] border-2 border-surface rounded-lg overflow-hidden no-underline text-inherit snap-start focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const TripCategoryCard = forwardRef<HTMLElement, TripCategoryCardProps>(\n ({ image, mobileImage, alt, destination, startingPrice, href, className, ...rest }, ref) => {\n const content = (\n <>\n {/*\n <picture> + <img loading=\"lazy\"> replaces the previous CSS\n background-image. CSS backgrounds can't be lazy-loaded, so every\n card in the scroll carousel was fetched immediately. With this\n change, off-screen cards defer until they're near the viewport.\n */}\n <picture className=\"absolute inset-0 pointer-events-none\">\n {mobileImage ? <source media=\"(max-width: 767px)\" srcSet={mobileImage} /> : null}\n <img\n src={image}\n alt={alt}\n loading=\"lazy\"\n decoding=\"async\"\n className=\"absolute inset-0 w-full h-full object-cover\"\n />\n </picture>\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 pointer-events-none bg-[linear-gradient(to_bottom,rgba(0,0,0,0)_58%,rgba(0,0,0,0.8)_100%)]\"\n />\n <div className=\"relative flex flex-col items-center text-center text-on-image [text-shadow:1px_1px_25px_rgba(0,0,0,0.5)]\">\n <span className=\"text-md font-semibold leading-7\">{destination}</span>\n <span className=\"text-xs font-medium leading-4\">{startingPrice}</span>\n </div>\n </>\n )\n\n if (href) {\n return (\n <a\n ref={ref as Ref<HTMLAnchorElement>}\n href={href}\n className={cn(cardClass, className)}\n {...rest}\n >\n {content}\n </a>\n )\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cn(cardClass, className)} {...rest}>\n {content}\n </div>\n )\n }\n)\n\nTripCategoryCard.displayName = 'TripCategoryCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { WarriorCardProps } from './WarriorCard.types'\n\nexport const WarriorCard = forwardRef<HTMLElement, WarriorCardProps>(\n ({ icon, name, description, className, ...rest }, ref) => (\n <article\n ref={ref}\n className={cn(\n 'flex flex-col items-center text-center p-lg bg-surface rounded-lg shadow-card',\n className\n )}\n {...rest}\n >\n <div\n aria-hidden=\"true\"\n className=\"flex items-center justify-center w-16 h-16 mb-md [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\"\n >\n {typeof icon === 'string' ? <img src={icon} alt=\"\" /> : icon}\n </div>\n <h3 className=\"m-0 text-card-title\">{name}</h3>\n <span\n aria-hidden=\"true\"\n className=\"block w-[56px] h-[2px] mt-sm mb-md bg-accent rounded-sm\"\n />\n <p className=\"m-0 text-card-body\">{description}</p>\n </article>\n )\n)\n\nWarriorCard.displayName = 'WarriorCard'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { BottomNavProps } from './BottomNav.types'\n\nexport const BottomNav = forwardRef<HTMLElement, BottomNavProps>(\n ({ items, className, ...rest }, ref) => (\n <nav\n ref={ref}\n className={cn(\n 'fixed bottom-0 left-0 right-0 flex justify-around items-stretch py-[12px] bg-surface-dark text-white rounded-t-[20px] overflow-hidden z-[100]',\n className\n )}\n {...rest}\n >\n {items.map((item) => (\n <a\n key={item.label}\n href={item.href}\n aria-current={item.active ? 'page' : undefined}\n className={cn(\n 'flex flex-col items-center justify-center gap-xs flex-1 py-sm px-xs text-inherit no-underline transition-opacity duration-150 ease-in hover:opacity-100 focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2',\n item.active ? 'opacity-100' : 'opacity-85'\n )}\n >\n <span aria-hidden=\"true\" className=\"inline-flex items-center justify-center w-6 h-6\">\n {item.icon}\n </span>\n <span className=\"text-xs font-normal leading-4\">{item.label}</span>\n </a>\n ))}\n </nav>\n )\n)\n\nBottomNav.displayName = 'BottomNav'\n","import { forwardRef } from 'react'\nimport { BrandLogo } from '../../components/BrandLogo'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { BrandsSectionProps } from './BrandsSection.types'\n\nexport const BrandsSection = forwardRef<HTMLElement, BrandsSectionProps>(\n ({ heading, subheading, brands, className, ...rest }, ref) => {\n return (\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\n <SectionHeader heading={heading} subheading={subheading} />\n <div className=\"flex flex-wrap gap-lg justify-center w-full\">\n {brands.map((brand) => (\n <BrandLogo key={brand.name} {...brand} />\n ))}\n </div>\n </section>\n )\n }\n)\n\nBrandsSection.displayName = 'BrandsSection'\n","import type { ElementType } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { NavCategoryItem } from './CategoryNavbar.types'\n\nexport interface CategoryDropdownProps {\n items: NavCategoryItem[]\n open: boolean\n panelId: string\n LinkComponent?: ElementType | undefined\n onItemClick?: () => void\n onMouseEnter?: () => void\n onMouseLeave?: () => void\n}\n\nexport const CategoryDropdown = ({\n items,\n open,\n panelId,\n LinkComponent,\n onItemClick,\n onMouseEnter,\n onMouseLeave\n}: CategoryDropdownProps) => {\n const Link = LinkComponent ?? 'a'\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: hover handlers keep the menu open while the cursor transits the gap between the category trigger and this absolutely-positioned dropdown.\n <div\n id={panelId}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={cn(\n 'absolute top-full left-0 grid-cols-3 [grid-template-columns:repeat(3,minmax(160px,1fr))] gap-x-xl gap-y-xs min-w-[720px] mt-3 p-xl bg-surface text-text rounded-lg shadow-card',\n open ? 'grid' : 'hidden'\n )}\n >\n {items.map((item) => (\n <Link\n key={item.href}\n href={item.href}\n onClick={onItemClick}\n className=\"inline-flex items-center gap-sm px-3 py-1 border border-transparent rounded-md text-text no-underline text-md font-normal leading-button transition-colors duration-150 ease-in hover:border-primary hover:text-primary focus-visible:border-primary focus-visible:text-primary focus-visible:outline-none\"\n >\n {item.icon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-[18px] h-[18px] [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\"\n >\n {typeof item.icon === 'string' ? <img src={item.icon} alt=\"\" /> : item.icon}\n </span>\n ) : null}\n <span>{item.label}</span>\n </Link>\n ))}\n </div>\n )\n}\n","import { cn } from '../../lib/cn'\n\nexport interface HamburgerProps {\n open: boolean\n onClick: () => void\n controls?: string\n}\n\nconst lineClass =\n 'block w-[22px] h-[2px] bg-current rounded-[2px] transition-[transform,opacity] duration-200 ease-in'\n\nexport const Hamburger = ({ open, onClick, controls }: HamburgerProps) => (\n <button\n type=\"button\"\n onClick={onClick}\n aria-label=\"Toggle menu\"\n aria-expanded={open}\n aria-controls={controls}\n className=\"inline-flex flex-col items-center justify-center gap-[5px] w-9 h-9 p-0 bg-transparent border-none rounded-sm text-inherit cursor-pointer hover:bg-white/[0.12] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n <span aria-hidden=\"true\" className={cn(lineClass, open ? 'translate-y-[7px] rotate-45' : '')} />\n <span aria-hidden=\"true\" className={cn(lineClass, open ? 'opacity-0' : '')} />\n <span\n aria-hidden=\"true\"\n className={cn(lineClass, open ? '-translate-y-[7px] -rotate-45' : '')}\n />\n </button>\n)\n","'use client'\n\nimport { type ElementType, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { MobileCta, MobileFooterLink, NavCategory } from './CategoryNavbar.types'\n\nconst TOP_BAR_HEIGHT = '70px'\n\nconst rowClass =\n 'flex items-center w-full py-[14px] px-5 border-0 border-b border-solid border-b-divider bg-transparent text-inherit no-underline font-[inherit] text-md font-medium leading-6 text-left cursor-pointer outline-none'\n\nconst ChevronSvg = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nexport interface MobileDrawerProps {\n open: boolean\n onClose: () => void\n categories: NavCategory[]\n LinkComponent?: ElementType | undefined\n drawerId: string\n footerLinks?: MobileFooterLink[] | undefined\n cta?: MobileCta | undefined\n}\n\nexport const MobileDrawer = ({\n open,\n onClose,\n categories,\n LinkComponent,\n drawerId,\n footerLinks,\n cta\n}: MobileDrawerProps) => {\n const Link = LinkComponent ?? 'a'\n const [expanded, setExpanded] = useState<Record<number, boolean>>({})\n\n const toggleRow = (index: number) => {\n setExpanded((prev) => ({ ...prev, [index]: !prev[index] }))\n }\n\n const handleCtaClick = () => {\n if (!cta) return\n if (cta.href) {\n window.location.assign(cta.href)\n onClose()\n return\n }\n cta.onClick?.()\n onClose()\n }\n\n return (\n <>\n <div\n onClick={onClose}\n aria-hidden=\"true\"\n className={cn(\n 'fixed left-0 right-0 bottom-0 z-[300] bg-black/40 transition-[opacity,visibility] duration-200 ease-in',\n open ? 'opacity-100 visible' : 'opacity-0 invisible'\n )}\n style={{ top: TOP_BAR_HEIGHT }}\n />\n <aside\n id={drawerId}\n aria-hidden={!open}\n aria-label=\"Mobile navigation\"\n className={cn(\n 'fixed right-0 z-[310] flex flex-col gap-lg w-[78vw] max-w-[360px] pb-lg bg-surface text-secondary transition-transform duration-[250ms] ease-in overflow-y-auto',\n open ? 'translate-x-0' : 'translate-x-full'\n )}\n style={{ top: TOP_BAR_HEIGHT, height: `calc(100vh - ${TOP_BAR_HEIGHT})` }}\n >\n <nav aria-label=\"Mobile primary\" className=\"flex flex-col\">\n {categories.map((category, index) => {\n const hasItems = (category.items?.length ?? 0) > 0\n if (!hasItems) {\n return (\n <Link\n key={category.label}\n href={category.href ?? '#'}\n onClick={onClose}\n className={rowClass}\n >\n <span className=\"flex-[0_1_auto]\">{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-sm text-xs font-semibold text-primary\">\n {category.badge}\n </span>\n ) : null}\n {category.trailingIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center ml-auto\"\n >\n {category.trailingIcon}\n </span>\n ) : null}\n </Link>\n )\n }\n const isOpen = !!expanded[index]\n return (\n <div key={category.label}>\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => toggleRow(index)}\n className={cn(\n rowClass,\n 'justify-between focus-visible:outline-2 focus-visible:outline-accent focus-visible:-outline-offset-2'\n )}\n >\n <span className=\"flex-[0_1_auto]\">{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-sm text-xs font-semibold text-primary\">\n {category.badge}\n </span>\n ) : null}\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex items-center justify-center w-5 h-5 ml-auto transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronSvg />\n </span>\n </button>\n <ul\n className={cn(\n 'flex-col m-0 pb-sm list-none bg-black/[0.02] border-b border-b-divider',\n isOpen ? 'flex' : 'hidden'\n )}\n >\n {category.items?.map((item) => (\n <li key={item.href}>\n <Link\n href={item.href}\n onClick={onClose}\n className=\"flex items-center py-[10px] px-5 text-text no-underline text-sm font-normal outline-none\"\n >\n {item.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n )\n })}\n </nav>\n\n {footerLinks && footerLinks.length > 0 ? (\n <div className=\"flex flex-col\">\n {footerLinks.map((link) => (\n <Link\n key={link.href}\n href={link.href}\n onClick={onClose}\n className=\"flex items-center py-[10px] px-5 text-secondary no-underline text-md font-semibold leading-6 outline-none\"\n >\n {link.label}\n </Link>\n ))}\n </div>\n ) : null}\n\n {cta ? (\n <div className=\"px-5\">\n <button\n type=\"button\"\n onClick={handleCtaClick}\n className=\"inline-flex items-center justify-center w-full h-12 px-xl bg-accent text-secondary border-none rounded-full font-[inherit] text-md font-semibold leading-none cursor-pointer transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2\"\n >\n {cta.label}\n </button>\n </div>\n ) : null}\n </aside>\n </>\n )\n}\n","'use client'\n\nimport { forwardRef, useEffect, useId, useRef, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport { CategoryDropdown } from './CategoryDropdown'\nimport type { CategoryNavbarProps } from './CategoryNavbar.types'\nimport { Hamburger } from './Hamburger'\nimport { MobileDrawer } from './MobileDrawer'\n\nconst HOVER_CLOSE_DELAY_MS = 150\n\nconst ChevronSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst SearchSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <line\n x1=\"13.5\"\n y1=\"13.5\"\n x2=\"17.5\"\n y2=\"17.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\nconst categoryTriggerClass =\n 'inline-flex items-center gap-xs p-0 bg-transparent border-none text-inherit cursor-pointer font-[inherit] text-md font-normal leading-6 whitespace-nowrap no-underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-4 focus-visible:rounded-sm'\n\nconst searchIconClass =\n 'inline-flex items-center justify-center w-9 h-9 bg-transparent border-none rounded-full text-inherit cursor-pointer no-underline hover:bg-white/[0.12] focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const CategoryNavbar = forwardRef<HTMLElement, CategoryNavbarProps>(\n (\n {\n logo,\n logoHref = '/',\n desktopCategories,\n mobileCategories,\n searchHref,\n phoneNumber,\n LinkComponent,\n defaultMobileOpen = false,\n mobileOpen,\n onMobileOpenChange,\n mobileFooterLinks,\n mobileCta,\n sticky = true,\n className,\n ...rest\n },\n ref\n ) => {\n const Link = LinkComponent ?? 'a'\n const drawerId = useId()\n const [internalMobileOpen, setInternalMobileOpen] = useState(defaultMobileOpen)\n const isControlled = mobileOpen !== undefined\n const drawerOpen = isControlled ? mobileOpen : internalMobileOpen\n const [openIndex, setOpenIndex] = useState<number | null>(null)\n const navRef = useRef<HTMLElement | null>(null)\n const closeTimerRef = useRef<number | null>(null)\n\n const setDrawerOpen = (next: boolean) => {\n if (!isControlled) setInternalMobileOpen(next)\n onMobileOpenChange?.(next)\n }\n\n const clearCloseTimerNow = () => {\n const ref = closeTimerRef\n if (ref.current !== null) {\n window.clearTimeout(ref.current)\n ref.current = null\n }\n }\n\n const openCategory = (index: number) => {\n clearCloseTimerNow()\n setOpenIndex(index)\n }\n\n const scheduleCloseCategory = () => {\n clearCloseTimerNow()\n closeTimerRef.current = window.setTimeout(() => {\n setOpenIndex(null)\n closeTimerRef.current = null\n }, HOVER_CLOSE_DELAY_MS)\n }\n\n useEffect(\n () => () => {\n const ref = closeTimerRef\n if (ref.current !== null) {\n window.clearTimeout(ref.current)\n ref.current = null\n }\n },\n []\n )\n\n useEffect(() => {\n if (!drawerOpen && openIndex === null) return\n const handleKey = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n if (drawerOpen) {\n if (!isControlled) setInternalMobileOpen(false)\n onMobileOpenChange?.(false)\n }\n if (openIndex !== null) {\n if (closeTimerRef.current !== null) {\n window.clearTimeout(closeTimerRef.current)\n closeTimerRef.current = null\n }\n setOpenIndex(null)\n }\n }\n document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [drawerOpen, openIndex, isControlled, onMobileOpenChange])\n\n useEffect(() => {\n if (openIndex === null) return\n const handleClick = (event: MouseEvent) => {\n if (navRef.current && !navRef.current.contains(event.target as Node)) {\n if (closeTimerRef.current !== null) {\n window.clearTimeout(closeTimerRef.current)\n closeTimerRef.current = null\n }\n setOpenIndex(null)\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [openIndex])\n\n const setNavRef = (element: HTMLElement | null) => {\n navRef.current = element\n if (typeof ref === 'function') ref(element)\n else if (ref) ref.current = element\n }\n\n return (\n <>\n <header\n ref={setNavRef}\n className={cn(\n 'flex items-center justify-center w-full py-2 px-12 bg-primary text-on-dark max-md:h-[70px] max-md:py-0 max-md:px-md max-md:justify-between max-md:gap-sm',\n sticky && 'sticky top-0 z-[200]',\n className\n )}\n {...rest}\n >\n <div className=\"hidden max-md:flex max-md:items-center max-md:shrink-0 max-md:min-w-0\">\n <Link\n href={logoHref}\n aria-label=\"Home\"\n className=\"inline-flex items-center no-underline text-inherit h-[50px] shrink-0 [&>img]:h-full [&>img]:w-auto [&>img]:object-contain [&>svg]:h-full [&>svg]:w-auto [&>svg]:object-contain\"\n >\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\n </Link>\n </div>\n\n <nav aria-label=\"Categories\" className=\"flex items-center max-md:hidden\">\n <ul className=\"flex items-center gap-8 m-0 p-sm list-none\">\n {desktopCategories.map((category, index) => {\n const hasItems = (category.items?.length ?? 0) > 0\n const itemPanelId = `${drawerId}-cat-${index}`\n if (!hasItems) {\n return (\n <li key={category.label} className=\"relative inline-flex items-center\">\n <Link href={category.href ?? '#'} className={categoryTriggerClass}>\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n </Link>\n </li>\n )\n }\n const isOpen = openIndex === index\n return (\n <li\n key={category.label}\n className=\"relative inline-flex items-center\"\n onMouseEnter={() => openCategory(index)}\n onMouseLeave={scheduleCloseCategory}\n >\n {category.href ? (\n <>\n <Link href={category.href} className={categoryTriggerClass}>\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n </Link>\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={itemPanelId}\n aria-label={`Open ${category.label} menu`}\n onClick={() => openCategory(index)}\n onFocus={() => openCategory(index)}\n className=\"inline-flex items-center justify-center p-0 bg-transparent border-none text-inherit cursor-pointer focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 focus-visible:rounded-sm\"\n >\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronSvg />\n </span>\n </button>\n </>\n ) : (\n <button\n type=\"button\"\n aria-expanded={isOpen}\n aria-controls={itemPanelId}\n onClick={() => openCategory(index)}\n onFocus={() => openCategory(index)}\n className={categoryTriggerClass}\n >\n <span>{category.label}</span>\n {category.badge ? (\n <span className=\"inline-flex items-center ml-xs\">{category.badge}</span>\n ) : null}\n <span\n aria-hidden=\"true\"\n className={cn(\n 'inline-flex items-center justify-center w-4 h-4 transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronSvg />\n </span>\n </button>\n )}\n {isOpen ? (\n <span\n aria-hidden=\"true\"\n className=\"absolute top-full left-1/2 -translate-x-1/2 mt-1 w-4 h-2 bg-surface z-[201] pointer-events-none [clip-path:polygon(50%_0,0_100%,100%_100%)] max-md:hidden\"\n />\n ) : null}\n <CategoryDropdown\n items={category.items ?? []}\n open={isOpen}\n panelId={itemPanelId}\n LinkComponent={LinkComponent}\n onItemClick={() => {\n clearCloseTimerNow()\n setOpenIndex(null)\n }}\n onMouseEnter={() => openCategory(index)}\n onMouseLeave={scheduleCloseCategory}\n />\n </li>\n )\n })}\n </ul>\n </nav>\n\n {phoneNumber ? (\n <a\n href={`tel:${phoneNumber.replace(/\\s+/g, '')}`}\n aria-label={`Call ${phoneNumber}`}\n className=\"hidden max-md:flex max-md:flex-auto max-md:items-center max-md:justify-center max-md:text-inherit max-md:no-underline max-md:text-md max-md:font-normal max-md:whitespace-nowrap max-md:min-w-0\"\n >\n {phoneNumber}\n </a>\n ) : null}\n\n <div className=\"hidden max-md:flex max-md:items-center max-md:gap-xs\">\n {searchHref ? (\n <Link href={searchHref} aria-label=\"Search\" className={searchIconClass}>\n <SearchSvg />\n </Link>\n ) : (\n <button type=\"button\" aria-label=\"Search\" className={searchIconClass}>\n <SearchSvg />\n </button>\n )}\n <Hamburger\n open={drawerOpen}\n onClick={() => setDrawerOpen(!drawerOpen)}\n controls={drawerId}\n />\n </div>\n </header>\n\n <MobileDrawer\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n categories={mobileCategories}\n LinkComponent={LinkComponent}\n drawerId={drawerId}\n footerLinks={mobileFooterLinks}\n cta={mobileCta}\n />\n </>\n )\n }\n)\n\nCategoryNavbar.displayName = 'CategoryNavbar'\n","import { forwardRef } from 'react'\nimport { ContactForm } from '../../components/ContactForm'\nimport { cn } from '../../lib/cn'\nimport type { ContactSectionProps } from './ContactSection.types'\n\nexport const ContactSection = forwardRef<HTMLElement, ContactSectionProps>(\n (\n {\n illustration,\n eyebrow,\n heading,\n submitLabel,\n headerIllustration,\n countryCodes,\n destinations,\n onSubmit,\n className,\n ...rest\n },\n ref\n ) => (\n <section\n ref={ref}\n className={cn(\n 'flex w-full justify-center',\n 'lg:items-center lg:justify-evenly lg:py-xl lg:bg-primary lg:rounded-lg lg:shadow-card',\n className\n )}\n {...rest}\n >\n <div\n aria-hidden=\"true\"\n className=\"hidden shrink-0 items-center justify-center [&>svg]:w-[367px] [&>svg]:max-w-full [&>svg]:h-auto [&>img]:w-[367px] [&>img]:max-w-full [&>img]:h-auto lg:flex\"\n >\n {illustration}\n </div>\n <div className=\"shrink-0 flex justify-center\">\n <ContactForm\n eyebrow={eyebrow}\n heading={heading}\n submitLabel={submitLabel}\n headerIllustration={headerIllustration}\n countryCodes={countryCodes}\n destinations={destinations}\n onSubmit={onSubmit}\n />\n </div>\n </section>\n )\n)\n\nContactSection.displayName = 'ContactSection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { CtaBannerProps } from './CtaBanner.types'\n\nexport const CtaBanner = forwardRef<HTMLElement, CtaBannerProps>(\n ({ title, subtitle, backgroundImage, backgroundColor, cta, className, ...rest }, ref) => {\n const handleCtaClick = () => {\n if (cta.href) {\n window.location.assign(cta.href)\n return\n }\n cta.onClick?.()\n }\n\n return (\n <section ref={ref} className={cn('flex justify-center bg-surface', className)} {...rest}>\n <div\n className=\"relative flex items-center w-full min-h-[300px] pl-[50px] rounded-md bg-cover bg-center overflow-hidden max-md:px-lg\"\n style={{\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\n }}\n >\n <div className=\"flex flex-col gap-xl max-w-[550px]\">\n <div className=\"flex flex-col gap-xs text-white\">\n <h2 className=\"m-0 text-xl font-semibold leading-button\">{title}</h2>\n {subtitle ? <p className=\"m-0 text-sm font-medium leading-body\">{subtitle}</p> : null}\n </div>\n <button\n type=\"button\"\n onClick={handleCtaClick}\n className=\"inline-flex items-center justify-center self-start h-11 px-xl bg-accent text-secondary border-none rounded-md font-[inherit] text-button cursor-pointer shadow-[inset_0_0_6px_rgba(0,0,0,0.14)] transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2\"\n >\n {cta.label}\n </button>\n </div>\n </div>\n </section>\n )\n }\n)\n\nCtaBanner.displayName = 'CtaBanner'\n","import { forwardRef } from 'react'\nimport { DestinationCard } from '../../components/DestinationCard'\nimport { cn } from '../../lib/cn'\nimport type { DestinationsSectionProps } from './DestinationsSection.types'\n\nexport const DestinationsSection = forwardRef<HTMLElement, DestinationsSectionProps>(\n ({ heading, destinations, className, ...rest }, ref) => {\n const half = Math.ceil(destinations.length / 2)\n const firstRow = destinations.slice(0, half)\n const secondRow = destinations.slice(half)\n\n return (\n <section ref={ref} className={cn('flex flex-col gap-lg bg-surface', className)} {...rest}>\n <h2 className=\"m-0 text-xl font-semibold leading-heading text-secondary\">{heading}</h2>\n <div className=\"flex flex-col gap-md overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <div className=\"flex gap-md w-max\">\n {firstRow.map((destination) => (\n <DestinationCard\n key={`r1-${destination.label}`}\n image={destination.image}\n alt={destination.alt}\n label={destination.label}\n href={destination.href}\n />\n ))}\n </div>\n {secondRow.length > 0 ? (\n <div className=\"flex gap-md w-max\">\n {secondRow.map((destination) => (\n <DestinationCard\n key={`r2-${destination.label}`}\n image={destination.image}\n alt={destination.alt}\n label={destination.label}\n href={destination.href}\n />\n ))}\n </div>\n ) : null}\n </div>\n </section>\n )\n }\n)\n\nDestinationsSection.displayName = 'DestinationsSection'\n","'use client'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nexport interface UseScrollSnapResult {\n ref: (node: HTMLElement | null) => void\n scrollPrev: () => void\n scrollNext: () => void\n scrollToStart: () => void\n canPrev: boolean\n canNext: boolean\n activeIndex: number\n scrollProgress: number\n}\n\nexport const useScrollSnap = (itemCount: number): UseScrollSnapResult => {\n const elRef = useRef<HTMLElement | null>(null)\n const [canPrev, setCanPrev] = useState(false)\n const [canNext, setCanNext] = useState(itemCount > 1)\n const [activeIndex, setActiveIndex] = useState(0)\n const [scrollProgress, setScrollProgress] = useState(0)\n\n const recompute = useCallback(() => {\n const el = elRef.current\n if (!el) return\n setCanPrev(el.scrollLeft > 0)\n setCanNext(el.scrollLeft + el.clientWidth < el.scrollWidth - 1)\n const maxScroll = el.scrollWidth - el.clientWidth\n setScrollProgress(maxScroll > 0 ? el.scrollLeft / maxScroll : 0)\n if (itemCount > 0) {\n const itemWidth = el.scrollWidth / itemCount\n if (itemWidth > 0) {\n setActiveIndex(Math.round(el.scrollLeft / itemWidth))\n }\n }\n }, [itemCount])\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n const previous = elRef.current\n if (previous) {\n previous.removeEventListener('scroll', recompute)\n }\n elRef.current = node\n if (node) {\n node.addEventListener('scroll', recompute, { passive: true })\n recompute()\n }\n },\n [recompute]\n )\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n window.addEventListener('resize', recompute)\n return () => window.removeEventListener('resize', recompute)\n }, [recompute])\n\n const scrollPrev = useCallback(() => {\n elRef.current?.scrollBy({ left: -elRef.current.clientWidth, behavior: 'smooth' })\n }, [])\n\n const scrollNext = useCallback(() => {\n elRef.current?.scrollBy({ left: elRef.current.clientWidth, behavior: 'smooth' })\n }, [])\n\n const scrollToStart = useCallback(() => {\n elRef.current?.scrollTo({ left: 0, behavior: 'smooth' })\n }, [])\n\n return {\n ref: setRef,\n scrollPrev,\n scrollNext,\n scrollToStart,\n canPrev,\n canNext,\n activeIndex,\n scrollProgress\n }\n}\n","'use client'\n\nimport { forwardRef, useEffect, useRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { EventBanner } from '../../components/EventBanner'\nimport { EventVideoBanner } from '../../components/EventVideoBanner'\nimport { cn } from '../../lib/cn'\nimport type { EventCarouselProps } from './EventCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-[130px] inline-flex items-center justify-center w-8 h-8 bg-surface border border-border rounded-full text-primary cursor-pointer shadow-card transition-opacity duration-150 ease-in disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const EventCarousel = forwardRef<HTMLElement, EventCarouselProps>(\n ({ events, variant = 'image', className, ...rest }, ref) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n scrollToStart,\n canPrev,\n canNext,\n activeIndex\n } = useScrollSnap(events.length)\n\n const canNextRef = useRef(canNext)\n useEffect(() => {\n canNextRef.current = canNext\n }, [canNext])\n\n useEffect(() => {\n if (events.length <= 1) return\n const id = setInterval(() => {\n if (canNextRef.current) {\n scrollNext()\n } else {\n scrollToStart()\n }\n }, 5000)\n return () => clearInterval(id)\n }, [events.length, scrollNext, scrollToStart])\n\n return (\n <section\n ref={ref}\n className={cn('relative flex flex-col items-center gap-md bg-surface', className)}\n {...rest}\n >\n <div\n ref={trackRef}\n className=\"flex w-full gap-sm overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {events.map((event, index) =>\n 'videoUrl' in event ? (\n <EventVideoBanner\n key={`${event.videoUrl}|${event.alt}`}\n posterUrl={event.posterUrl}\n videoUrl={event.videoUrl}\n mobileVideoUrl={event.mobileVideoUrl}\n mobilePosterUrl={event.mobilePosterUrl}\n alt={event.alt}\n href={event.href}\n isActive={index === activeIndex}\n />\n ) : (\n <EventBanner\n key={`${event.imageUrl}|${event.alt}`}\n imageUrl={event.imageUrl}\n alt={event.alt}\n href={event.href}\n />\n )\n )}\n </div>\n\n {events.length > 1 ? (\n <div\n role=\"tablist\"\n aria-label=\"Event carousel position\"\n className=\"flex items-center justify-center gap-sm\"\n >\n {events.map((event, index) => (\n <span\n key={`${'videoUrl' in event ? event.videoUrl : event.imageUrl}|${event.alt}|dot`}\n aria-hidden=\"true\"\n className={cn(\n 'inline-block h-[6px] rounded-full transition-[width,background-color] duration-200 ease-in',\n index === activeIndex ? 'w-5 bg-primary' : 'w-[5px] bg-border'\n )}\n />\n ))}\n </div>\n ) : null}\n\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label={variant === 'video' ? 'Previous video' : 'Previous event'}\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label={variant === 'video' ? 'Next video' : 'Next event'}\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n </section>\n )\n }\n)\n\nEventCarousel.displayName = 'EventCarousel'\n","import { forwardRef } from 'react'\nimport { ExploreCard } from '../../components/ExploreCard'\nimport { cn } from '../../lib/cn'\nimport type { ExploreSectionProps } from './ExploreSection.types'\n\nexport const ExploreSection = forwardRef<HTMLElement, ExploreSectionProps>(\n ({ heading, items, className, ...rest }, ref) => (\n <section ref={ref} className={cn('flex flex-col gap-lg bg-surface', className)} {...rest}>\n <h2 className=\"m-0 text-xl font-semibold leading-heading text-secondary\">{heading}</h2>\n <div className=\"flex gap-md overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n {items.map((item) => (\n <ExploreCard\n key={item.label}\n image={item.image}\n alt={item.alt}\n label={item.label}\n href={item.href}\n />\n ))}\n </div>\n </section>\n )\n)\n\nExploreSection.displayName = 'ExploreSection'\n","'use client'\n\nimport { useState } from 'react'\nimport { FaqExpandable } from '../../components/FaqExpandable'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { FaqSectionProps } from './FaqSection.types'\n\nexport const FaqSection = ({\n heading,\n subheading,\n faqs,\n singleOpen = false,\n className,\n ...rest\n}: FaqSectionProps) => {\n const [openIndex, setOpenIndex] = useState<number | null>(null)\n\n return (\n <section className={cn('py-xl px-lg', className)} {...rest}>\n <SectionHeader heading={heading} subheading={subheading} />\n <div className=\"flex flex-col gap-md max-w-[760px] mx-auto\">\n {faqs.map((faq, index) => {\n if (!singleOpen) {\n return <FaqExpandable key={faq.question} {...faq} />\n }\n return (\n <FaqExpandable\n key={faq.question}\n {...faq}\n expanded={openIndex === index}\n onToggle={(next) => setOpenIndex(next ? index : null)}\n />\n )\n })}\n </div>\n </section>\n )\n}\n\nFaqSection.displayName = 'FaqSection'\n","'use client'\n\nimport { forwardRef, useState } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { FooterProps } from './Footer.types'\n\nconst GlobeSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path\n d=\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n />\n </svg>\n)\n\nconst MailSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.6\" />\n <path d=\"m3 7 9 6 9-6\" stroke=\"currentColor\" strokeWidth=\"1.6\" strokeLinejoin=\"round\" />\n </svg>\n)\n\nconst PhoneSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path\n 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\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronDown = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronUp = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M4 10l4-4 4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst scrollToTop = () => {\n if (typeof window === 'undefined') return\n window.scrollTo({ top: 0, behavior: 'smooth' })\n}\n\nconst contactItemClass =\n 'inline-flex items-center gap-sm text-inherit no-underline text-sm font-normal leading-6 hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nconst columnLinkClass =\n 'inline-block text-md font-normal leading-18 text-inherit no-underline whitespace-nowrap hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const Footer = forwardRef<HTMLElement, FooterProps>(\n (\n {\n columns,\n companyName,\n cin,\n address,\n contact,\n socials,\n footerImage,\n footerImageAlt = '',\n copyright,\n showScrollToTop = false,\n className,\n ...rest\n },\n ref\n ) => {\n const [openColumns, setOpenColumns] = useState<Record<string, boolean>>({})\n\n const toggleColumn = (heading: string) => {\n setOpenColumns((prev) => ({ ...prev, [heading]: !prev[heading] }))\n }\n\n return (\n <footer ref={ref} className={cn('flex flex-col items-center', className)} {...rest}>\n <div aria-hidden=\"true\" className=\"w-full h-2 bg-primary rounded-t-[200px]\" />\n <div className=\"w-full flex flex-col items-center gap-lg py-[40px] bg-surface-dark text-white max-md:px-md\">\n <div className=\"flex flex-wrap gap-[96px] w-full max-w-[1106px] px-lg items-start justify-center max-md:flex-col max-md:gap-0 max-md:p-0\">\n {columns.map((column) => {\n const isOpen = !!openColumns[column.heading]\n return (\n <div\n key={column.heading}\n className=\"flex flex-col gap-sm max-md:w-full max-md:gap-0 max-md:py-md max-md:border-t max-md:border-white/[0.18] max-md:last-of-type:border-b\"\n >\n <button\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => toggleColumn(column.heading)}\n className=\"inline-flex items-center w-full m-0 p-0 bg-transparent border-none text-inherit font-[inherit] text-sm font-semibold leading-6 text-left cursor-default pointer-events-none max-md:justify-between max-md:cursor-pointer max-md:pointer-events-auto focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n <span className=\"inline-block whitespace-nowrap\">{column.heading}</span>\n <span\n aria-hidden=\"true\"\n className={cn(\n 'hidden max-md:inline-flex transition-transform duration-200 ease-in',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n >\n <ChevronDown />\n </span>\n </button>\n <ul\n className={cn(\n 'flex flex-col gap-xs m-0 p-0 list-none',\n 'max-md:pt-md',\n isOpen ? 'max-md:flex' : 'max-md:hidden'\n )}\n >\n {column.links.map((link) => (\n <li key={`${column.heading}|${link.label}`}>\n <a href={link.href} className={columnLinkClass}>\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </div>\n )\n })}\n </div>\n\n <span\n aria-hidden=\"true\"\n className=\"block w-[1106px] max-w-[calc(100%-var(--spacing-lg))] h-px bg-white/40 max-md:max-w-full\"\n />\n\n <div className=\"flex flex-col items-center gap-sm text-center px-md max-md:p-0 max-md:w-full\">\n <p className=\"m-0 text-md font-medium leading-8\">{companyName}</p>\n {cin ? <p className=\"m-0 text-sm font-normal leading-6 tracking-wider\">{cin}</p> : null}\n <p className=\"m-0 text-sm font-normal leading-6\">{address}</p>\n </div>\n\n {contact ? (\n <div className=\"flex flex-wrap items-center justify-center gap-xl px-md max-md:gap-md max-md:p-0 max-md:w-full\">\n {contact.email ? (\n <a href={`mailto:${contact.email}`} className={contactItemClass}>\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\n <MailSvg />\n </span>\n {contact.email}\n </a>\n ) : null}\n {contact.phone ? (\n <a href={`tel:${contact.phone.replace(/\\s+/g, '')}`} className={contactItemClass}>\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\n <PhoneSvg />\n </span>\n {contact.phone}\n </a>\n ) : null}\n {contact.websiteUrl ? (\n <a\n href={contact.websiteUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={contactItemClass}\n >\n <span className=\"inline-flex items-center justify-center w-6 h-6 max-md:hidden\">\n <GlobeSvg />\n </span>\n {contact.websiteLabel ?? contact.websiteUrl}\n </a>\n ) : null}\n </div>\n ) : null}\n\n {socials && socials.length > 0 ? (\n <div className=\"inline-flex items-center gap-lg py-md px-xl bg-pill-dark rounded-full\">\n {socials.map((social) => (\n <a\n key={social.label}\n href={social.href}\n aria-label={social.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center justify-center w-[30px] h-[30px] rounded-full text-inherit no-underline [&>img]:w-[30px] [&>img]:h-[30px] [&>img]:object-contain [&>svg]:w-[30px] [&>svg]:h-[30px] [&>svg]:object-contain focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n {social.icon}\n </a>\n ))}\n </div>\n ) : null}\n\n {footerImage ? (\n <img\n src={footerImage}\n alt={footerImageAlt}\n className=\"block w-[1104px] max-w-full h-[70px] object-cover max-md:w-full max-md:h-auto max-md:object-contain\"\n />\n ) : null}\n\n <span\n aria-hidden=\"true\"\n className=\"block w-[1106px] max-w-[calc(100%-var(--spacing-lg))] h-px bg-white/40 max-md:max-w-full\"\n />\n\n <p className=\"m-0 text-sm font-normal leading-6 text-center\">{copyright}</p>\n </div>\n {showScrollToTop ? (\n <button\n type=\"button\"\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className=\"fixed right-md bottom-lg inline-flex items-center justify-center w-9 h-9 bg-white border border-border rounded-full text-secondary cursor-pointer shadow-[0_4px_10px_rgba(0,0,0,0.18)] z-50 transition-transform duration-150 ease-in hover:-translate-y-px focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n <ChevronUp />\n </button>\n ) : null}\n </footer>\n )\n }\n)\n\nFooter.displayName = 'Footer'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { GalleryPhoto } from '../../components/GalleryPhoto'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { GallerySectionProps } from './GallerySection.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-1/2 -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-primary border-none rounded-full text-on-dark cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[20] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nconst curveBase =\n 'pointer-events-none absolute z-10 left-0 right-0 h-[80px] bg-surface rounded-[50%] max-md:h-[40px]'\n\nexport const GallerySection = forwardRef<HTMLElement, GallerySectionProps>(\n ({ heading, subheading, photos, className, ...rest }, ref) => {\n const { ref: trackRef, scrollPrev, scrollNext, canPrev, canNext } = useScrollSnap(photos.length)\n\n return (\n <section\n ref={ref}\n className={cn('relative flex flex-col items-center gap-lg bg-surface', className)}\n {...rest}\n >\n <SectionHeader heading={heading} subheading={subheading} align=\"center\" />\n <div className=\"relative w-full\">\n <div aria-hidden=\"true\" className={cn(curveBase, '-top-[40px] max-md:-top-[20px]')} />\n\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous photos\"\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm px-[60px] overflow-x-auto snap-x snap-mandatory [scrollbar-width:none] [&::-webkit-scrollbar]:hidden max-md:px-0\"\n >\n {photos.map((photo) => (\n <GalleryPhoto\n key={`${photo.image}|${photo.alt}`}\n image={photo.image}\n alt={photo.alt}\n destination={photo.destination}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next photos\"\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n\n <div\n aria-hidden=\"true\"\n className={cn(curveBase, '-bottom-[40px] max-md:-bottom-[20px]')}\n />\n </div>\n </section>\n )\n }\n)\n\nGallerySection.displayName = 'GallerySection'\n","import type { HeroReview } from './Hero.types'\n\nexport const RatingBadge = ({ logo, alt, rating, reviewCount }: HeroReview) => (\n <div className=\"inline-flex items-center gap-sm text-inherit\">\n <img src={logo} alt={alt} className=\"w-8 h-8 object-contain\" />\n <div className=\"flex flex-col leading-heading\">\n <span className=\"inline-flex items-center gap-xs text-md font-semibold\">\n <span aria-hidden=\"true\" className=\"text-accent\">\n ★\n </span>\n {rating.toFixed(1)}\n </span>\n <span className=\"text-sm font-normal opacity-90\">\n ({reviewCount.toLocaleString('en-US')} reviews)\n </span>\n </div>\n </div>\n)\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { HeroProps } from './Hero.types'\nimport { RatingBadge } from './RatingBadge'\n\nconst sectionBase =\n \"relative flex flex-col justify-center gap-md min-h-[420px] py-xl px-xl text-white bg-cover bg-center before:content-[''] before:absolute before:inset-0 before:pointer-events-none [&>*]:relative max-md:items-center max-md:text-center max-md:min-h-[360px] max-md:pt-xl max-md:px-md max-md:pb-0 max-md:gap-lg\"\n\nexport const Hero = forwardRef<HTMLElement, HeroProps>((props, ref) => {\n const variant = props.variant ?? 'centered'\n\n if (variant === 'reviews') {\n const reviewProps = props as Extract<HeroProps, { variant: 'reviews' }>\n const {\n title,\n subtitle,\n backgroundImage,\n backgroundColor,\n reviews,\n variant: _variant,\n className,\n ...rest\n } = reviewProps\n\n return (\n <section\n ref={ref}\n className={cn(\n sectionBase,\n 'items-start text-left',\n backgroundImage ? 'before:bg-black/45' : 'before:bg-transparent',\n className\n )}\n style={{\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\n }}\n {...rest}\n >\n <span aria-hidden=\"true\" className=\"absolute top-0 left-0 right-0 h-[3px] bg-primary\" />\n <div className=\"flex items-stretch gap-md before:content-[''] before:w-1 before:bg-accent before:rounded-sm max-md:justify-center max-md:gap-0 max-md:before:hidden\">\n <h1 className=\"m-0 text-2xl font-bold leading-heading max-w-[760px] max-md:text-xl\">\n {title}\n </h1>\n </div>\n {subtitle ? (\n <p className=\"inline-block m-0 py-sm px-md bg-accent text-secondary text-md font-semibold leading-button max-md:bg-transparent max-md:text-accent max-md:p-0 max-md:self-center\">\n {subtitle}\n </p>\n ) : null}\n {reviews.length > 0 ? (\n <div className=\"flex flex-wrap items-center gap-xl mt-auto pt-xl max-md:w-[calc(100%+2*var(--spacing-md))] max-md:mx-[calc(-1*var(--spacing-md))] max-md:mt-lg max-md:p-md max-md:bg-brand-shade-1 max-md:text-secondary max-md:justify-around max-md:gap-sm\">\n {reviews.map((review) => (\n <RatingBadge key={`${review.alt}-${review.rating}`} {...review} />\n ))}\n </div>\n ) : null}\n </section>\n )\n }\n\n const centeredProps = props as Extract<HeroProps, { variant?: 'centered' }>\n const {\n title,\n subtitle,\n backgroundImage,\n backgroundColor,\n variant: _variant,\n className,\n ...rest\n } = centeredProps\n\n return (\n <section\n ref={ref}\n className={cn(\n sectionBase,\n 'items-center text-center',\n backgroundImage ? 'before:bg-black/45' : 'before:bg-transparent',\n className\n )}\n style={{\n backgroundColor: backgroundColor ?? 'var(--color-primary)',\n backgroundImage: backgroundImage ? `url(${backgroundImage})` : undefined\n }}\n {...rest}\n >\n <h1 className=\"m-0 text-2xl font-bold leading-heading max-w-[760px] max-md:text-xl\">\n {title}\n </h1>\n {subtitle ? (\n <p className=\"m-0 max-w-[640px] text-lg font-normal leading-body opacity-95\">{subtitle}</p>\n ) : null}\n </section>\n )\n})\n\nHero.displayName = 'Hero'\n","import type { HomeHeroReview } from './HomeHero.types'\n\n/**\n * Private to HomeHero. Renders a brand logo + star rating + reviews count row.\n * Typography is driven by the responsive `text-rating-value` / `text-rating-count`\n * composite utilities in `src/styles.css`, which switch between desktop and\n * mobile specs at the `md` breakpoint. Inherits its base text color from the\n * parent so it works on both dark hero overlays and light pill strips.\n */\nexport const RatingBadge = ({ logoUrl, alt, rating, reviewCount }: HomeHeroReview) => (\n <div className=\"inline-flex items-center gap-[6px] text-secondary max-md:text-text-strong\">\n <img\n src={logoUrl}\n alt={alt}\n className=\"w-10 h-10 object-contain shrink-0 max-md:w-7 max-md:h-7\"\n />\n <div className=\"flex flex-col h-[38px] justify-between max-md:h-auto max-md:gap-1\">\n <span className=\"inline-flex items-center gap-[3px] h-[19px] text-rating-value whitespace-nowrap max-md:h-auto\">\n <span\n aria-hidden=\"true\"\n className=\"text-accent text-[20px] leading-none max-md:text-[14px]\"\n >\n ★\n </span>\n {rating.toFixed(1)}\n </span>\n <span className=\"text-rating-count whitespace-nowrap\">\n ({reviewCount.toLocaleString('en-US')} reviews)\n </span>\n </div>\n </div>\n)\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport type { HomeHeroTypewriterOptions } from './HomeHero.types'\n\n/**\n * Cycles through a list of phrases with a typewriter effect — types each\n * phrase one character at a time, pauses, erases, then advances to the next.\n * Returns the current displayed text.\n */\nexport const useTypewriter = (phrases: string[], options?: HomeHeroTypewriterOptions): string => {\n const typeSpeedMs = options?.typeSpeedMs ?? 80\n const deleteSpeedMs = options?.deleteSpeedMs ?? 40\n const pauseFullMs = options?.pauseFullMs ?? 1500\n const pauseEmptyMs = options?.pauseEmptyMs ?? 300\n\n const [text, setText] = useState('')\n const [phraseIndex, setPhraseIndex] = useState(0)\n const [isDeleting, setIsDeleting] = useState(false)\n\n useEffect(() => {\n if (phrases.length === 0) return undefined\n\n const phrase = phrases[phraseIndex] ?? ''\n\n let timeout: number\n if (!isDeleting && text === phrase) {\n // Just finished typing — hold, then start deleting.\n // If there's only one phrase, don't cycle — keep it on screen.\n if (phrases.length === 1) return undefined\n timeout = window.setTimeout(() => setIsDeleting(true), pauseFullMs)\n } else if (isDeleting && text === '') {\n // Just finished deleting — hold briefly, then advance.\n timeout = window.setTimeout(() => {\n setIsDeleting(false)\n setPhraseIndex((index) => (index + 1) % phrases.length)\n }, pauseEmptyMs)\n } else if (isDeleting) {\n timeout = window.setTimeout(() => setText((current) => current.slice(0, -1)), deleteSpeedMs)\n } else {\n timeout = window.setTimeout(() => setText(phrase.slice(0, text.length + 1)), typeSpeedMs)\n }\n\n return () => window.clearTimeout(timeout)\n }, [\n text,\n isDeleting,\n phraseIndex,\n phrases,\n typeSpeedMs,\n deleteSpeedMs,\n pauseFullMs,\n pauseEmptyMs\n ])\n\n return text\n}\n","'use client'\n\nimport { forwardRef, useEffect, useRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { HomeHeroProps } from './HomeHero.types'\nimport { RatingBadge } from './RatingBadge'\nimport { useTypewriter } from './useTypewriter'\n\nexport const HomeHero = forwardRef<HTMLElement, HomeHeroProps>(\n (\n {\n videoUrl,\n posterUrl,\n mobilePosterUrl,\n title,\n cyclingPhrases,\n typewriter,\n reviews,\n className,\n ...rest\n },\n ref\n ) => {\n const currentPhrase = useTypewriter(cyclingPhrases, typewriter)\n const hasReviews = reviews !== undefined && reviews.length > 0\n const videoRef = useRef<HTMLVideoElement>(null)\n\n // Swap the poster to the mobile variant on small viewports. Done in a\n // client-only effect so SSR markup doesn't disagree with first paint.\n useEffect(() => {\n const video = videoRef.current\n if (!video || !mobilePosterUrl) return\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return\n if (window.matchMedia('(max-width: 767px)').matches) {\n video.poster = mobilePosterUrl\n }\n }, [mobilePosterUrl])\n\n return (\n <section\n ref={ref}\n className={cn('relative w-full h-full overflow-hidden bg-secondary', className)}\n {...rest}\n >\n <video\n ref={videoRef}\n src={videoUrl}\n poster={posterUrl}\n muted\n autoPlay\n loop\n playsInline\n preload=\"metadata\"\n tabIndex={-1}\n className=\"absolute inset-0 w-full h-full object-cover\"\n />\n <div aria-hidden=\"true\" className=\"absolute inset-0 bg-black/30 pointer-events-none\" />\n\n <div className=\"relative w-full h-full flex flex-col\">\n <div className=\"flex-1 flex flex-col items-center justify-center gap-md px-md text-center [text-shadow:0px_2px_8px_rgba(0,0,0,0.12)] max-md:gap-[10px] max-md:[text-shadow:2px_4px_15px_rgba(0,0,0,0.8)]\">\n <h1 className=\"m-0 max-w-[631px] text-hero-title text-on-image max-md:max-w-[349px]\">\n {title}\n </h1>\n <p className=\"m-0 min-h-5 text-hero-subtitle text-accent\" aria-live=\"polite\">\n {currentPhrase}\n <span\n aria-hidden=\"true\"\n className=\"ml-[2px] inline-block w-[2px] h-[1em] align-[-2px] bg-accent animate-pulse\"\n />\n </p>\n </div>\n\n {hasReviews ? (\n <div className=\"shrink-0 w-full bg-brand-shade-1 py-3 px-md max-md:py-[10px] max-md:px-5\">\n <div className=\"mx-auto w-fit flex items-center justify-center gap-xl max-md:gap-[14px] max-md:flex-wrap\">\n {reviews.map((review) => (\n <RatingBadge key={`${review.alt}|${review.rating}`} {...review} />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </section>\n )\n }\n)\n\nHomeHero.displayName = 'HomeHero'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { NavbarProps } from './Navbar.types'\n\nconst SearchSvg = () => (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"9\" cy=\"9\" r=\"6.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <line\n x1=\"13.5\"\n y1=\"13.5\"\n x2=\"17.5\"\n y2=\"17.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n)\n\nconst PhoneSvg = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n 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\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst navLinkClass =\n \"relative inline-flex items-center gap-xs text-text-deep no-underline text-md font-medium leading-5 whitespace-nowrap after:content-[''] after:absolute after:left-0 after:-bottom-1 after:w-full after:h-[2px] after:bg-primary after:scale-x-0 after:origin-left after:transition-transform after:duration-200 after:ease-in hover:after:scale-x-100 focus-visible:after:scale-x-100\"\n\nexport const Navbar = forwardRef<HTMLElement, NavbarProps>(\n (\n {\n logo,\n logoHref = '/',\n links,\n searchPlaceholder = 'Where do you want to go?',\n searchHref = '/search',\n phoneNumber,\n phoneIcon,\n LinkComponent,\n sticky = true,\n className,\n ...rest\n },\n ref\n ) => {\n const Link = LinkComponent ?? 'a'\n\n return (\n <header\n ref={ref}\n className={cn(\n 'flex items-center justify-between gap-lg w-full h-16 py-sm px-[48px] bg-background max-md:hidden',\n sticky && 'sticky top-0 z-[99]',\n className\n )}\n {...rest}\n >\n <div className=\"flex items-center gap-[64px]\">\n <Link href={logoHref} aria-label=\"Home\" className=\"inline-flex items-center no-underline\">\n <span className=\"inline-flex items-center justify-center w-[60px] h-[60px] shrink-0 [&>img]:w-full [&>img]:h-full [&>img]:object-contain [&>svg]:w-full [&>svg]:h-full [&>svg]:object-contain\">\n {typeof logo === 'string' ? <img src={logo} alt=\"\" /> : logo}\n </span>\n </Link>\n\n <Link href={searchHref} className=\"inline-flex no-underline shrink-0\">\n <span className=\"inline-flex items-center gap-sm w-[302px] h-[38px] pr-3 pl-6 bg-surface border border-primary rounded-full text-text-faded text-sm font-light leading-6\">\n <span className=\"flex-auto min-w-0\">{searchPlaceholder}</span>\n <span className=\"inline-flex items-center justify-center w-5 h-5 text-primary shrink-0\">\n <SearchSvg />\n </span>\n </span>\n </Link>\n </div>\n\n <div className=\"flex items-center gap-md\">\n <nav aria-label=\"Primary\">\n <ul className=\"flex items-center gap-6 m-0 px-sm list-none\">\n {links.map((link) => (\n <li key={link.href} className=\"inline-flex items-center\">\n <Link href={link.href} className={navLinkClass}>\n <span>{link.label}</span>\n {link.badgeIcon ? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-4 h-4\"\n >\n {link.badgeIcon}\n </span>\n ) : null}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n\n {phoneNumber ? (\n <a\n href={`tel:${phoneNumber.replace(/\\s+/g, '')}`}\n className=\"inline-flex items-center gap-sm py-sm px-5 bg-transparent border border-primary rounded-full text-primary no-underline font-bold text-sm leading-5 whitespace-nowrap transition-colors duration-150 ease-in hover:bg-primary hover:text-white\"\n >\n {phoneIcon ?? (\n <span\n aria-hidden=\"true\"\n className=\"inline-flex items-center justify-center w-4 h-4 shrink-0\"\n >\n <PhoneSvg />\n </span>\n )}\n <span>{phoneNumber}</span>\n </a>\n ) : null}\n </div>\n </header>\n )\n }\n)\n\nNavbar.displayName = 'Navbar'\n","import { forwardRef } from 'react'\nimport { LocationCard } from '../../components/LocationCard'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { OfficesSectionProps } from './OfficesSection.types'\n\nexport const OfficesSection = forwardRef<HTMLElement, OfficesSectionProps>(\n ({ heading, subheading, locations, className, ...rest }, ref) => {\n return (\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\n <SectionHeader heading={heading} subheading={subheading} />\n <div className=\"flex flex-wrap gap-lg w-full [&>*]:flex-[1_1_280px]\">\n {locations.map((office) => (\n <LocationCard key={office.location} {...office} />\n ))}\n </div>\n </section>\n )\n }\n)\n\nOfficesSection.displayName = 'OfficesSection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { MonthTabs } from '../../components/MonthTabs'\nimport { PackageCard } from '../../components/PackageCard'\nimport { cn } from '../../lib/cn'\nimport type { PackagesCarouselProps } from './PackagesCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ArrowRight = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M3 8h10M9 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-1/2 -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-primary border-none rounded-full text-on-dark cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[1] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const PackagesCarousel = forwardRef<HTMLElement, PackagesCarouselProps>(\n (\n {\n heading,\n viewAllHref,\n viewAllLabel = 'View All',\n months,\n activeMonthId,\n onMonthChange,\n packages,\n className,\n ...rest\n },\n ref\n ) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n canPrev,\n canNext\n } = useScrollSnap(packages.length)\n\n return (\n <section\n ref={ref}\n className={cn('flex flex-col items-center gap-xl bg-surface', className)}\n {...rest}\n >\n <div className=\"flex flex-col gap-xl w-full\">\n <div className=\"flex items-center justify-between gap-lg\">\n <h2 className=\"m-0 text-xl font-semibold leading-5 text-secondary\">{heading}</h2>\n {viewAllHref ? (\n <a\n href={viewAllHref}\n className=\"inline-flex items-center gap-sm text-text-emphasis no-underline text-xs font-medium leading-5 hover:underline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2\"\n >\n {viewAllLabel}\n <ArrowRight />\n </a>\n ) : null}\n </div>\n\n <MonthTabs months={months} activeMonthId={activeMonthId} onMonthChange={onMonthChange} />\n\n <div className=\"relative w-full\">\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous packages\"\n className={cn(arrowBase, '-left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm px-lg overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {packages.map((pkg) => (\n <PackageCard\n key={`${pkg.image}|${pkg.title}|${pkg.date}`}\n image={pkg.image}\n alt={pkg.alt}\n title={pkg.title}\n currentPrice={pkg.currentPrice}\n originalPrice={pkg.originalPrice}\n priceSuffix={pkg.priceSuffix}\n duration={pkg.duration}\n location={pkg.location}\n date={pkg.date}\n href={pkg.href}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next packages\"\n className={cn(arrowBase, '-right-2')}\n >\n <ChevronRight />\n </button>\n </div>\n </div>\n </section>\n )\n }\n)\n\nPackagesCarousel.displayName = 'PackagesCarousel'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport { CategoryNavbar } from '../CategoryNavbar'\nimport { Navbar } from '../Navbar'\nimport type { SiteHeaderProps } from './SiteHeader.types'\n\nexport const SiteHeader = forwardRef<HTMLDivElement, SiteHeaderProps>(\n ({ navbar, categoryNavbar, sticky = true, className, ...rest }, ref) => (\n <div ref={ref} className={cn(sticky && 'sticky top-0 z-[200]', className)} {...rest}>\n <Navbar {...navbar} sticky={false} />\n <CategoryNavbar {...categoryNavbar} sticky={false} />\n </div>\n )\n)\n\nSiteHeader.displayName = 'SiteHeader'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { TeamInfoCard } from '../../components/TeamInfoCard'\nimport { cn } from '../../lib/cn'\nimport type { TeamSectionProps } from './TeamSection.types'\n\nexport const TeamSection = forwardRef<HTMLElement, TeamSectionProps>(\n ({ heading, subheading, members, className, ...rest }, ref) => {\n const { ref: trackRef, activeIndex } = useScrollSnap(members.length)\n\n return (\n <section\n ref={ref}\n className={cn(\n 'flex flex-col items-center gap-lg px-md bg-surface',\n 'md:gap-xl md:px-lg',\n 'lg:px-[80px]',\n className\n )}\n {...rest}\n >\n <SectionHeader heading={heading} subheading={subheading} />\n <ul\n ref={trackRef}\n className={cn(\n 'flex gap-md w-full max-w-[1106px] m-0 p-0 list-none',\n 'overflow-x-auto snap-x snap-mandatory',\n '[scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n 'lg:grid lg:grid-cols-3 lg:overflow-visible lg:snap-none'\n )}\n >\n {members.map((member) => (\n <li\n key={`${member.name}-${member.designation}`}\n className={cn(\n 'm-0 shrink-0 snap-center',\n 'w-full',\n 'md:w-[calc((100%-var(--spacing-md))/2)]',\n 'lg:w-auto lg:shrink lg:snap-align-none'\n )}\n >\n <TeamInfoCard {...member} />\n </li>\n ))}\n </ul>\n {members.length > 1 ? (\n <div\n role=\"tablist\"\n aria-label=\"Team carousel position\"\n className=\"flex items-center justify-center gap-sm lg:hidden\"\n >\n {members.map((member, index) => (\n <span\n key={`${member.name}-${member.designation}|dot`}\n aria-hidden=\"true\"\n className={cn(\n 'h-2 rounded-full transition-[width,background-color] duration-200 ease-in',\n index === activeIndex ? 'w-5 bg-primary' : 'w-2 bg-border'\n )}\n />\n ))}\n </div>\n ) : null}\n </section>\n )\n }\n)\n\nTeamSection.displayName = 'TeamSection'\n","'use client'\n\nimport { forwardRef, useRef, useState } from 'react'\nimport { TestimonialCard } from '../../components/TestimonialCard'\nimport { cn } from '../../lib/cn'\nimport type { TestimonialsCarouselProps } from './TestimonialsCarousel.types'\n\nconst ChevronLeft = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M12 15l-5-5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M8 5l5 5-5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowClass =\n 'inline-flex items-center justify-center w-9 h-9 p-0 bg-primary border-none rounded-full text-on-dark cursor-pointer transition-opacity duration-150 ease-in disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2'\n\nexport const TestimonialsCarousel = forwardRef<HTMLElement, TestimonialsCarouselProps>(\n (\n { testimonials, defaultIndex = 0, activeIndex, onActiveIndexChange, className, ...rest },\n ref\n ) => {\n const isControlled = activeIndex !== undefined\n const [internalIndex, setInternalIndex] = useState(defaultIndex)\n const currentIndex = isControlled ? activeIndex : internalIndex\n const touchStartX = useRef<number | null>(null)\n\n const setIndex = (next: number) => {\n if (!isControlled) setInternalIndex(next)\n onActiveIndexChange?.(next)\n }\n\n const current = testimonials[currentIndex]\n if (!current) return null\n\n const isFirst = currentIndex <= 0\n const isLast = currentIndex >= testimonials.length - 1\n\n const handleTouchStart = (e: React.TouchEvent) => {\n touchStartX.current = e.touches[0]?.clientX ?? null\n }\n\n const handleTouchEnd = (e: React.TouchEvent) => {\n if (touchStartX.current === null) return\n const endX = e.changedTouches[0]?.clientX\n if (endX === undefined) return\n const delta = touchStartX.current - endX\n if (Math.abs(delta) > 40) {\n if (delta > 0 && !isLast) setIndex(currentIndex + 1)\n else if (delta < 0 && !isFirst) setIndex(currentIndex - 1)\n }\n touchStartX.current = null\n }\n\n return (\n <section\n ref={ref}\n className={cn('flex flex-col items-center gap-[28px] bg-surface', className)}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n {...rest}\n >\n <TestimonialCard\n thumbnail={current.thumbnail}\n thumbnailAlt={current.thumbnailAlt}\n logo={current.logo}\n logoAlt={current.logoAlt}\n caption={current.caption}\n videoHref={current.videoHref}\n />\n {testimonials.length > 1 ? (\n <div className=\"flex items-center justify-center gap-lg\">\n <button\n type=\"button\"\n onClick={() => setIndex(currentIndex - 1)}\n disabled={isFirst}\n aria-label=\"Previous testimonial\"\n className={arrowClass}\n >\n <ChevronLeft />\n </button>\n <div\n role=\"tablist\"\n aria-label=\"Testimonial slide\"\n className=\"flex items-center justify-center gap-3\"\n >\n {testimonials.map((testimonial, index) => (\n <button\n key={`${testimonial.thumbnail}|${testimonial.caption}`}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === currentIndex}\n aria-label={`Go to testimonial ${index + 1}`}\n onClick={() => setIndex(index)}\n className={cn(\n 'inline-block h-[6px] p-0 border-none rounded-full cursor-pointer transition-[width,background-color] duration-200 ease-in focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2',\n index === currentIndex ? 'w-5 bg-primary' : 'w-[5px] bg-border'\n )}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={() => setIndex(currentIndex + 1)}\n disabled={isLast}\n aria-label=\"Next testimonial\"\n className={arrowClass}\n >\n <ChevronRight />\n </button>\n </div>\n ) : null}\n </section>\n )\n }\n)\n\nTestimonialsCarousel.displayName = 'TestimonialsCarousel'\n","import { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { TextSectionProps } from './TextSection.types'\n\nexport const TextSection = forwardRef<HTMLElement, TextSectionProps>(\n ({ heading, paragraphs, align = 'left', className, ...rest }, ref) => (\n <section\n ref={ref}\n className={cn(\n 'flex flex-col gap-md w-full',\n align === 'center' ? 'items-center text-center' : 'items-start text-left',\n className\n )}\n {...rest}\n >\n <h2 className=\"m-0 text-section-heading\">{heading}</h2>\n <div className=\"flex flex-col gap-md max-w-[760px]\">\n {paragraphs.map((paragraph) => (\n <p key={paragraph} className=\"m-0 text-card-body\">\n {paragraph}\n </p>\n ))}\n </div>\n </section>\n )\n)\n\nTextSection.displayName = 'TextSection'\n","'use client'\n\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport { EffectCards } from 'swiper/modules'\nimport { Swiper, SwiperSlide } from 'swiper/react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { TripCategoryCard } from '../../components/TripCategoryCard'\nimport { cn } from '../../lib/cn'\nimport type { TripsCategorySectionProps } from './TripsCategorySection.types'\n\n/**\n * Mounts the desktop hero video only when the viewport is >= md AND\n * the section has scrolled near the viewport. Avoids the browser\n * fetching the MP4 on mobile (where it's hidden via CSS but still\n * requested by the network stack).\n */\nconst useDesktopVideoVisible = (\n ref: React.RefObject<HTMLElement | null>,\n breakpointPx = 768\n): boolean => {\n const [shouldRender, setShouldRender] = useState(false)\n\n useEffect(() => {\n if (typeof window === 'undefined') return\n const mq = window.matchMedia(`(min-width: ${breakpointPx}px)`)\n if (!mq.matches) {\n setShouldRender(false)\n return\n }\n const el = ref.current\n if (!el || typeof IntersectionObserver === 'undefined') {\n setShouldRender(true)\n return\n }\n const io = new IntersectionObserver(\n (entries) => {\n if (entries[0]?.isIntersecting) {\n setShouldRender(true)\n io.disconnect()\n }\n },\n { rootMargin: '200px' }\n )\n io.observe(el)\n return () => io.disconnect()\n }, [ref, breakpointPx])\n\n return shouldRender\n}\n\nconst ChevronLeft = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8l4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst ChevronRight = () => (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4l4 4-4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n)\n\nconst arrowBase =\n 'absolute top-[calc(50%+30px)] -translate-y-1/2 inline-flex items-center justify-center w-8 h-8 bg-surface border border-border rounded-full text-primary cursor-pointer shadow-card transition-opacity duration-150 ease-in z-[1] disabled:opacity-40 disabled:cursor-not-allowed focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 max-md:hidden'\n\nexport const TripsCategorySection = forwardRef<HTMLElement, TripsCategorySectionProps>(\n ({ title, description, cta, poster, videoSrc, trips, className, ...rest }, ref) => {\n const {\n ref: trackRef,\n scrollPrev,\n scrollNext,\n canPrev,\n canNext,\n scrollProgress\n } = useScrollSnap(trips.length)\n\n const heroRef = useRef<HTMLDivElement>(null)\n const showDesktopVideo = useDesktopVideoVisible(heroRef)\n\n const handleCtaClick = () => {\n if (cta.href) {\n window.location.assign(cta.href)\n return\n }\n cta.onClick?.()\n }\n\n const progressWidth = Math.min(33 + scrollProgress * (120 - 33), 120)\n\n return (\n <section\n ref={ref}\n className={cn('relative flex flex-col bg-surface max-md:overflow-x-clip', className)}\n {...rest}\n >\n {/* Header banner */}\n <div\n ref={heroRef}\n className=\"relative h-[318px] rounded-lg overflow-hidden max-md:h-[260px]\"\n >\n <div className=\"absolute inset-0\">\n {/*\n * Always render a poster image. On desktop, once the section is\n * near the viewport we additionally mount the autoplay video on\n * top of it. This avoids the browser fetching the video on\n * mobile (CSS-hidden videos still trigger network requests).\n */}\n <img\n src={poster}\n alt=\"\"\n aria-hidden=\"true\"\n className=\"w-full h-full object-cover\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n {showDesktopVideo && (\n <video\n autoPlay\n muted\n loop\n playsInline\n preload=\"metadata\"\n poster={poster}\n src={videoSrc}\n className=\"hidden md:block absolute inset-0 w-full h-full object-cover\"\n />\n )}\n </div>\n <div className=\"absolute inset-0 flex flex-col justify-center gap-lg p-[44px] max-md:p-[24px] text-on-image [text-shadow:0px_6px_24px_rgba(0,0,0,0.16)]\">\n <h2 className=\"m-0 text-hero-title max-w-[436px] max-md:text-secondary max-md:[text-shadow:none]\">\n {title}\n </h2>\n <p className=\"max-md:hidden m-0 text-xs font-bold leading-5\">{description}</p>\n <button\n type=\"button\"\n onClick={handleCtaClick}\n className=\"max-md:hidden inline-flex items-center justify-center self-start h-11 px-xl bg-accent text-secondary border-none rounded-md font-[inherit] text-button cursor-pointer shadow-[inset_0_0_6px_rgba(0,0,0,0.14)] transition-colors duration-150 ease-in hover:bg-accent-hover focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2\"\n >\n {cta.label}\n </button>\n </div>\n </div>\n\n {/* Desktop: horizontal scroll carousel */}\n <div className=\"relative -mt-[68px] py-sm px-[25px] hidden md:block\">\n <button\n type=\"button\"\n onClick={scrollPrev}\n disabled={!canPrev}\n aria-label=\"Previous trips\"\n className={cn(arrowBase, 'left-2')}\n >\n <ChevronLeft />\n </button>\n <div\n ref={trackRef}\n className=\"flex gap-sm overflow-x-auto snap-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n {trips.map((trip) => (\n <TripCategoryCard\n key={`${trip.image}|${trip.destination}`}\n image={trip.image}\n mobileImage={trip.mobileImage}\n alt={trip.alt}\n destination={trip.destination}\n startingPrice={trip.startingPrice}\n href={trip.href}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={scrollNext}\n disabled={!canNext}\n aria-label=\"Next trips\"\n className={cn(arrowBase, 'right-2')}\n >\n <ChevronRight />\n </button>\n <div\n role=\"progressbar\"\n aria-valuenow={Math.round(scrollProgress * 100)}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label=\"Scroll position\"\n className=\"relative w-[120px] h-[6px] mt-md mx-auto bg-track rounded-[32px] overflow-hidden\"\n >\n <span\n className=\"absolute top-0 left-0 h-full bg-primary rounded-[32px] transition-[width] duration-200 ease-in\"\n style={{ width: `${progressWidth}px` }}\n />\n </div>\n </div>\n\n {/* Mobile: Swiper cards effect deck */}\n <div className=\"relative -mt-[60px] pb-md md:hidden flex justify-center\">\n <Swiper\n effect=\"cards\"\n grabCursor\n modules={[EffectCards]}\n className=\"w-[74vw] [aspect-ratio:289/367]\"\n style={{ overflow: 'visible' }}\n >\n {trips.map((trip) => (\n <SwiperSlide\n key={`${trip.image}|${trip.destination}|mobile`}\n style={{ borderRadius: '12px', overflow: 'hidden' }}\n >\n <TripCategoryCard\n image={trip.image}\n mobileImage={trip.mobileImage}\n alt={trip.alt}\n destination={trip.destination}\n startingPrice={trip.startingPrice}\n href={trip.href}\n className=\"w-full h-full rounded-xl shrink-0\"\n />\n </SwiperSlide>\n ))}\n </Swiper>\n </div>\n </section>\n )\n }\n)\n\nTripsCategorySection.displayName = 'TripsCategorySection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { cn } from '../../lib/cn'\nimport type { UctMobileBannerProps } from './UctMobileBanner.types'\n\nconst UCT_VIDEO_DEFAULT = 'https://wanderon-video.gumlet.io/upcoming-community-trips-a.mp4'\nconst UCT_POSTER_DEFAULT =\n 'https://wanderon-images.gumlet.io/uct-thumbnail.jpg?updatedAt=1739361886945'\n\nexport const UctMobileBanner = forwardRef<HTMLAnchorElement, UctMobileBannerProps>(\n (\n {\n href,\n videoUrl = UCT_VIDEO_DEFAULT,\n posterUrl = UCT_POSTER_DEFAULT,\n LinkComponent,\n className,\n ...rest\n },\n ref\n ) => {\n const Link = LinkComponent ?? 'a'\n\n return (\n <Link\n ref={ref}\n href={href}\n className={cn(\n 'flex justify-center no-underline outline-none select-none [-webkit-tap-highlight-color:transparent]',\n className\n )}\n {...rest}\n >\n <div className=\"relative w-full mx-4\">\n {/* Circle video — pops above the pill */}\n <div className=\"absolute top-[-15px] left-[10px] w-[51px] h-[50px] rounded-full z-[6] [box-shadow:0px_4px_10px_0px_rgba(254,230,11,0.2)]\">\n <video\n src={videoUrl}\n poster={posterUrl}\n muted\n loop\n autoPlay\n playsInline\n className=\"w-full h-full object-cover rounded-full\"\n />\n </div>\n\n {/* Pill */}\n <div\n className=\"relative flex items-center justify-between overflow-hidden h-[60px] pl-[70px] pr-[10px] py-[10px] rounded-xl cursor-pointer\"\n style={{\n background: 'linear-gradient(90deg, #015f74 0%, #02b3da 100%)',\n boxShadow: '0px 4px 4px 0px rgba(1, 95, 116, 0.3) inset'\n }}\n >\n <span className=\"text-[#f5fdff] text-base font-medium leading-7 font-[inherit]\">\n Upcoming Community Trips\n </span>\n\n <span\n aria-hidden=\"true\"\n className=\"inline-flex\"\n style={{ animation: 'uct-move-arrow 1.5s infinite' }}\n >\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M13 6L19 12L13 18M5 6L11 12L5 18\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n\n {/* Pulse rings */}\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[300px] h-[250px] pointer-events-none\">\n <div\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[#ababab] w-0 h-0\"\n style={{ animation: 'uct-pulse-one 2s infinite 0s ease-in-out' }}\n />\n <div\n className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border border-[#ababab] w-0 h-0\"\n style={{ animation: 'uct-pulse-two 2s infinite 1s ease-in-out' }}\n />\n </div>\n </div>\n </div>\n </Link>\n )\n }\n)\n\nUctMobileBanner.displayName = 'UctMobileBanner'\n","'use client'\n\nimport { forwardRef, useState } from 'react'\nimport { ExpandableValueCard } from '../../components/ExpandableValueCard'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { cn } from '../../lib/cn'\nimport type { ValuesSectionProps } from './ValuesSection.types'\n\nexport const ValuesSection = forwardRef<HTMLElement, ValuesSectionProps>(\n ({ heading, subheading, values, singleOpen = false, className, ...rest }, ref) => {\n const [openIndex, setOpenIndex] = useState<number | null>(null)\n\n return (\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\n <SectionHeader heading={heading} subheading={subheading} />\n <div className=\"flex flex-col gap-md w-full\">\n {values.map((value, index) => {\n const serialNumber = index + 1\n if (!singleOpen) {\n return (\n <ExpandableValueCard\n key={value.title}\n serialNumber={serialNumber}\n title={value.title}\n bullets={value.bullets}\n />\n )\n }\n return (\n <ExpandableValueCard\n key={value.title}\n serialNumber={serialNumber}\n title={value.title}\n bullets={value.bullets}\n expanded={openIndex === index}\n onToggle={(next) => setOpenIndex(next ? index : null)}\n />\n )\n })}\n </div>\n </section>\n )\n }\n)\n\nValuesSection.displayName = 'ValuesSection'\n","import { forwardRef } from 'react'\nimport { SectionHeader } from '../../components/SectionHeader'\nimport { WarriorCard } from '../../components/WarriorCard'\nimport { cn } from '../../lib/cn'\nimport type { WarriorsSectionProps } from './WarriorsSection.types'\n\nexport const WarriorsSection = forwardRef<HTMLElement, WarriorsSectionProps>(\n ({ heading, subheading, warriors, className, ...rest }, ref) => {\n return (\n <section ref={ref} className={cn('flex flex-col w-full', className)} {...rest}>\n <SectionHeader heading={heading} subheading={subheading} />\n <div className=\"grid grid-cols-[repeat(auto-fit,minmax(240px,1fr))] gap-lg w-full\">\n {warriors.map((warrior) => (\n <WarriorCard key={warrior.name} {...warrior} />\n ))}\n </div>\n </section>\n )\n }\n)\n\nWarriorsSection.displayName = 'WarriorsSection'\n","'use client'\n\nimport { forwardRef } from 'react'\nimport { useScrollSnap } from '../../components/_internal/useScrollSnap'\nimport { FeatureCard } from '../../components/FeatureCard'\nimport { cn } from '../../lib/cn'\nimport type { WhyChooseSectionProps } from './WhyChooseSection.types'\n\nexport const WhyChooseSection = forwardRef<HTMLElement, WhyChooseSectionProps>(\n ({ heading, features, className, ...rest }, ref) => {\n const { ref: trackRef, activeIndex } = useScrollSnap(features.length)\n\n return (\n <section\n ref={ref}\n className={cn(\n // Mobile (default)\n 'flex flex-col items-center gap-lg bg-surface',\n // Tablet\n 'md:gap-xl',\n className\n )}\n {...rest}\n >\n <h2 className=\"m-0 text-section-h2 text-secondary text-center\">{heading}</h2>\n <ul\n ref={trackRef}\n className={cn(\n // Mobile + tablet: flex with snap scroll\n 'flex gap-md w-full max-w-[1106px] m-0 p-0 list-none',\n 'overflow-x-auto snap-x snap-mandatory',\n '[scrollbar-width:none] [&::-webkit-scrollbar]:hidden',\n // Desktop: static 4-col grid (no scroll)\n 'lg:grid lg:grid-cols-4 lg:overflow-visible lg:snap-none'\n )}\n >\n {features.map((feature) => (\n <li\n key={feature.heading}\n className={cn(\n 'm-0 shrink-0 snap-center',\n // Mobile: 1 card per view (fills the content area)\n 'w-full',\n // Tablet: 2 cards per view ((100% - one gap) / 2)\n 'md:w-[calc((100%-var(--spacing-md))/2)]',\n // Desktop: grid track decides width\n 'lg:w-auto lg:shrink lg:snap-align-none'\n )}\n >\n <FeatureCard\n heading={feature.heading}\n description={feature.description}\n imageUrl={feature.imageUrl}\n />\n </li>\n ))}\n </ul>\n {features.length > 1 ? (\n <div\n role=\"tablist\"\n aria-label=\"Feature carousel position\"\n className=\"flex items-center justify-center gap-sm lg:hidden\"\n >\n {features.map((feature, index) => (\n <span\n key={`${feature.heading}|dot`}\n aria-hidden=\"true\"\n className={cn(\n 'h-2 rounded-full transition-[width,background-color] duration-200 ease-in',\n index === activeIndex ? 'w-5 bg-primary' : 'w-2 bg-border'\n )}\n />\n ))}\n </div>\n ) : null}\n </section>\n )\n }\n)\n\nWhyChooseSection.displayName = 'WhyChooseSection'\n","const tokens = {\n colors: {\n primary: '#01AFD1',\n primaryHover: '#0089A6',\n accent: '#FEE60B',\n accentHover: '#E6CF09',\n secondary: '#4A4A4A',\n secondaryHover: '#333333',\n danger: '#DC2626',\n text: '#4A4A4A',\n textMuted: '#848484',\n background: '#FFFFFF',\n surface: '#FFFFFF',\n border: '#E2E8F0'\n },\n spacing: {\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '32px'\n },\n radii: {\n sm: '4px',\n md: '8px',\n lg: '12px',\n full: '9999px'\n },\n fontSizes: {\n sm: '14px',\n md: '16px',\n lg: '18px',\n xl: '24px',\n '2xl': '32px'\n },\n fontWeights: {\n light: 300,\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700\n },\n shadows: {\n card: '0px 6px 12px rgba(0, 0, 0, 0.16)',\n cardLg: '0px 6px 12px rgba(0, 0, 0, 0.40)'\n }\n} as const\n\nconst layout = {\n sectionPadding: `${tokens.spacing.xl} ${tokens.spacing.lg}`,\n cardPadding: tokens.spacing.lg,\n gridGap: tokens.spacing.lg,\n contentWidth: '760px',\n mobileBreakpoint: '768px'\n} as const\n\nexport const theme = {\n ...tokens,\n layout\n} as const\n\nexport type Theme = typeof theme\n"]}
|