const placeholderImg = (tone) => {
  const tones = {
    beach:    ['oklch(0.82 0.10 220)', 'oklch(0.94 0.05 220)'],
    sunset:   ['oklch(0.72 0.12 55)',  'oklch(0.92 0.06 55)'],
    dune:     ['oklch(0.78 0.08 75)',  'oklch(0.94 0.04 75)'],
    stone:    ['oklch(0.70 0.03 60)',  'oklch(0.90 0.02 60)'],
    interior: ['oklch(0.68 0.04 45)',  'oklch(0.88 0.03 45)'],
    sea:      ['oklch(0.62 0.12 220)', 'oklch(0.88 0.07 220)'],
    pool:     ['oklch(0.78 0.13 200)', 'oklch(0.94 0.05 200)'],
    wood:     ['oklch(0.55 0.07 45)',  'oklch(0.82 0.04 45)'],
    night:    ['oklch(0.35 0.08 260)', 'oklch(0.55 0.10 260)'],
    desert:   ['oklch(0.78 0.09 65)',  'oklch(0.92 0.05 65)'],
    garden:   ['oklch(0.72 0.12 140)', 'oklch(0.92 0.06 140)'],
  };
  const [a, b] = tones[tone] || tones.stone;
  return `linear-gradient(135deg, ${a}, ${b})`;
};

const img = (id, w = 1000) => `https://images.unsplash.com/photo-${id}?w=${w}&auto=format&fit=crop&q=80`;

const DESC = {
  villa_ar: 'فيلا فخمة على البحر مباشرة. تصميم مفتوح يجمع بين الرحابة والإطلالة البانورامية على البحر المتوسط. تراس واسع، حمام سباحة خاص، ومساحات مخصصة للعائلة تجمع بين الهدوء والخصوصية.',
  villa_en: 'A private villa right on the Mediterranean. An open-plan layout pairs expansive living spaces with uninterrupted sea views. Generous terrace, private pool, and family-friendly design that balances quiet and privacy.',
  apt_ar: 'شقة حديثة مفروشة بالكامل في واحد من أرقى كمبوندات الساحل الشمالي. قريبة من البحر، مجهزة لإقامة مريحة للعائلة، وتوفر كل الخدمات اللي تحتاجها في مكان واحد.',
  apt_en: 'A fully furnished modern apartment in one of the North Coast\'s most sought-after compounds. Steps from the beach, equipped for a comfortable family stay with every amenity within reach.',
  chalet_ar: 'شاليه مميز في قلب الساحل الشمالي. تصميم عصري، غرف مريحة، ودخول مباشر على اللاجون. اختيار مثالي لقضاء إجازة هادئة مع العائلة أو الأصحاب.',
  chalet_en: 'A stand-out chalet in the heart of the North Coast. Contemporary interiors, generous rooms, and direct lagoon access, ideal for a quiet escape with family or friends.',
  studio_ar: 'استوديو أنيق مناسب لإقامة قصيرة أو لشخص يبحث عن بساطة وفخامة في نفس الوقت. موقع ممتاز قريب من الشاطئ والمطاعم.',
  studio_en: 'A tastefully designed studio for short stays. Minimalist luxury with everything you need, in a prime location close to the beach and dining.',
  beach_ar: 'أحد أفضل الشواطئ على الساحل الشمالي. مياه صافية، رمال ناعمة، وخدمات متكاملة من مظلات وكراسي وكبائن تغيير وحمامات سباحة للأطفال.',
  beach_en: 'One of the finest beaches on the North Coast. Crystal-clear water, soft sand, and full service including umbrellas, loungers, changing rooms, and kids\' pools.',
  trip_ar: 'رحلة منظمة مناسبة للعائلة. برنامج مدروس، مواصلات مريحة، ومرشدين محترفين يرافقوك طول اليوم علشان تستمتع وانت مطمن.',
  trip_en: 'A curated family day trip. Thoughtful itinerary, comfortable transfers, and qualified guides who accompany you throughout, for a carefree day out.',
  activity_ar: 'نشاط ممتع للعائلة والأصحاب. تجربة لا تُنسى في قلب الساحل، مع معدات آمنة ومدربين محترفين.',
  activity_en: 'Family-friendly fun in the heart of the coast. A memorable experience with safety-certified equipment and qualified instructors.',
};

const LISTINGS = {
  stays: [
    {
      id: 'a1',
      title_ar: 'فيلا بإطلالة بحرية',
      title_en: 'Seaview Villa',
      location_ar: 'مراسي، الساحل الشمالي',
      location_en: 'Marassi, North Coast',
      price: 4500,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 4, baths: 3, sqm: 280, guests: 8,
      tone: 'sea', rating: 4.9, reviews: 128,
      featured: true,
      badges_ar: ['موصى به'], badges_en: ["Editor's pick"],
      description_ar: DESC.villa_ar,
      description_en: DESC.villa_en,
      images: [
        img('1613490493576-7fde63acd811'),
        img('1600596542815-ffad4c1539a9'),
        img('1600566753190-17f0baa2a6c3'),
        img('1600210491892-03d54c0aaf87'),
        img('1600607687939-ce8a6c25118c'),
        img('1582268611958-ebfd161ef9cf'),
      ],
      host_ar: 'كريم منصور', host_en: 'Karim Mansour',
      tones: ['sea', 'pool', 'interior', 'night', 'wood'],
    },
    {
      id: 'a2',
      title_ar: 'شقة الأبيض بلو بيتش',
      title_en: 'Al Abyad Blue Beach',
      location_ar: 'الأبيض، مرسى مطروح',
      location_en: 'Al Abyad, Marsa Matrouh',
      price: 2500,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 3, baths: 2, sqm: 145, guests: 6,
      tone: 'beach', rating: 4.7, reviews: 82,
      description_ar: DESC.apt_ar,
      description_en: DESC.apt_en,
      images: [
        img('1512917774080-9991f1c4c750'),
        img('1600585154340-be6161a56a0c'),
        img('1600566753376-12c8ab7fb75b'),
        img('1600566752355-35792bedcfea'),
        img('1586023492125-27b2c045efd7'),
      ],
      host_ar: 'سارة حسني', host_en: 'Sara Hosny',
      tones: ['beach', 'interior', 'wood', 'pool'],
    },
    {
      id: 'a3',
      title_ar: 'شاليه هاسيندا باي',
      title_en: 'Hacienda Bay Chalet',
      location_ar: 'سيدي عبد الرحمن',
      location_en: 'Sidi Abdel Rahman',
      price: 3500,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 3, baths: 2, sqm: 165, guests: 6,
      tone: 'dune', rating: 4.8, reviews: 54,
      description_ar: DESC.chalet_ar,
      description_en: DESC.chalet_en,
      images: [
        img('1600607687644-c7171b42498f'),
        img('1600607687939-ce8a6c25118c'),
        img('1600210491892-03d54c0aaf87'),
        img('1600566753190-17f0baa2a6c3'),
      ],
      host_ar: 'أحمد نور', host_en: 'Ahmed Nour',
      tones: ['dune', 'pool', 'interior', 'wood'],
    },
    {
      id: 'a4',
      title_ar: 'شقة سيزر بالاس',
      title_en: 'Caesar Palace Suite',
      location_ar: 'العلمين الجديدة',
      location_en: 'New Alamein',
      price: 1850,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 2, baths: 1, sqm: 95, guests: 4,
      tone: 'interior', rating: 4.5, reviews: 41,
      description_ar: DESC.apt_ar,
      description_en: DESC.apt_en,
      images: [
        img('1522708323590-d24dbb6b0267'),
        img('1560448204-e02f11c3d0e2'),
        img('1560185007-cde436f6a4d0'),
        img('1600566752355-35792bedcfea'),
      ],
      host_ar: 'ليلى عزت', host_en: 'Layla Ezzat',
      tones: ['interior', 'wood', 'stone'],
    },
    {
      id: 'a5',
      title_ar: 'استوديو بالوما',
      title_en: 'Paloma Studio',
      location_ar: 'رأس الحكمة',
      location_en: 'Ras El Hikma',
      price: 1200,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 1, baths: 1, sqm: 55, guests: 2,
      tone: 'stone', rating: 4.6, reviews: 29,
      description_ar: DESC.studio_ar,
      description_en: DESC.studio_en,
      images: [
        img('1505693416388-ac5ce068fe85'),
        img('1540518614846-7eded433c457'),
        img('1586023492125-27b2c045efd7'),
      ],
      host_ar: 'عمر شوقي', host_en: 'Omar Shawky',
      tones: ['stone', 'interior', 'wood'],
    },
    {
      id: 'a6',
      title_ar: 'بنتهاوس رأس الحكمة',
      title_en: 'Ras El Hikma Penthouse',
      location_ar: 'رأس الحكمة',
      location_en: 'Ras El Hikma',
      price: 6500,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 5, baths: 4, sqm: 340, guests: 10,
      tone: 'sea', rating: 4.95, reviews: 42,
      badges_ar: ['فخامة'], badges_en: ['Luxe'],
      description_ar: DESC.villa_ar,
      description_en: DESC.villa_en,
      images: [
        img('1582268611958-ebfd161ef9cf'),
        img('1613490493576-7fde63acd811'),
        img('1600566753190-17f0baa2a6c3'),
        img('1600607687939-ce8a6c25118c'),
      ],
      host_ar: 'مها إبراهيم', host_en: 'Maha Ibrahim',
      tones: ['sea', 'pool', 'night', 'interior', 'wood'],
    },
    {
      id: 'a7',
      title_ar: 'تاون هاوس مراسي',
      title_en: 'Marassi Townhouse',
      location_ar: 'مراسي، الساحل الشمالي',
      location_en: 'Marassi, North Coast',
      price: 3200,
      unit_ar: '/الليلة', unit_en: '/night',
      beds: 3, baths: 3, sqm: 210, guests: 6,
      tone: 'garden', rating: 4.7, reviews: 67,
      description_ar: DESC.chalet_ar,
      description_en: DESC.chalet_en,
      images: [
        img('1600596542815-ffad4c1539a9'),
        img('1600210491892-03d54c0aaf87'),
        img('1512917774080-9991f1c4c750'),
      ],
      host_ar: 'يوسف صبري', host_en: 'Youssef Sabry',
      tones: ['garden', 'interior', 'pool', 'wood'],
    },
  ],
  beaches: [
    {
      id: 'b1',
      title_ar: 'شاطئ الهنا',
      title_en: 'Al Hana Beach',
      location_ar: 'الأبيض',
      location_en: 'Al Abyad',
      price: 120,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'beach', rating: 4.6, reviews: 340,
      description_ar: DESC.beach_ar,
      description_en: DESC.beach_en,
      images: [
        img('1507525428034-b723cf961d3e'),
        img('1540541338287-41700207dee6'),
        img('1519046904884-53103b34b206'),
      ],
      tones: ['beach', 'sunset', 'pool'],
    },
    {
      id: 'b2',
      title_ar: 'شاطئ لاجون',
      title_en: 'Lagoon Beach',
      location_ar: 'مراسي',
      location_en: 'Marassi',
      price: 200,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'sea', rating: 4.8, reviews: 220,
      description_ar: DESC.beach_ar,
      description_en: DESC.beach_en,
      images: [
        img('1519046904884-53103b34b206'),
        img('1507525428034-b723cf961d3e'),
        img('1540541338287-41700207dee6'),
      ],
      tones: ['sea', 'pool', 'sunset'],
    },
    {
      id: 'b3',
      title_ar: 'شاطئ كليوباترا',
      title_en: 'Cleopatra Beach',
      location_ar: 'مرسى مطروح',
      location_en: 'Marsa Matrouh',
      price: 80,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'pool', rating: 4.7, reviews: 512,
      description_ar: DESC.beach_ar,
      description_en: DESC.beach_en,
      images: [
        img('1540541338287-41700207dee6'),
        img('1507525428034-b723cf961d3e'),
      ],
      tones: ['pool', 'beach', 'sea'],
    },
    {
      id: 'b4',
      title_ar: 'شاطئ ألماظة باي',
      title_en: 'Almaza Bay Beach',
      location_ar: 'الساحل الشمالي',
      location_en: 'North Coast',
      price: 180,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'beach', rating: 4.8, reviews: 186,
      description_ar: DESC.beach_ar,
      description_en: DESC.beach_en,
      images: [
        img('1519046904884-53103b34b206'),
        img('1540541338287-41700207dee6'),
      ],
      tones: ['beach', 'sea', 'sunset'],
    },
  ],
  trips: [
    {
      id: 't1',
      title_ar: 'رحلة يخت عائلية',
      title_en: 'Family Yacht Day',
      location_ar: 'مارينا مراسي',
      location_en: 'Marassi Marina',
      price: 2500,
      unit_ar: '/الرحلة', unit_en: '/trip',
      duration_ar: '٥ ساعات', duration_en: '5 hours',
      tone: 'sea', rating: 4.9, reviews: 48,
      description_ar: DESC.trip_ar,
      description_en: DESC.trip_en,
      images: [
        img('1544551763-46a013bb70d5'),
        img('1507525428034-b723cf961d3e'),
        img('1519046904884-53103b34b206'),
      ],
      tones: ['sea', 'sunset', 'beach'],
    },
    {
      id: 't2',
      title_ar: 'سفاري صحراوي',
      title_en: 'Desert Safari',
      location_ar: 'الساحل الشمالي',
      location_en: 'North Coast',
      price: 800,
      unit_ar: '/للشخص', unit_en: '/person',
      duration_ar: '٤ ساعات', duration_en: '4 hours',
      tone: 'desert', rating: 4.6, reviews: 128,
      description_ar: DESC.trip_ar,
      description_en: DESC.trip_en,
      images: [
        img('1547235001-d703406d3d1e'),
        img('1519046904884-53103b34b206'),
      ],
      tones: ['desert', 'dune', 'sunset'],
    },
    {
      id: 't3',
      title_ar: 'جولة العلمين التاريخية',
      title_en: 'El Alamein Heritage Tour',
      location_ar: 'العلمين',
      location_en: 'El Alamein',
      price: 650,
      unit_ar: '/للشخص', unit_en: '/person',
      duration_ar: 'يوم كامل', duration_en: 'Full day',
      tone: 'dune', rating: 4.5, reviews: 76,
      description_ar: DESC.trip_ar,
      description_en: DESC.trip_en,
      images: [
        img('1499856871958-5b9627545d1a'),
        img('1543832923-44667a44c804'),
      ],
      tones: ['dune', 'sunset', 'stone'],
    },
    {
      id: 't4',
      title_ar: 'رحلة نهارية لمرسى مطروح',
      title_en: 'Marsa Matrouh Day Trip',
      location_ar: 'مرسى مطروح',
      location_en: 'Marsa Matrouh',
      price: 950,
      unit_ar: '/للعائلة', unit_en: '/family',
      duration_ar: 'يوم كامل', duration_en: 'Full day',
      tone: 'beach', rating: 4.7, reviews: 112,
      description_ar: DESC.trip_ar,
      description_en: DESC.trip_en,
      images: [
        img('1540541338287-41700207dee6'),
        img('1519046904884-53103b34b206'),
        img('1507525428034-b723cf961d3e'),
      ],
      tones: ['beach', 'sea', 'sunset'],
    },
  ],
  activities: [
    {
      id: 'ac1',
      title_ar: 'أكوا بارك هاسيندا',
      title_en: 'Hacienda Aqua Park',
      location_ar: 'هاسيندا باي',
      location_en: 'Hacienda Bay',
      price: 350,
      unit_ar: '/تذكرة', unit_en: '/ticket',
      tone: 'pool', rating: 4.8, reviews: 412,
      description_ar: DESC.activity_ar,
      description_en: DESC.activity_en,
      images: [
        img('1560717845-968823efbee1'),
        img('1530549387789-4c1017266635'),
      ],
      tones: ['pool', 'beach', 'sunset'],
    },
    {
      id: 'ac2',
      title_ar: 'رحلة يخت خاصة',
      title_en: 'Private Yacht Trip',
      location_ar: 'مراسي',
      location_en: 'Marassi',
      price: 2500,
      unit_ar: '/الرحلة', unit_en: '/trip',
      tone: 'sea', rating: 4.9, reviews: 48,
      description_ar: DESC.activity_ar,
      description_en: DESC.activity_en,
      images: [
        img('1544551763-46a013bb70d5'),
        img('1507525428034-b723cf961d3e'),
      ],
      tones: ['sea', 'sunset', 'beach'],
    },
    {
      id: 'ac3',
      title_ar: 'سفاري صحراوي',
      title_en: 'Desert Safari',
      location_ar: 'الساحل الشمالي',
      location_en: 'North Coast',
      price: 800,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'desert', rating: 4.6, reviews: 128,
      description_ar: DESC.activity_ar,
      description_en: DESC.activity_en,
      images: [
        img('1547235001-d703406d3d1e'),
        img('1519046904884-53103b34b206'),
      ],
      tones: ['desert', 'dune', 'sunset'],
    },
    {
      id: 'ac4',
      title_ar: 'غوص ومعدات',
      title_en: 'Diving & Snorkeling',
      location_ar: 'رأس الحكمة',
      location_en: 'Ras El Hikma',
      price: 950,
      unit_ar: '/للشخص', unit_en: '/person',
      tone: 'sea', rating: 4.7, reviews: 76,
      description_ar: DESC.activity_ar,
      description_en: DESC.activity_en,
      images: [
        img('1544551763-46a013bb70d5'),
        img('1507525428034-b723cf961d3e'),
      ],
      tones: ['sea', 'pool', 'beach'],
    },
  ],
};

const CATEGORIES = [
  { id: 'stays',      ar: 'شقق وفنادق', en: 'Stays',      icon: 'bed' },
  { id: 'beaches',    ar: 'شواطئ',       en: 'Beaches',    icon: 'sun' },
  { id: 'trips',      ar: 'رحلات',       en: 'Trips',      icon: 'compass' },
  { id: 'activities', ar: 'أنشطة',       en: 'Activities', icon: 'activity' },
];

const DESTINATIONS = [
  { id: 'd1', ar: 'الساحل الشمالي', en: 'North Coast', tagline_ar: 'لؤلؤة المتوسط',      tagline_en: 'The Mediterranean pearl', tone: 'sea',   stays: 340 },
  { id: 'd2', ar: 'مراسي',           en: 'Marassi',     tagline_ar: 'رفاهية على الشاطئ', tagline_en: 'Beachfront luxury',       tone: 'beach', stays: 128 },
  { id: 'd3', ar: 'رأس الحكمة',      en: 'Ras El Hikma',tagline_ar: 'الطبيعة البكر',       tagline_en: 'Untouched nature',        tone: 'pool',  stays: 86  },
];

const AMENITIES = [
  { icon: 'wifi',    ar: 'واي فاي',        en: 'Wi-Fi' },
  { icon: 'ac',      ar: 'تكييف',          en: 'Air conditioning' },
  { icon: 'pool',    ar: 'حمام سباحة',    en: 'Pool' },
  { icon: 'parking', ar: 'موقف سيارات',  en: 'Parking' },
  { icon: 'shield',  ar: 'أمن 24/7',       en: '24/7 Security' },
  { icon: 'bed',     ar: 'غرف مفروشة',   en: 'Furnished rooms' },
];

const HOUSE_RULES = [
  { icon: 'calendar', ar: 'تسجيل الوصول بعد ٣ عصراً', en: 'Check-in after 3:00 PM' },
  { icon: 'calendar', ar: 'المغادرة قبل ١٢ ظهراً',      en: 'Check-out before 12:00 PM' },
  { icon: 'shield',   ar: 'ممنوع التدخين داخل الوحدة',   en: 'No smoking indoors' },
  { icon: 'user',     ar: 'مناسب للعائلات',               en: 'Family-friendly' },
];

const TRIP_INCLUDES = [
  { icon: 'parking',  ar: 'مواصلات ذهاب وعودة', en: 'Roundtrip transport' },
  { icon: 'utensils', ar: 'وجبة غداء عائلية',    en: 'Family lunch' },
  { icon: 'user',     ar: 'مرشد محترف',          en: 'Professional guide' },
  { icon: 'pool',     ar: 'مياه ومشروبات',       en: 'Water & drinks' },
  { icon: 'shield',   ar: 'تأمين شامل',          en: 'Full insurance' },
];

const ACTIVITY_INCLUDES = [
  { icon: 'sparkle', ar: 'المعدات الكاملة',       en: 'All equipment' },
  { icon: 'user',    ar: 'مدرب معتمد',             en: 'Certified instructor' },
  { icon: 'shield',  ar: 'تعليمات السلامة',       en: 'Safety briefing' },
  { icon: 'eye',     ar: 'صور وفيديوهات تذكارية', en: 'Photos & videos' },
];

const BEACH_FACILITIES = [
  { icon: 'sun',      ar: 'مظلات وكراسي',    en: 'Umbrellas & loungers' },
  { icon: 'key',      ar: 'كابينات تبديل',   en: 'Changing rooms' },
  { icon: 'utensils', ar: 'مطعم على الشاطئ', en: 'Beachfront dining' },
  { icon: 'shield',   ar: 'منقذ معتمد',       en: 'Certified lifeguard' },
  { icon: 'parking',  ar: 'موقف مجاني',       en: 'Free parking' },
  { icon: 'pool',     ar: 'حمام سباحة أطفال', en: "Kids' pool" },
];

const TRIP_EXTRAS = {
  t1: { group_size_ar: 'حتى ١٢ فرد', group_size_en: 'Up to 12 people', meeting_point_ar: 'مارينا مراسي - البوابة الرئيسية', meeting_point_en: 'Marassi Marina - main gate' },
  t2: { group_size_ar: 'حتى ٨ أفراد', group_size_en: 'Up to 8 people',  meeting_point_ar: 'فندق هيلتون العلمين',           meeting_point_en: 'Hilton El Alamein lobby' },
  t3: { group_size_ar: 'حتى ٢٥ فرد', group_size_en: 'Up to 25 people', meeting_point_ar: 'المتحف الحربي، العلمين',         meeting_point_en: 'El Alamein War Museum' },
  t4: { group_size_ar: 'حتى ٦ أفراد', group_size_en: 'Up to 6 people',  meeting_point_ar: 'ميدان مرسى مطروح',               meeting_point_en: 'Marsa Matrouh main square' },
};

const ACTIVITY_EXTRAS = {
  ac1: { duration_ar: 'يوم كامل', duration_en: 'Full day', age_ar: '٤+ سنوات',  age_en: 'Ages 4+',  level_ar: 'لكل الأعمار',  level_en: 'All ages' },
  ac2: { duration_ar: '٤ ساعات',  duration_en: '4 hours',  age_ar: 'كل الأعمار', age_en: 'All ages', level_ar: 'بدون خبرة',    level_en: 'No experience' },
  ac3: { duration_ar: '٣ ساعات',  duration_en: '3 hours',  age_ar: '٨+ سنوات',  age_en: 'Ages 8+',  level_ar: 'متوسط',         level_en: 'Moderate' },
  ac4: { duration_ar: '٢ ساعة',   duration_en: '2 hours',  age_ar: '١٢+ سنة',   age_en: 'Ages 12+', level_ar: 'مبتدئ',        level_en: 'Beginner-friendly' },
};

const BEACH_EXTRAS = {
  b1: { best_time_ar: 'يونيو - سبتمبر', best_time_en: 'Jun - Sep', sand_ar: 'رمل أبيض ناعم', sand_en: 'Soft white sand' },
  b2: { best_time_ar: 'مايو - أكتوبر',  best_time_en: 'May - Oct', sand_ar: 'لاجون هادئ',    sand_en: 'Calm lagoon' },
  b3: { best_time_ar: 'مايو - أكتوبر',  best_time_en: 'May - Oct', sand_ar: 'مياه فيروزية',  sand_en: 'Turquoise water' },
  b4: { best_time_ar: 'يونيو - سبتمبر', best_time_en: 'Jun - Sep', sand_ar: 'خليج محمي',     sand_en: 'Sheltered bay' },
};

Object.values(LISTINGS.trips).forEach((t) => Object.assign(t, { category: 'trips' }, TRIP_EXTRAS[t.id] || {}));
Object.values(LISTINGS.activities).forEach((a) => Object.assign(a, { category: 'activities' }, ACTIVITY_EXTRAS[a.id] || {}));
Object.values(LISTINGS.beaches).forEach((b) => Object.assign(b, { category: 'beaches' }, BEACH_EXTRAS[b.id] || {}));
Object.values(LISTINGS.stays).forEach((s) => Object.assign(s, { category: 'stays' }));

window.RAYA_DATA = {
  LISTINGS, CATEGORIES, DESTINATIONS,
  AMENITIES, HOUSE_RULES,
  TRIP_INCLUDES, ACTIVITY_INCLUDES, BEACH_FACILITIES,
  placeholderImg,
};
