// LUXOMES — Data (DE / EN)

// Real LUXOMES apartment photos from the Hostaway booking-engine CDN.
// Sourced from luxomes.holidayfuture.com on 2026-05-10. CDN handles resize/format.
const HF = (path) => `https://bookingenginecdn.hostaway.com/listing/56353-${path}?width=1600&quality=80&format=webp&v=2`;

const PHOTO = {
  // Ingolstadt
  ingolstadt_4p_a:        HF("148176-RO1Zz1HJjFS3I--nYr0tBR--Dt8s7UNKl1zjhgIVsybZc-63fa217b86425"),
  ingolstadt_4p_b:        HF("148176-i1JYR-XnEZMdXSO4rqRdbjM3B92B5APDU5dt4aUqjL8-63fa0585ef062"),
  // Studio Apartment (148178) — 4 curated photos covering bed/sofa, wide overview, kitchen, bath.
  ingolstadt_design_a:    HF("148178-LY3zutI-fa0QHqDUkGAp8GvTWCh33FQ7FnVhaWUUGAw-63fa05b264433"),     // hero — bed + yellow chair
  ingolstadt_design_b:    HF("148178-PgTfsbB6hif-kSZGDvjzOdoeZpqPfyOwVZUv9jd74Xw-63fa05c8f2de7"),     // studio wide overview w/ window
  ingolstadt_design_c:    HF("148178-8iZYmsIJS58W8Z-6KHyY99xRp8P9JZJhLE2nyAb1Kfc-63fa218ee2fe1"),     // kitchen
  ingolstadt_design_d:    HF("148178-2KgvadKvaEOrVHZaUmmNy2XFvJJJ6NLbGViw-h3K2-0-63fa05c5cc1d9"),     // bath w/ shower
  ingolstadt_stylish_a:   HF("148179-Hm649F8HDTo4xk9gKZh731kGNOuDGTJJ2y7-lkS2mSY-63fa05dfdea10"),
  ingolstadt_stylish_b:   HF("148179-BQyKAK3GLcHKFGJ4eiSz1pP--C2zSzVnryWYccIJTIWA-63fa05e1e77d0"),
  ingolstadt_stylish_c:   HF("148179-hhNDV8--o5fJI1ghrIu0Jg2A--HGLFfT4D0lbnpsRiPuY-63fa05e4ecd69"),
  ingolstadt_stylish_d:   HF("148179-hxkxwNZiNNXrtOYSzPurMO7DVlC3bn4sIEgzKZ0nCbE-63fa21942bbf7"),
  ingolstadt_stylish_e:   HF("148179-c--qG4elcfGiwMIQgGo2Jj8m1NZ6TsF8Gb3TeNMSD--yU-63fa05ea88874"),
  // Nürnberg
  nuernberg_room1_a:      HF("148384-CbK-EMSiabigwHgOzx--KFkaGMgq--XdBuPUKOI09b6j8-6403889c81e91"),
  nuernberg_room1_b:      HF("148384-A61z2MEcYH0DjgGqfzG950DQAunjk0oAzTEO9VjnuAw-640388a310150"),
  nuernberg_room3_a:      HF("148387--3SzVxIPaLrhECGW34LPSt5QUglCf5jo58cFPJNOrkI-64038a39ad39d"),
  nuernberg_room3_b:      HF("148387-DqStDHWsAFLYP4eAHmG08MdN4ixKtVDioi6ASCDGg9g-64038a3fb9db6"),
  nuernberg_room8_a:      HF("148393---1M7Loca3VxIS1kXLQQnhXQFtrXdCQrI-richuuniAg-63fcc0c84c897"),
  nuernberg_room8_b:      HF("148393-6xOG5-lJRPh5xcFi75Vm580AIxnbn1wHYk--IB0ipNiQ-63fcc0cdf3783"),
  // ⚠️ Listing 166431 ("Design Apartment for 4") wurde ursprünglich fälschlich als Nürnberg getaggt.
  // Sie zeigt tatsächlich eine Ingolstadt-Wohnung. Hier umbenannt und in den Ingolstadt-Block verschoben.
  // Listing 148177 (echte Nürnberg Design Apartment) hat eigene Fotos in assets/nuernberg/ (siehe unten).
  ingolstadt_design_4p_a:  HF("166431-Vgak9LTYIhBy1FPlFxmFSre8am-2CyuqIctHjA-z0Co-6460f66d267d9"),
  ingolstadt_design_4p_b:  HF("166431-6PKv5MJPZEN0YnV9--FP--hMp8MG2A-dG2hFoAX54DV7Y-6460dc29d523a"),

  // Nürnberg Design Apartment (Listing 148177) — locally-hosted photos from old WordPress site.
  // Survives the site teardown because they're bundled with the new deployment.
  nuernberg_design_exterior:  "/assets/nuernberg/IMG_0414.jpg",
  nuernberg_design_bed:       "/assets/nuernberg/IMG_0553.jpg",
  nuernberg_design_bed_desk:  "/assets/nuernberg/IMG_0541.jpg",
  nuernberg_design_dining:    "/assets/nuernberg/DSC02216.jpg",
  nuernberg_design_dining2:   "/assets/nuernberg/DSC02226.jpg",
  nuernberg_design_living:    "/assets/nuernberg/DSC02260.jpg",
  nuernberg_design_kitchen:   "/assets/nuernberg/DSC02266.jpg",
  nuernberg_design_bath:      "/assets/nuernberg/DSC02334.jpg",
  nuernberg_design_balcony:   "/assets/nuernberg/DSC02206.jpg",
  nuernberg_design_detail:    "/assets/nuernberg/IMG_0519.jpg",
  nuernberg_design_extra1:    "/assets/nuernberg/IMG_0549.jpg",
  nuernberg_design_extra2:    "/assets/nuernberg/IMG_0535.jpg",

  // Humboldtstraße 23 Aparthotel (Nürnberg) — Lightroom-edited photos by user, 2026-05-13.
  // 28 photos curated into 4 buckets: XL rooms, L rooms, S rooms, common areas.
  humboldt_xl_1:    "/assets/humboldt/XL/DSC02666.jpg",
  humboldt_xl_2:    "/assets/humboldt/XL/DSC02667.jpg",
  humboldt_xl_3:    "/assets/humboldt/XL/DSC02670.jpg",
  humboldt_xl_4:    "/assets/humboldt/XL/DSC02671.jpg",
  humboldt_xl_5:    "/assets/humboldt/XL/DSC02673.jpg",
  humboldt_xl_6:    "/assets/humboldt/XL/DSC02689.jpg",
  humboldt_xl_7:    "/assets/humboldt/XL/DSC02698.jpg",
  humboldt_xl_8:    "/assets/humboldt/XL/DSC02712.jpg",
  humboldt_xl_9:    "/assets/humboldt/XL/DSC02713.jpg",
  humboldt_xl_10:   "/assets/humboldt/XL/DSC02715.jpg",
  humboldt_xl_11:   "/assets/humboldt/XL/XL_new1.jpg",

  // Ingolstadt Kanalstraße 1c — Tropisches Altstadtapartment (2. OG) + Streetart Altstadtapartment (3. OG).
  // Both 115 m², 3-rooms, 8 guests. Photos copied from Drive 2026-05-15.
  ingolstadt_tropisch_1:    "/assets/ingolstadt/tropisch/DSC00174.jpg",   // Wohnzimmer mit grünen Samtsofas
  ingolstadt_tropisch_2:    "/assets/ingolstadt/tropisch/DSC00156.jpg",   // Flur mit Hängesessel-Reflexion
  ingolstadt_tropisch_3:    "/assets/ingolstadt/tropisch/DSC00158.jpg",
  ingolstadt_tropisch_4:    "/assets/ingolstadt/tropisch/DSC00162.jpg",
  ingolstadt_tropisch_5:    "/assets/ingolstadt/tropisch/DSC00166.jpg",
  ingolstadt_tropisch_6:    "/assets/ingolstadt/tropisch/DSC00176.jpg",
  ingolstadt_tropisch_7:    "/assets/ingolstadt/tropisch/DSC00182.jpg",
  ingolstadt_tropisch_8:    "/assets/ingolstadt/tropisch/DSC00186.jpg",
  ingolstadt_tropisch_9:    "/assets/ingolstadt/tropisch/DSC00190.jpg",
  ingolstadt_tropisch_10:   "/assets/ingolstadt/tropisch/DSC00191.jpg",
  ingolstadt_tropisch_11:   "/assets/ingolstadt/tropisch/DSC00205.jpg",
  ingolstadt_tropisch_12:   "/assets/ingolstadt/tropisch/DSC00208.jpg",
  ingolstadt_tropisch_13:   "/assets/ingolstadt/tropisch/DSC00246.JPG",
  ingolstadt_tropisch_14:   "/assets/ingolstadt/tropisch/DSC00281.jpg",
  ingolstadt_tropisch_15:   "/assets/ingolstadt/tropisch/DSC00152.jpg",
  ingolstadt_tropisch_16:   "/assets/ingolstadt/tropisch/DSC00059.jpg",

  ingolstadt_streetart_1:   "/assets/ingolstadt/streetart/DSC00043.jpg",  // Wohnzimmer mit Holzbalken (Hero)
  ingolstadt_streetart_2:   "/assets/ingolstadt/streetart/DSC00006.jpg",  // Esstisch mit Holzbalken
  ingolstadt_streetart_3:   "/assets/ingolstadt/streetart/DSC00008.jpg",
  ingolstadt_streetart_4:   "/assets/ingolstadt/streetart/DSC00018.jpg",
  ingolstadt_streetart_5:   "/assets/ingolstadt/streetart/DSC00019.jpg",
  ingolstadt_streetart_6:   "/assets/ingolstadt/streetart/DSC00021.jpg",
  ingolstadt_streetart_7:   "/assets/ingolstadt/streetart/DSC00022.jpg",
  ingolstadt_streetart_8:   "/assets/ingolstadt/streetart/DSC00030.jpg",
  ingolstadt_streetart_9:   "/assets/ingolstadt/streetart/DSC00047.jpg",
  ingolstadt_streetart_10:  "/assets/ingolstadt/streetart/DSC00052.jpg",
  ingolstadt_streetart_11:  "/assets/ingolstadt/streetart/DSC00060.jpg",
  ingolstadt_streetart_12:  "/assets/ingolstadt/streetart/DSC00065.jpg",
  ingolstadt_streetart_13:  "/assets/ingolstadt/streetart/DSC00066.jpg",
  ingolstadt_streetart_14:  "/assets/ingolstadt/streetart/DSC00070.jpg",
  ingolstadt_streetart_15:  "/assets/ingolstadt/streetart/DSC00079.jpg",
  ingolstadt_streetart_16:  "/assets/ingolstadt/streetart/DSC00086.jpg",
  humboldt_l_1:     "/assets/humboldt/L/DSC02681.jpg",
  humboldt_l_2:     "/assets/humboldt/L/DSC02682.jpg",
  humboldt_l_3:     "/assets/humboldt/L/DSC02684.jpg",
  humboldt_l_4:     "/assets/humboldt/L/DSC02693.jpg",
  humboldt_l_5:     "/assets/humboldt/L/DSC02694.jpg",
  humboldt_l_6:     "/assets/humboldt/L/DSC02695.jpg",
  humboldt_s_1:     "/assets/humboldt/S/DSC02674.jpg",
  humboldt_s_2:     "/assets/humboldt/S/DSC02675.jpg",
  humboldt_s_3:     "/assets/humboldt/S/DSC02677.jpg",
  humboldt_s_4:     "/assets/humboldt/S/S_new1.jpg",
  humboldt_s_5:     "/assets/humboldt/S/S_new2.jpg",
  humboldt_s_6:     "/assets/humboldt/S/S_new3.jpg",
  humboldt_common_1: "/assets/humboldt/common/DSC02658.jpg",
  humboldt_common_2: "/assets/humboldt/common/DSC02659.jpg",
  humboldt_common_3: "/assets/humboldt/common/DSC02660.jpg",
  humboldt_common_4: "/assets/humboldt/common/DSC02701.jpg",
  humboldt_common_5: "/assets/humboldt/common/DSC02702.jpg",
  humboldt_common_6: "/assets/humboldt/common/DSC02703.jpg",
  humboldt_common_7: "/assets/humboldt/common/DSC02705.jpg",
  humboldt_common_8: "/assets/humboldt/common/DSC02706.jpg",
  humboldt_common_9: "/assets/humboldt/common/DSC02708.jpg",
  // Generic Altstadt — used for München (no dedicated München listings on Hostaway yet)
  oldtown_8p_a:           HF("166429-pXzkXzYiWRlzW5ic-XIMmWy5pB5Oc44U6lXRp5mNN-U-6460dad944a1a"),
  oldtown_8p_b:           HF("166429-CVPeCL2RiXRQt5Ac-tA--dhY3Uf0GL55QPwugPZtOdyE-6460dadd3953d"),
  oldtown_7p_a:           HF("263033-CPD5-8Yug59TOXbkEKaqxQKx4HYrZFR7Q-vEYJHj5Qg-66c5d5bf293fe"),
  oldtown_7p_b:           HF("263033-ITi--WitfagLpoblsTSrHjBofP1-t0vuS7q1u3p2RSpk-66c5d5466e8f0"),
  // Vilshofen 1-Zimmer Apartment (306206, 4 guests) — was previously misnamed "modern_altstadt_4p"
  // because of an early data-entry mistake; this listing is actually in Vilshofen, not Munich.
  // 5 curated photos: full-overview hero, living, bedroom, kitchen, bath.
  vilshofen_1br_a:        HF("306206-TmzpLPg-HMSvxal2IUEw2h5oQQR05HSc7mz8W0cHjX4-66da22110e41e"),     // hero — living + dining + kitchen overview
  vilshofen_1br_b:        HF("306206-vhGGwwpFAi72hottXK2qV3LKd-chflouKjCmzCIioMQ-66da21f4e9b4c"),     // living w/ sofa + blue armchair
  vilshofen_1br_c:        HF("306206-3msJ20EX9rVVO2jXes1lo2T6Ei94wckaN4oxXCH-ApI-66da220979da9"),     // bedroom w/ blue curtains
  vilshofen_1br_d:        HF("306206-Grq9wcHnl2o6gILm01hCz7pS79ycZU30MnGw0ixjhEE-66da2226407cf"),     // kitchen (green-black cabinets)
  vilshofen_1br_e:        HF("306206-SFDSPKdHRCieU77c12f1Y91GCYgJTbQ9LAEJpRU0yb8-66da21e737838"),     // bath w/ shower
  // Modernes Apartment (441019) — 5 curated photos covering all rooms: hero, living, kitchen, bed, bath.
  modern_4p_a:            HF("441019-8Zyl746ZtAiCvPHd2Fc5TAlZvr-NYtNcjK4Dowkjnqw-68e78c2f8f2ef"),     // hero — living + dining
  modern_4p_b:            HF("441019-wnm50Hc534uKQpFR-rypo2gnQGlwTWXQdERONh14CG4-68e78c67d9c00"),     // living room wide w/ window
  modern_4p_c:            HF("441019-ePb5gSQBqLn0N2AGTbdYW1IH-Hr--lxVIfrca6AI-Ok0-68e78c598a0c6"),     // kitchen main view
  modern_4p_d:            HF("441019-R1VPD1HfP1svUPx4wywwsSW7uPAaDEMDTZX1h6pQPgc-68e78c53c7268"),     // bedroom full ("lets stay in bed")
  modern_4p_e:            HF("441019-wSF5OJF8YOl0t5YuDMq--VrCReXUhLwDpDy--56LcMr7c-68e78c6fb70ea"),     // bath w/ shower
  // Vilshofen an der Donau
  // Studio Apartment (306211) — 4 photos: hero overview, living, kitchen, bath.
  vilshofen_studio_a:     HF("306211-----rQk-ULM0mEeqU8IYHBe1ruW892S4LaqRmKJbIVgEA-66dcbe6a7c19a"),     // hero — bed + living overview
  vilshofen_studio_b:     HF("306211-E156hbvRjQo8GdYBHqathh2iFw9uByILQL13hZS-gTY-66dcbe6e2588a"),       // living w/ Netflix + sofa
  vilshofen_studio_c:     HF("306211-NioAitaLMhWMsIlzoebNzC-7ZV0BNOEWeKZmL9ckKxA-66dcbe80b5525"),       // kitchen (green-grey)
  vilshofen_studio_d:     HF("306211-dHnwonOeZ1EN6UZHkqH1skHJehw8n8L5-xJyyzDvavQ-66dcbe773eab4"),       // bath w/ shower
  // Stadtblick Apartment (421485) — large 8-guest 95m² apartment, 6 photos curated per user feedback.
  // Selection mirrors holidayfuture.com hero grid (sunny living, hallway, TV-living, dorm bedroom)
  // plus kitchen + bath for full coverage.
  vilshofen_2br_a:        HF("421485-xQb5W0lfeUFySGJLaVw8oHc5I6BHO6UlKkUyEVsPK7A-68a39ad08d0eb"),       // hero — sunny living w/ blue sofa + botanical art
  vilshofen_2br_b:        HF("421485-af7dBUnPayt7XqnpA7HSNWeW6dtW4Q7ixRHMwyVJFgc-68a39ada07ca2"),       // hallway w/ view to dining
  vilshofen_2br_c:        HF("421485-TV5624dPpfNlFJ5sJ6hhTLbww3BS4FXO9GONqoiXe--8-68a39ae3be6e6"),       // bedroom — multi-bed view w/ Bauhaus posters + blue curtains (user-selected)
  vilshofen_2br_d:        HF("421485-uFMkZNzD0p0S1Sc0--mB-PpiAqvr1TNcGiv--AXbtBA--k-68a39b31c419b"),       // bedroom w/ single beds (group sleeping)
  vilshofen_2br_e:        HF("421485---BZqqmHwnW7aM1HGa1BemuM3eP0tCX-pNljWF7gNS4Y-68a39aec7ad0d"),       // kitchen (green-grey w/ window)
  vilshofen_2br_f:        HF("421485-hh37AZ5QzjYERdcVH5W6EhphrLQjXiXsDby--pQHq3u4-68a39af93e7fe"),       // bath "get naked" w/ shower
  // Penthouse (421519) — 6 photos in user-specified order: hero → living → bedrooms → kitchen → dining.
  // Hero reverted to L--bIGF9oF per user request ("das erste highlight foto war super, bitte wieder zurück").
  vilshofen_penthouse_a:  HF("421519-L--bIGF9oFAYG6QUOKftRk9fkzmIVsHQbPKZ4mq4pGFg-68a3a72b3ff39"),       // hero — rooftop terrace overview (original highlight)
  vilshofen_penthouse_b:  HF("421519-U2QOQ89AEo6t--EoPoWjTEECbas5HDgUos--rG7LHnN6k-68a3a7a36da16"),       // living w/ blue sofa + TV
  vilshofen_penthouse_c:  HF("421519-KklS2DDnyYvzXq280n1KB7NCxb2CPcrIiKXdTxABUO4-68a3a7568f70c"),       // bedroom 1 (king + single bed)
  vilshofen_penthouse_d:  HF("421519-nRJ0gd6v8KoYbB8JbpnSfQ--EiMtQS1p2vNRojtZF--jk-68a3a75fd1647"),       // bedroom 2 (double bed cozy)
  vilshofen_penthouse_e:  HF("421519-Y9A7pE2R5OzXD6CnESoaMbaIBW8tLvTaiMozWjfeyRw-68a3a7460ed88"),       // kitchen
  vilshofen_penthouse_f:  HF("421519-qzDalyTof1WivpPNG450lesCUamXRWi5cv6LjgUNmVc-68a3a79a37804"),       // dining 6-seater
  // München — locally-hosted photos rescued from the old WordPress site (assets/munich/).
  // Survive the old-site teardown because they are bundled with the new deployment.
  muenchen_bed_desk:      "/assets/munich/IMG_2012.jpg",
  muenchen_bed_dining:    "/assets/munich/IMG_2017.jpg",
  muenchen_dining:        "/assets/munich/IMG_2021.jpg",
  muenchen_bedroom_tv:    "/assets/munich/IMG_2023.jpg",
  muenchen_kitchen:       "/assets/munich/IMG_2032.jpg",
  muenchen_entry:         "/assets/munich/IMG_2050.jpg",
  muenchen_bath:          "/assets/munich/IMG_2042.jpg",
  muenchen_exterior:      "/assets/munich/exterior.jpg",

  // Team portraits — extracted from luxomes.com WordPress site (2026-05-19).
  // Black-and-white headshots in consistent style.
  team_maksat:    "/assets/team/maksat.jpg",
  team_santore:   "/assets/team/santore.jpg",
  team_phillip:   "/assets/team/phillip.jpg",
  team_azamat:    "/assets/team/azamat.jpg",
};

// Stable semantic aliases — page files import these. Swap a photo by repointing here only.
const IMG = {
  // Hero / atmospheric backgrounds
  lobby:     PHOTO.vilshofen_penthouse_a,
  mgmtHero:  PHOTO.ingolstadt_tropisch_1,    // Management page hero — tropical Ingolstadt (green velvet sofas), high-res local
  hero1:     PHOTO.oldtown_7p_a,
  hero2:     PHOTO.vilshofen_1br_a,
  // Hero split-layout — kept on Unsplash by user request: bright editorial styling looked stronger
  // than the production photos for the very first impression. Easy to swap later if better
  // hero-grade photography becomes available.
  // Hero — main is a real LUXOMES apartment photo (Ingolstadt Studio — yellow chair,
  // blue accent wall, big window). Accent is a couple cooking together (Unsplash) —
  // home-like / feel-at-home vibe.
  heroMain:    PHOTO.ingolstadt_design_b,
  heroAccent:  "https://images.unsplash.com/photo-1556909114-f6e7ad7d3136?w=900&q=80&auto=format&fit=crop",
  // Apartment thumbnails (popular section)
  apt1:      PHOTO.nuernberg_design_bed,    // Nürnberg "Design Apartment" (148177) — real photo
  apt2:      PHOTO.ingolstadt_design_a,
  apt3:      PHOTO.ingolstadt_stylish_a,
  apt4:      PHOTO.ingolstadt_4p_a,
  apt5:      PHOTO.muenchen_bed_desk,       // München "Executive Suite" — real München photo
  apt6:      PHOTO.nuernberg_room3_a,
  // Interiors (benefits / management / about)
  interior1: PHOTO.nuernberg_design_dining,
  interior2: PHOTO.ingolstadt_design_b,
  interior3: PHOTO.oldtown_8p_a,
  interior4: PHOTO.vilshofen_1br_a,
  interior5: PHOTO.oldtown_7p_b,
  // Detail shots
  bed:       PHOTO.vilshofen_2br_c,
  kitchen:   PHOTO.oldtown_8p_b,
  desk:      PHOTO.modern_4p_a,
  key:       PHOTO.nuernberg_room1_a,
  city1:     PHOTO.nuernberg_room1_b,
  city2:     PHOTO.vilshofen_studio_b,
  // Group/team atmospheric image (kept as a generic placeholder for non-About contexts).
  team:      PHOTO.team_maksat,
};

// Site-wide config — values to swap before going live.
const CONFIG = {
  // PREFERRED: Google Apps Script Web App endpoint.
  // 1) Open scripts/luxomes-form-handler.gs and follow the setup instructions.
  // 2) After deploying as a Web App, paste the URL here (looks like:
  //    https://script.google.com/macros/s/AKfycb…/exec)
  // 3) Submissions land in the LUXOMES Google Sheet + an email to info@luxomes.com.
  appsScriptEndpoint: "https://script.google.com/macros/s/AKfycbyhuQlueHHbsnzNjiW77gvTLuI4NXExVc8MYt3dMpqZ1CYbNiu7Xat8zAcO0antIoH1/exec",
  // FALLBACK: Formspree form endpoint. Only used if appsScriptEndpoint is empty.
  // Sign up at formspree.io with info@luxomes.com, create a new form,
  // and replace YOUR_FORM_ID with the issued ID (e.g. "xrgwnvpa").
  formspreeEndpoint: "https://formspree.io/f/YOUR_FORM_ID",
  // Reply-to email shown to the user
  contactEmail: "info@luxomes.com",
};
// Expose CONFIG to window so other modules (form handlers) can read it.
if (typeof window !== "undefined") { window.CONFIG = CONFIG; }

const COPY = {
  de: {
    nav: { home: "Home", stays: "Standorte", management: "Verwaltung", realestate: "Real Estate", about: "Über uns", contact: "Kontakt", book: "Buchen" },
    common: { readMore: "Mehr erfahren", bookNow: "Unterkunft buchen", contact: "Kontakt aufnehmen", from: "ab", night: "Nacht", guests: "Gäste", beds: "Betten" },
    home: {
      heroEyebrow: "Serviced Apartments · Deutschland",
      heroTitle: "Serviced Apartments\nfür Deinen Aufenthalt.",
      heroLead: "Feel like Home — designorientierte Serviced Apartments in München, Nürnberg, Ingolstadt und Vilshofen. Digitaler Check-in, Top-Lagen, kompromisslose Qualität.",
      widgetHeadline: "Verfügbarkeit prüfen",
      widgetSub: "Finde Dein Apartment — direkt buchen, ohne Umwege.",

      // Audience routing — three clear paths visible right after the hero
      audienceEyebrow: "Wer bist Du?",
      audienceTitle: "Zwei klare Wege.",
      audienceLead: "Du bist Eigentümer, Investor oder Gastgeber? Wähle Deinen Weg, damit Du schnell zum Wesentlichen kommst.",
      audienceOwnerEyebrow: "Für Eigentümer & Investoren",
      audienceOwnerTitle: "Du hast ein Objekt.",
      audienceOwnerBody: "Langfristiger Mietvertrag mit garantierter Monatsmiete (10 + 10 Jahre). Wir mieten Dein Objekt — Du bekommst monatlich überwiesen, ohne Vermarktungs- oder Leerstands-Risiko.",
      audienceOwnerCta: "Real Estate ansehen",
      audienceHostEyebrow: "Für Gastgeber",
      audienceHostTitle: "Du verwaltest selbst.",
      audienceHostBody: "Du betreibst bereits eine FeWo, Pension oder Aparthotel — wir übernehmen die professionelle Vermarktung und Operations und steigern Deinen Umsatz spürbar.",
      audienceHostCta: "Verwaltung ansehen",

      popularEyebrow: "Unterkünfte",
      popularTitle: "Moderne Design Apartments",
      popularLead: "Unsere LUXOMES Unterkünfte befinden sich in Top-Lagen und sind bestens an den öffentlichen Nahverkehr angebunden. Mit unserem digitalen Zugangssystem kommst Du schnell und einfach in Deine Suite.",
      popularCta: "Alle Unterkünfte ansehen",

      benefitsEyebrow: "Warum LUXOMES",
      benefitsTitle: "Vorteile, die Du sofort spürst",
      benefitsLead: "Jedes Detail folgt einem Ziel — Aufenthalte, die sich mühelos, modern und persönlich anfühlen.",

      premiumEyebrow: "Premium Apartments",
      premiumTitle: "Entworfen,\num zu bleiben.",
      premiumLead: "Für Reisende, die eine Unterkunft suchen, die sich wie zu Hause anfühlt, bietet LUXOMES flexibles, komfortables Wohnen mit einwandfreiem Service. Unsere Serviced Apartments sind designorientiert und technisch durchdacht ausgestattet, um Schlaf und Produktivität zu optimieren.",
      premiumLead2: "Ideal für alle, die länger bleiben – ob Geschäftsreise, Projekt oder Übergangsphase. Für Unternehmen bieten wir zusätzlich individuell anpassbare Arbeitsbereiche.",

      processEyebrow: "So funktioniert's",
      processTitle: "Drei Schritte bis zur Ankunft",

      faqEyebrow: "Häufige Fragen",
      faqTitle: "Alles, was Du wissen musst",

      contactEyebrow: "Sprich mit uns",
      contactTitle: "Wir freuen uns,\nvon Dir zu hören.",
      contactLead: "Du hast Fragen oder Anliegen? Schicke uns eine Nachricht und wir melden uns umgehend.",

      ctaBannerTitle: "Wir setzen neue Standards\nin der Immobilienbranche.",
      ctaBannerText: "Sieh Dir an, was eine Partnerschaft mit LUXOMES bringt.",
      ctaBannerBtn: "Partner-Info herunterladen",
    },
    mgmt: {
      heroEyebrow: "Verwaltung · Für bestehende Gastgeber",
      heroTitle: "Mehr Umsatz aus\nDeinem Bestandsobjekt.",
      heroLead: "Du hast schon eine FeWo, Pension oder ein Aparthotel — wir holen mehr raus.",
      heroBody: "Schwankende Auslastung, mittelmäßige Bewertungen, viel Aufwand für wenig Ertrag? LUXOMES übernimmt die professionelle Vermarktung und Verwaltung Deines bestehenden Objekts — datenbasiert, automatisiert, transparent. Im Schnitt erreichen wir 75–85% Auslastung und steigern den Umsatz unserer Partner um über 30%.",
      heroCta: "Kostenlose Objekt-Analyse anfragen",
      heroCtaSecondary: "Beratungsgespräch vereinbaren",

      whyEyebrow: "Warum LUXOMES",
      whyTitle: "Was wir besser machen\nals Self-Hosting.",

      processEyebrow: "Unser Prozess",
      processTitle: "Vom Erstgespräch\nzur erfolgreichen Vermietung.",
      processLead: "Sechs Schritte, ein Partner, dauerhaft mehr Ertrag. Klick durch die Phasen für Details.",

      servicesEyebrow: "Leistungspakete",
      servicesTitle: "Für jeden das richtige Paket.",
      servicesSub: "Von Vermarktung-only bis Rundum-Sorglos. Faire, gestaffelte Provisionen.",
      servicesLead: "Wichtig: Aufgaben, die direkt Deinen Umsatz beeinflussen (Pricing, Channels, Bewertungen), gehören in Profi-Hände. Vor-Ort-Tätigkeiten kannst Du selbst übernehmen — und sparst Provision. Du bekommst genau das Paket, das zu Dir passt.",

      feeEyebrow: "Rechenbeispiel",
      feeTitle: "Was bleibt Dir am Ende?",
      feeLead: "Stell die Slider ein — wir zeigen Dir live, was Dein Objekt mit LUXOMES generiert.",

      leadEyebrow: "Kostenloses Tool",
      leadTitle: "Wie viel ist Dein Objekt wert?",
      leadLead: "Trage Stadt und Größe ein — wir berechnen sofort eine realistische Schätzung auf Basis unserer Stadt-Benchmarks. Für den detaillierten, auf Deine Adresse zugeschnittenen Bericht erhältst Du innerhalb 24h eine persönliche Auswertung von unserem Team.",
      leadFormAddress: "Adresse oder Stadt",
      leadFormSize: "Größe (m²)",
      leadFormStatus: "Aktueller Status",
      leadFormStatusOpts: ["Steht leer", "Langzeit vermietet", "Bereits auf Airbnb/Booking", "Neu / noch nicht möbliert"],
      leadFormEmail: "E-Mail Adresse",
      leadFormPhone: "Telefon (optional)",
      leadFormSubmit: "Detail-Bericht anfragen",
      leadFormCalcCta: "Sofort-Schätzung berechnen",
      leadFormPromise: "Die Sofort-Schätzung basiert auf Marktdaten Deiner Stadt. Der detaillierte Bericht berücksichtigt Deine spezifische Adresse, Saisonalität und vergleichbare Objekte.",
      leadFormSuccess: "Danke! Wir melden uns innerhalb von 24h mit Deinem persönlichen Detail-Bericht.",
      leadEstimateLabel: "Geschätztes monatliches Potenzial",
      leadEstimateBasis: "Basis",
      leadEstimateHint: "Diese Schätzung gilt für ein gut vermarktetes Objekt mit unserem Premium-Tier und ist als Größenordnung zu verstehen. Für eine auf Deine Adresse zugeschnittene Analyse fülle das Formular aus.",

      modulesEyebrow: "Zusatzleistungen",
      modulesTitle: "Modularer Baukasten",
      modulesLead: "Ergänze Dein Verwaltungspaket um gezielte Einmalleistungen — z.B. wenn Du gerade übernommen hast oder neu positionieren willst.",

      finalTitle: "Bereit, mehr aus Deinem\nObjekt zu holen?",
      finalText: "Ob Du eine Pension optimierst, Dein Aparthotel neu aufstellst oder eine FeWo zum ersten Mal professionell vermarkten willst — wir analysieren, planen und betreiben mit Dir gemeinsam.",
      finalCta: "Kostenloses Beratungsgespräch buchen",
    },
    stays: {
      heroEyebrow: "Alle Unterkünfte",
      heroTitle: "Unterkünfte, die\nsich wie zuhause anfühlen.",
      heroLead: "Vom Design-Apartment in München bis zum modernen Studio-Apartment in Ingolstadt — alle LUXOMES Suiten auf einen Blick.",
      filters: { all: "Alle", nuernberg: "Nürnberg", ingolstadt: "Ingolstadt", muenchen: "München", vilshofen: "Vilshofen", guests2: "2 Gäste", guests4: "4+ Gäste" },
    },
    about: {
      heroEyebrow: "Über LUXOMES",
      heroTitle: "Feel like Home.\nSeit 2020.",
      heroLead: "LUXOMES ist ein deutsches Hospitality-Unternehmen mit einem klaren Anspruch: Wohnen auf Zeit soll sich nicht wie ein Hotel anfühlen — und auch nicht wie eine anonyme Wohnung. Sondern wie das eigene Zuhause, nur besser ausgestattet. Designorientiert, digital, persönlich.",
      storyTitle: "Aus einer Idee — ein Konzept,\ndas funktioniert.",
      storyBody1: "Wir haben LUXOMES 2020 gegründet, weil wir selbst genug davon hatten: austauschbare Hotelzimmer, lieblose Ferienwohnungen, mittelmäßiger Service. Wir wussten, dass es besser geht. Designorientierte Apartments in Top-Lagen, ein digitaler Check-in ohne Wartezeit, ein Team das wirklich erreichbar ist — und faire Preise, die zu dem passen, was Gäste tatsächlich bekommen.",
      storyBody2: "Heute betreiben wir Apartments in München, Nürnberg, Ingolstadt und Vilshofen, unterstützen Eigentümer bei der professionellen Verwaltung ihrer Objekte und erreichen dabei eine durchschnittliche Auslastung von 75–85%. Aus dem ursprünglichen Hospitality-Geschäft ist eine Plattform geworden — mit eigenen Standorten, Verwaltungspartnerschaften und einem stetig wachsenden Netzwerk aus Eigentümern, die uns vertrauen.",
      valuesTitle: "Was uns antreibt",
    },
    contact: {
      heroEyebrow: "Kontakt",
      heroTitle: "Wir freuen uns,\nvon Dir zu hören.",
      heroLead: "Ob Buchungsanfrage, Verwaltungsberatung oder allgemeine Fragen — wir melden uns umgehend.",
      formName: "Vollständiger Name",
      formEmail: "E-Mail Adresse",
      formPhone: "Telefon (optional)",
      formTopic: "Anliegen",
      formMessage: "Deine Nachricht",
      formSubmit: "Nachricht senden",
      topics: ["Buchungsanfrage", "Verwaltung / Management", "Partnerschaft", "Presse", "Sonstiges"],
    },
    footer: {
      tagline: "Feel like Home.",
      explore: "Entdecken",
      company: "Unternehmen",
      legal: "Rechtliches",
      followUs: "Folge uns",
      rights: "© 2026 LUXOMES GmbH · Alle Rechte vorbehalten",
    },
  },
  en: {
    nav: { home: "Home", stays: "Locations", management: "Management", realestate: "Real Estate", about: "About", contact: "Contact", book: "Book" },
    common: { readMore: "Learn more", bookNow: "Book your stay", contact: "Get in touch", from: "from", night: "night", guests: "guests", beds: "beds" },
    home: {
      heroEyebrow: "Serviced Apartments · Germany",
      heroTitle: "Serviced Apartments\nfor your stay.",
      heroLead: "Feel like Home — design-driven serviced apartments in Munich, Nuremberg, Ingolstadt and Vilshofen. Digital check-in, prime locations, uncompromising quality.",
      widgetHeadline: "Check availability",
      widgetSub: "Find your apartment — book direct, no detours.",

      // Audience routing
      audienceEyebrow: "Who are you?",
      audienceTitle: "Two clear paths.",
      audienceLead: "Owner, investor or host? Pick your path so you get to what matters fastest.",
      audienceOwnerEyebrow: "For owners & investors",
      audienceOwnerTitle: "You own a property.",
      audienceOwnerBody: "Long-term lease with guaranteed monthly rent (10 + 10 years). We lease your asset — you get paid every month, with no marketing or vacancy risk.",
      audienceOwnerCta: "Open Real Estate",
      audienceHostEyebrow: "For hosts",
      audienceHostTitle: "You manage on your own.",
      audienceHostBody: "You already run a holiday rental, guesthouse or aparthotel — we take over professional marketing and operations and meaningfully grow your revenue.",
      audienceHostCta: "Open Management",

      popularEyebrow: "Stays",
      popularTitle: "Modern design apartments",
      popularLead: "LUXOMES apartments sit in prime locations with excellent public transport links. With our digital access system you enter your suite quickly and seamlessly.",
      popularCta: "View all stays",

      benefitsEyebrow: "Why LUXOMES",
      benefitsTitle: "Benefits you feel right away",
      benefitsLead: "Every detail serves one purpose — stays that feel effortless, modern, and personal.",

      premiumEyebrow: "Premium Apartments",
      premiumTitle: "Designed\nto stay.",
      premiumLead: "For travelers looking for a place that feels like home, LUXOMES offers flexible, comfortable living with flawless service. Our serviced apartments are design-forward and tech-savvy — optimized for sleep and productivity.",
      premiumLead2: "Ideal for extended stays — business trips, projects, transitions. For companies we also offer customizable workspaces.",

      processEyebrow: "How it works",
      processTitle: "Three steps to arrival",

      faqEyebrow: "Frequently asked",
      faqTitle: "Everything you need to know",

      contactEyebrow: "Talk to us",
      contactTitle: "We'd love\nto hear from you.",
      contactLead: "Got questions? Send us a message and we'll get back to you promptly.",

      ctaBannerTitle: "Setting new standards\nin the real estate industry.",
      ctaBannerText: "Learn more about the benefits of partnering with LUXOMES.",
      ctaBannerBtn: "Download partner info",
    },
    mgmt: {
      heroEyebrow: "Management · For existing hosts",
      heroTitle: "Get more revenue from\nyour existing property.",
      heroLead: "Already running a vacation rental, pension or aparthotel — we unlock more.",
      heroBody: "Inconsistent occupancy, mediocre reviews, lots of effort for little return? LUXOMES takes over professional marketing and management of your existing property — data-driven, automated, transparent. On average we hit 75–85% occupancy and lift our partners' revenue by over 30%.",
      heroCta: "Request a free property analysis",
      heroCtaSecondary: "Book a consultation",

      whyEyebrow: "Why LUXOMES",
      whyTitle: "What we do better\nthan self-hosting.",

      processEyebrow: "Our process",
      processTitle: "From first call\nto a successful rental.",
      processLead: "Six steps, one partner, sustained revenue uplift. Click through the phases for details.",

      servicesEyebrow: "Service tiers",
      servicesTitle: "The right package for every owner.",
      servicesSub: "From marketing-only to fully managed. Fair, tiered commissions.",
      servicesLead: "Key principle: tasks that directly affect your revenue (pricing, channels, reviews) belong with professionals. Hands-on tasks you can keep — and save commission. You get exactly the package that fits your setup.",

      feeEyebrow: "Worked example",
      feeTitle: "What's left for you?",
      feeLead: "Drag the sliders — see live what your property would generate with LUXOMES.",

      leadEyebrow: "Free tool",
      leadTitle: "What's your property worth?",
      leadLead: "Enter city and size — we calculate an immediate realistic estimate based on our city benchmarks. For the detailed, address-specific report you receive a personal analysis from our team within 24 hours.",
      leadFormAddress: "Address or city",
      leadFormSize: "Size (sqm)",
      leadFormStatus: "Current status",
      leadFormStatusOpts: ["Vacant", "Long-term let", "Already on Airbnb/Booking", "New / not yet furnished"],
      leadFormEmail: "Email address",
      leadFormPhone: "Phone (optional)",
      leadFormSubmit: "Request detail report",
      leadFormCalcCta: "Calculate instant estimate",
      leadFormPromise: "The instant estimate is based on city market data. The detailed report factors in your specific address, seasonality and comparable properties.",
      leadFormSuccess: "Thank you! We'll be in touch within 24 hours with your personal detail report.",
      leadEstimateLabel: "Estimated monthly potential",
      leadEstimateBasis: "Basis",
      leadEstimateHint: "This estimate assumes a well-marketed property on our Premium tier and should be read as an order of magnitude. For an analysis tailored to your address, fill out the form.",

      modulesEyebrow: "Add-ons",
      modulesTitle: "Modular toolkit",
      modulesLead: "Add targeted one-off services to your management package — e.g. after taking over a property or rebranding.",

      finalTitle: "Ready to get more\nfrom your property?",
      finalText: "Whether you're optimising a pension, repositioning an aparthotel, or marketing a vacation rental professionally for the first time — we analyse, plan and operate it together with you.",
      finalCta: "Book a free consultation",
    },
    stays: {
      heroEyebrow: "All stays",
      heroTitle: "Stays that\nfeel like home.",
      heroLead: "From design apartments in Munich to modern studio apartments in Ingolstadt — every LUXOMES suite at a glance.",
      filters: { all: "All", nuernberg: "Nuremberg", ingolstadt: "Ingolstadt", muenchen: "Munich", vilshofen: "Vilshofen", guests2: "2 guests", guests4: "4+ guests" },
    },
    about: {
      heroEyebrow: "About LUXOMES",
      heroTitle: "Feel like Home.\nSince 2020.",
      heroLead: "LUXOMES is a German hospitality company with one clear ambition: extended stays should not feel like a hotel — and they should not feel like an anonymous apartment either. They should feel like home, just better equipped. Design-driven, digital, personal.",
      storyTitle: "From an idea —\nto a concept that works.",
      storyBody1: "We founded LUXOMES in 2020 because we had enough of it ourselves: interchangeable hotel rooms, soulless holiday rentals, mediocre service. We knew it could be done better. Design-driven apartments in prime locations, a digital check-in with zero wait, a team you can actually reach — and fair prices that match what guests really receive.",
      storyBody2: "Today we operate apartments in Munich, Nuremberg, Ingolstadt and Vilshofen, support owners with professional management of their properties, and achieve an average occupancy of 75–85%. What started as a pure hospitality business has grown into a platform — with own locations, management partnerships and a steadily expanding network of owners who trust us.",
      valuesTitle: "What drives us",
    },
    contact: {
      heroEyebrow: "Contact",
      heroTitle: "We'd love\nto hear from you.",
      heroLead: "Booking request, management consulting, or general questions — we'll get back to you quickly.",
      formName: "Full name",
      formEmail: "Email address",
      formPhone: "Phone (optional)",
      formTopic: "Topic",
      formMessage: "Your message",
      formSubmit: "Send message",
      topics: ["Booking request", "Management", "Partnership", "Press", "Other"],
    },
    footer: {
      tagline: "Feel like Home.",
      explore: "Explore",
      company: "Company",
      legal: "Legal",
      followUs: "Follow us",
      rights: "© 2026 LUXOMES GmbH · All rights reserved",
    },
  },
};

const APARTMENTS = [
  {
    id: "148177",
    name: { de: "Design Apartment", en: "Design Apartment" },
    city: "Nürnberg",
    district: { de: "Nordstadt", en: "Nordstadt" },
    guests: 4, beds: 2, bedType: "Kingsize",
    price: 140,
    image: PHOTO.nuernberg_design_bed,
    gallery: [PHOTO.nuernberg_design_bed, PHOTO.nuernberg_design_dining, PHOTO.nuernberg_design_living, PHOTO.nuernberg_design_exterior],
    desc: {
      de: "2-Zimmer Design Apartment für 4 Personen — separater Schlaf- und Wohnbereich, voll ausgestattete Küche, Esstisch für 6 und private Außenterrasse. Hochwertige Boxspringbetten, höhenverstellbarer Schreibtisch, Glasfaser-Internet. Ruhige Lage in Nürnberg-Nordstadt.",
      en: "2-room design apartment for 4 — separate sleeping and living areas, fully equipped kitchen, dining table for 6, and private outdoor terrace. Premium boxspring beds, height-adjustable desk, fibre internet. Quiet location in Nordstadt.",
    },
    tags: ["2 Zimmer", "Terrasse", "Küche", "Wifi"],
    link: "https://luxomes.holidayfuture.com/listings/148177?numberOfGuests=1&city=N%C3%BCrnberg",
  },
  {
    id: "148178",
    name: { de: "Design Studio", en: "Design Studio" },
    city: "Ingolstadt", district: { de: "Zentrum", en: "City center" },
    guests: 2, beds: 1, bedType: "Doppelbett",
    price: null,
    image: IMG.apt2,
    gallery: [IMG.apt2, IMG.interior2, IMG.desk],
    desc: {
      de: "Stilvolles Design Studio in zentraler Lage — ideal für Kurz- oder Langzeitaufenthalte in Ingolstadt.",
      en: "Stylish design studio in a central location — ideal for short or extended stays in Ingolstadt.",
    },
    tags: ["Studio", "Küche", "Wifi", "Netflix"],
    link: "https://luxomes.holidayfuture.com/listings/148178?numberOfGuests=1&city=Ingolstadt",
  },
  {
    id: "148179",
    name: { de: "Stylish neues Studio", en: "Stylish new Studio" },
    city: "Ingolstadt", district: { de: "Neubau", en: "New build" },
    guests: 2, beds: 1, bedType: "Doppelbett",
    price: 94,
    image: IMG.apt3,
    gallery: [IMG.apt3, IMG.interior3, IMG.bed],
    desc: {
      de: "LUXOMES — in diesem luxuriösen Studio findest Du alles für einen tollen Kurz- oder Langzeitaufenthalt in Ingolstadt.",
      en: "LUXOMES — this luxurious studio has everything you need for a great short or long stay in Ingolstadt.",
    },
    tags: ["Studio", "Küche", "Wifi", "Netflix"],
    link: "https://luxomes.holidayfuture.com/listings/148179?numberOfGuests=1&city=Ingolstadt",
  },
  {
    id: "148176",
    name: { de: "Geräumiges Studio", en: "Spacious Studio" },
    city: "Ingolstadt", district: { de: "Altstadt", en: "Old town" },
    guests: 4, beds: 2, bedType: "Betten",
    price: 109,
    image: IMG.apt4,
    gallery: [IMG.apt4, IMG.interior4, IMG.kitchen],
    desc: {
      de: "LUXOMES — geräumiges Studio mit flexibler Schlafsituation, perfekt für Familien oder kleine Teams.",
      en: "LUXOMES — spacious studio with flexible sleeping, perfect for families or small teams.",
    },
    tags: ["Studio", "Küche", "Wifi", "Netflix"],
    link: "https://luxomes.holidayfuture.com/listings/148176?numberOfGuests=1&city=Ingolstadt",
  },
  {
    id: "148180",
    name: { de: "Executive Suite", en: "Executive Suite" },
    city: "München", district: { de: "Schwabing", en: "Schwabing" },
    guests: 2, beds: 1, bedType: "Boxspring",
    price: 185,
    image: PHOTO.muenchen_bed_desk,
    gallery: [PHOTO.muenchen_bed_desk, PHOTO.muenchen_bedroom_tv, PHOTO.muenchen_dining],
    desc: {
      de: "Großzügige Suite mit Arbeitsbereich — ideal für Business-Reisende mit Anspruch an Design und Produktivität.",
      en: "Spacious suite with a dedicated workspace — ideal for business travelers who value design and productivity.",
    },
    tags: ["Suite", "Workspace", "Wifi", "Boxspring"],
    link: "https://luxomes.holidayfuture.com/",
  },
  {
    id: "148182",
    name: { de: "München Altstadt Loft", en: "Munich Old Town Loft" },
    city: "München", district: { de: "Altstadt-Lehel", en: "Altstadt-Lehel" },
    guests: 3, beds: 2, bedType: "Boxspring",
    price: 210,
    image: PHOTO.muenchen_bed_dining,
    gallery: [PHOTO.muenchen_bed_dining, PHOTO.muenchen_dining, PHOTO.muenchen_kitchen],
    desc: {
      de: "Loft mit hohen Decken und urbanem Flair, wenige Minuten vom Marienplatz — kompromissloses München-Erlebnis.",
      en: "High-ceiling loft with urban flair, minutes from Marienplatz — uncompromised Munich experience.",
    },
    tags: ["Loft", "Küche", "Wifi", "Smart-TV"],
    link: "https://luxomes.holidayfuture.com/",
  },
  {
    id: "148183",
    name: { de: "Donau Studio", en: "Danube Studio" },
    city: "Vilshofen an der Donau", district: { de: "Altstadt", en: "Old town" },
    guests: 2, beds: 1, bedType: "Doppelbett",
    price: 89,
    image: PHOTO.vilshofen_studio_a,
    gallery: [PHOTO.vilshofen_studio_a, PHOTO.vilshofen_studio_b, PHOTO.vilshofen_studio_c, PHOTO.vilshofen_studio_d],
    desc: {
      de: "Charmantes Studio mit Blick auf die Donau — ideal für entspannte Kurzaufenthalte in Niederbayern.",
      en: "Charming studio with a view of the Danube — ideal for relaxed stays in Lower Bavaria.",
    },
    tags: ["Studio", "Donaublick", "Wifi", "Netflix"],
    link: "https://luxomes.holidayfuture.com/listings/306211?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
  },
  {
    id: "148184",
    name: { de: "Vilshofen Residenz", en: "Vilshofen Residence" },
    city: "Vilshofen an der Donau", district: { de: "Zentrum", en: "City center" },
    guests: 4, beds: 2, bedType: "Betten",
    price: 119,
    image: PHOTO.vilshofen_2br_a,
    gallery: [PHOTO.vilshofen_2br_a, PHOTO.vilshofen_2br_b, PHOTO.vilshofen_2br_c, PHOTO.vilshofen_2br_d, PHOTO.vilshofen_2br_e, PHOTO.vilshofen_2br_f],
    desc: {
      de: "Geräumige 2-Zimmer Residenz mit separatem Schlafzimmer im historischen Zentrum Vilshofens — hochwertig ausgestattet, perfekt für Familien und Geschäftsreisende.",
      en: "Spacious 2-room residence with separate bedroom in Vilshofen's historic center — high-end fittings, perfect for families and business travelers.",
    },
    tags: ["1 Schlafzimmer", "Küche", "Wifi", "Smart-TV"],
    link: "https://luxomes.holidayfuture.com/listings/421485?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
  },
  {
    id: "148185",
    name: { de: "Penthouse", en: "Penthouse" },
    city: "Vilshofen an der Donau", district: { de: "Altstadt", en: "Old town" },
    guests: 6, beds: 4, bedType: "Kingsize",
    price: 155,
    image: PHOTO.vilshofen_penthouse_a,
    gallery: [PHOTO.vilshofen_penthouse_a, PHOTO.vilshofen_penthouse_b, PHOTO.vilshofen_penthouse_c, PHOTO.vilshofen_penthouse_d, PHOTO.vilshofen_penthouse_e, PHOTO.vilshofen_penthouse_f],
    desc: {
      de: "Unser Flaggschiff — Premium-Penthouse mit 120m², 3 Zimmern, 2 Bädern und bestem Donaublick. Designorientiert, voll ausgestattet, ideal für Gruppen, Familien und längere Aufenthalte.",
      en: "Our flagship — 120sqm premium penthouse with 3 rooms, 2 bathrooms and the best Danube view. Design-driven, fully equipped, ideal for groups, families and extended stays.",
    },
    tags: ["Penthouse", "Donaublick", "Premium", "120m²"],
    link: "https://luxomes.holidayfuture.com/listings/421519?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
  },
  {
    id: "263033",
    name: { de: "Design Altstadt Residenz", en: "Design Old Town Residence" },
    city: "Ingolstadt", district: { de: "Altstadt", en: "Old town" },
    guests: 8, beds: 4, bedType: "Kingsize",
    price: 125,
    image: PHOTO.oldtown_7p_a,
    gallery: [PHOTO.oldtown_7p_a, PHOTO.oldtown_7p_b],
    desc: {
      de: "Designorientierte Altstadt-Residenz in Ingolstadt — großzügige Räume mit 4 Betten für bis zu 8 Gäste, hochwertige Möblierung, voll ausgestattete Küche. Ideal für Familien, Gruppen und Geschäftsreisende, die sich Platz wünschen.",
      en: "Design-driven old town residence in Ingolstadt — generous rooms with 4 beds for up to 8 guests, premium furnishings, fully equipped kitchen. Ideal for families, groups and business travellers who need space.",
    },
    tags: ["Altstadt", "Residenz", "Küche", "Wifi"],
    link: "https://luxomes.holidayfuture.com/listings/263033?numberOfGuests=1&city=Ingolstadt",
  },
  {
    id: "148393",
    name: { de: "Aparthotel Südstadt", en: "Aparthotel Südstadt" },
    city: "Nürnberg", district: { de: "Südstadt", en: "Südstadt" },
    guests: 3, beds: 3, bedType: "3 Einzelbetten",
    price: 75,
    image: PHOTO.humboldt_xl_2,
    gallery: [PHOTO.humboldt_xl_2, PHOTO.humboldt_xl_1, PHOTO.humboldt_xl_3, PHOTO.humboldt_xl_4],
    desc: {
      de: "Geräumiges Aparthotel-Zimmer in Nürnberg-Südstadt — 3 Betten, eigenes Bad, Arbeitsplatz und Zugang zur gemeinschaftlichen Küche und zu den Gemeinschaftsbereichen. Ideal für Geschäftsreisende mit Begleitung oder kleine Familien.",
      en: "Spacious aparthotel room in Nuremberg's Südstadt — 3 beds, private bathroom, workspace, and access to the shared kitchen and common areas. Ideal for business travellers with company or small families.",
    },
    tags: ["Aparthotel", "Südstadt", "Wifi", "Smart-TV"],
    link: "https://luxomes.holidayfuture.com/listings/148393?numberOfGuests=1&city=N%C3%BCrnberg",
  },
  {
    id: "306206",
    name: { de: "Modernes Stadtblick Apartment", en: "Modern City-View Apartment" },
    city: "Vilshofen an der Donau", district: { de: "Altstadt", en: "Old town" },
    guests: 4, beds: 2, bedType: "Boxspring",
    price: 85,
    image: PHOTO.vilshofen_1br_a,
    gallery: [PHOTO.vilshofen_1br_a, PHOTO.vilshofen_1br_b, PHOTO.vilshofen_1br_c, PHOTO.vilshofen_1br_d, PHOTO.vilshofen_1br_e],
    desc: {
      de: "Modernes Apartment in Vilshofen an der Donau mit Stadtblick — hochwertig eingerichtet, voll ausgestattete Küche, ruhige Lage trotz zentraler Nähe. Ideal für Paare, Familien und Geschäftsreisende.",
      en: "Modern apartment in Vilshofen an der Donau with city view — premium furnishings, fully equipped kitchen, quiet despite central location. Ideal for couples, families and business travellers.",
    },
    tags: ["Stadtblick", "Modern", "Küche", "Wifi"],
    link: "https://luxomes.holidayfuture.com/listings/306206?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
  },
  {
    id: "148181",
    name: { de: "Garten Apartment", en: "Garden Apartment" },
    city: "Nürnberg", district: { de: "Gostenhof", en: "Gostenhof" },
    guests: 3, beds: 2, bedType: "Betten",
    price: 125,
    image: IMG.apt6,
    gallery: [IMG.apt6, IMG.interior1, IMG.kitchen],
    desc: {
      de: "Ruhig gelegenes Apartment mit privatem Gartenzugang — urbanes Wohnen mit einer grünen Oase vor der Tür.",
      en: "Quiet apartment with private garden access — urban living with a green oasis right at your door.",
    },
    tags: ["2 Zimmer", "Garten", "Wifi", "Netflix"],
    link: "#",
    soon: true,
  },
];

// Apartments shown on the home page "Moderne Design Apartments" grid (in display order).
// Order: Penthouse (flagship), Design Altstadt Ingolstadt, Studio XL Nürnberg Südstadt, Stadtblick.
const HOME_FEATURED_IDS = ["148185", "263033", "148393", "306206"];

const BENEFITS = [
  { icon: "lock", title: { de: "Kontaktlos", en: "Contactless" }, body: { de: "Kein Kontakt vor Ort nötig. Mit dem PIN für Dein Codeschloss hast Du einen komplett digitalen Check-in und einen bequemen, kontaktlosen Check-out — inklusive automatisierter Rechnung.", en: "No contact required. With a personal PIN you get fully digital check-in and contactless check-out — including automated invoicing." } },
  { icon: "sparkle", title: { de: "Entworfen zum Wohlfühlen", en: "Designed to feel good" }, body: { de: "Von der Nespresso-Maschine bis zu kunstvollen Wandbildern — wir sorgen für eine hochwertige Ausstattung und ein einzigartiges Ambiente in jeder Unterkunft.", en: "From Nespresso machines to curated artwork — premium fittings and a signature ambience in every apartment." } },
  { icon: "clock", title: { de: "Zeit sparen", en: "Save time" }, body: { de: "Wähle Deine Wohnung und miete sie ganz einfach online. Alle Prozesse sind darauf ausgelegt, dass Du Zeit sparst.", en: "Pick your apartment and book online in minutes. Every process is optimized to save you time." } },
  { icon: "moon", title: { de: "Erholsame Nächte", en: "Restful nights" }, body: { de: "Erstklassige Boxspringbetten, hochwertige Textilien und eine ruhige Atmosphäre — damit Du wirklich erholt aufwachst.", en: "Premium boxspring beds, quality linens and a calm atmosphere — wake up genuinely rested." } },
  { icon: "home", title: { de: "Modernes Wohnen", en: "Modern living" }, body: { de: "Zeitgemäße Einrichtung, Highspeed-Internet, Smart-TV, Kaffee & Heißgetränke — in unseren Suiten fehlt es Dir an nichts.", en: "Contemporary interiors, highspeed internet, smart TVs, coffee & hot drinks — our suites have it all." } },
  { icon: "coin", title: { de: "Faire Preise", en: "Fair pricing" }, body: { de: "Hoher Standard zu einem fairen Preis — unsere bevorzugte Wahl für Geschäfts- und Freizeitreisende.", en: "High standards at a fair price — the preferred choice for business and leisure travelers." } },
];

const PROCESS_STEPS = [
  { n: "01", title: { de: "Online Buchung", en: "Online booking" }, body: { de: "Wähle Deine Wohnung und buche online in wenigen Minuten — alle Prozesse sind auf Zeitersparnis optimiert.", en: "Pick your apartment and book online in minutes — every step is built for speed." } },
  { n: "02", title: { de: "Self Check-In", en: "Self check-in" }, body: { de: "Digitale Customer Journey — vom Buchungslink bis zum kontaktlosen Check-out. PIN eingeben, eintreten, ankommen.", en: "A digital customer journey — from booking link to contactless check-out. Enter PIN, walk in, settle in." } },
  { n: "03", title: { de: "Persönliche Unterstützung", en: "Personal support" }, body: { de: "Rund um die Uhr für Dich erreichbar — individuelle Unterstützung, wann immer Du sie brauchst.", en: "Reachable around the clock — personal support whenever you need it." } },
];

const FAQS = [
  { q: { de: "Wie buche ich eine Wohnung über LUXOMES?", en: "How do I book an apartment?" }, a: { de: "Über die Funktion \u201eBuchung\u201c kannst Du eine unverbindliche Anfrage stellen. Wir begleiten Dich durch den kompletten Buchungsprozess — bis zu Deinem Einzug und darüber hinaus. Telefonisch sind wir jederzeit für Dich erreichbar.", en: "Use the \u201cBook\u201d function to send a non-binding request. We guide you through the entire process — through check-in and beyond. We're reachable by phone at any time." } },
  { q: { de: "Was muss ich bei meinem Einzug beachten?", en: "What should I check when I move in?" }, a: { de: "Beim Einzug ist es wichtig, den Zustand zu überprüfen und eventuelle Schäden zu dokumentieren und uns zu melden. Wir empfehlen, bei Einzug Fotos zu machen — so lässt sich belegen, dass Schäden bereits vor dem Einzug entstanden sind.", en: "When moving in, please check the apartment and document any damages — ideally with photos. This proves pre-existing condition and protects both sides." } },
  { q: { de: "Wie läuft der Self Check-In & Check-Out ab?", en: "How does self check-in & check-out work?" }, a: { de: "Buchung: Nach Bestätigung erhältst Du den PIN-Code. Ankunft: Du gibst den Code in das Tastenfeld neben der Tür ein. Abreise: Du checkst problemlos und kontaktlos aus.", en: "Booking: after confirmation you receive a PIN. Arrival: enter it on the keypad next to the door. Departure: check out contactless — done." } },
  { q: { de: "Kann ich auch telefonisch eine Unterkunft buchen?", en: "Can I book by phone?" }, a: { de: "Selbstverständlich. Rufe uns jederzeit unter +49 89 693378930 an — wir unterstützen Dich gerne persönlich.", en: "Of course. Call us anytime at +49 89 693378930 — we're happy to help personally." } },
];

// Management page data
const MGMT_WHY = [
  { metric: "+31%", title: { de: "Mehr Umsatz aus Bestandsobjekten", en: "More revenue from existing properties" }, body: { de: "Dynamische Tagespreise und gleichzeitige Sichtbarkeit auf allen relevanten Buchungsportalen — Booking.com, Airbnb, Expedia, HomeAway sowie B2B-Plattformen für Geschäftsreisende. Zusätzlich generieren wir spürbar mehr Direktbuchungen. Wir holen aus jedem Objekt mehr raus, ohne dass Du etwas änderst.", en: "Dynamic daily pricing and simultaneous visibility on all relevant booking portals — Booking.com, Airbnb, Expedia, HomeAway plus B2B platforms for business travellers. On top, we generate noticeably more direct bookings. We get more out of every property without you changing anything." } },
  { metric: "75–85%", title: { de: "Durchschnittliche Auslastung", en: "Average occupancy" }, body: { de: "Datengestützte Preisstrategie plus 24/7 Verfügbarkeit auf allen relevanten Buchungsplattformen — keine leeren Nächte mehr, kein Overbooking.", en: "Data-driven pricing plus 24/7 availability across every relevant booking platform — no empty nights, no overbooking." } },
  { metric: "24/7", title: { de: "Gäste-Kommunikation ohne Aufwand", en: "Guest comms with zero effort" }, body: { de: "Unser Team beantwortet Gästeanfragen in Minuten, jeden Tag, freundlich und professionell — Du musst nie wieder Dein Handy am Wochenende checken.", en: "Our team answers guest inquiries in minutes, every day, friendly and professional — never check your phone on weekends again." } },
  { metric: "4,8★", title: { de: "Bewertungen, die buchen lassen", en: "Reviews that drive bookings" }, body: { de: "Systematisches Bewertungsmanagement, Qualitätskontrollen nach jeder Reinigung, professionelle Antworten — wir bringen Dein Objekt auf 4,8+ Sterne.", en: "Systematic review management, QC after every cleaning, professional responses — we lift your property to 4.8+ stars." } },
];

// 6-step process for the circular animation. Each step shows what happens at that phase.
const MGMT_PROCESS = [
  {
    key: "analysis",
    icon: "search",
    title: { de: "Erstgespräch & Potenzial-Analyse", en: "First call & potential analysis" },
    duration: { de: "Tag 1–3", en: "Day 1–3" },
    body: { de: "Wir analysieren Deinen Standort, vergleichbare Objekte, saisonale Nachfrage und das aktuelle Setup. Du bekommst eine konkrete Umsatzprognose — kostenlos und unverbindlich.", en: "We analyse your location, comparable properties, seasonal demand and your current setup. You get a concrete revenue forecast — free and non-binding." },
  },
  {
    key: "onboarding",
    icon: "camera",
    title: { de: "Onboarding & Setup", en: "Onboarding & setup" },
    duration: { de: "Woche 1–2", en: "Week 1–2" },
    body: { de: "Professionelle Fotos, optimierte Listings auf allen relevanten Buchungsportalen (Booking.com, Airbnb, Expedia, HomeAway + B2B-Plattformen), Channel-Manager-Anbindung, Smart-Lock-Setup. Wir richten alles ein — Du musst nichts vorbereiten.", en: "Pro photos, optimised listings on every relevant booking portal (Booking.com, Airbnb, Expedia, HomeAway + B2B platforms), channel manager integration, smart-lock setup. We handle everything — no prep needed from you." },
  },
  {
    key: "pricing",
    icon: "trending",
    title: { de: "Dynamische Vermarktung", en: "Dynamic marketing" },
    duration: { de: "Laufend", en: "Ongoing" },
    body: { de: "Datengetriebene Tagespreise, automatische Anpassung an Events, Saisonalität und lokale Nachfrage, A/B-Tests auf Listing-Texten und Fotos. Wir maximieren jeden verfügbaren Tag.", en: "Data-driven daily pricing, automatic adjustment for events, seasonality and local demand, A/B testing on listing copy and photos. We maximise every available night." },
  },
  {
    key: "guest",
    icon: "chat",
    title: { de: "Gäste-Operations", en: "Guest operations" },
    duration: { de: "Pro Buchung", en: "Per booking" },
    body: { de: "24/7 Gäste-Kommunikation, digitaler Check-in, Anreise-Infos und Koordination der Reinigung — alles automatisiert, alles persönlich. Die Reinigungs- und Wäschekosten zahlst Du als Eigentümer direkt; wir kümmern uns um die Organisation.", en: "24/7 guest communication, digital check-in, arrival info, and cleaning coordination — automated yet personal. Cleaning and linen costs are paid directly by you as owner; we handle the organisation." },
  },
  {
    key: "quality",
    icon: "star",
    title: { de: "Qualität & Bewertungen", en: "Quality & reviews" },
    duration: { de: "Nach jeder Buchung", en: "After each booking" },
    body: { de: "Qualitätskontrolle nach jeder Reinigung, systematische Antworten auf jede Bewertung, kontinuierliche Verbesserung auf Basis von Feedback.", en: "QC after every clean, systematic responses to every review, continuous improvement from guest feedback." },
  },
  {
    key: "reporting",
    icon: "dashboard",
    title: { de: "Reporting & Rechnungen", en: "Reporting & invoicing" },
    duration: { de: "Monatlich", en: "Monthly" },
    body: { de: "Eigentümer-Dashboard mit Belegung, Umsatz und Bewertungen in Echtzeit. Automatische Rechnungserstellung für jede Buchung. Monatlicher Strategie-Call mit Verbesserungsvorschlägen — Du weißt immer, was läuft.", en: "Owner dashboard with occupancy, revenue and reviews in real time. Automated invoicing for every booking. Monthly strategy call with improvement suggestions — full transparency." },
  },
];

// Three tiers — Basic / Plus / Premium. Each feature shows ✓ / ✗ per tier.
const MGMT_TIERS = [
  {
    key: "basic",
    fee: 15,
    name: { de: "Basic", en: "Basic" },
    tagline: { de: "Vermarktung & Tech", en: "Marketing & tech" },
    description: { de: "Wir kümmern uns um alles, was direkt Umsatz bringt. Gäste-Kommunikation, Reinigung und Vor-Ort-Aufgaben organisierst und zahlst Du selbst.", en: "We handle everything that drives revenue. Guest communication, cleaning and hands-on tasks you organise and pay for yourself." },
    highlights: {
      de: ["Listings auf Booking.com, Airbnb, Expedia & weitere", "Datengetriebene Preisoptimierung", "Buchungs- und Zahlungsabwicklung", "Automatische Rechnungserstellung", "Eigentümer-Dashboard + monatliches Reporting"],
      en: ["Listings on Booking.com, Airbnb, Expedia & more", "Data-driven price optimisation", "Booking & payment handling", "Automated invoicing", "Owner dashboard + monthly reporting"],
    },
    bestFor: { de: "Eigentümer mit eigenem Team, lokaler Unterstützung und Zeit für Gäste-Anfragen.", en: "Owners with their own team, local help and time for guest inquiries." },
  },
  {
    key: "plus",
    fee: 20,
    name: { de: "Plus", en: "Plus" },
    tagline: { de: "+ Gäste-Kommunikation", en: "+ Guest communication" },
    description: { de: "Alles aus Basic, plus die komplette Gäste-Kommunikation rund um die Uhr und das Bewertungsmanagement. Reinigung und Wäsche organisierst Du weiterhin selbst.", en: "Everything in Basic, plus full 24/7 guest communication and reviews management. Cleaning and linens you still organise yourself." },
    highlights: {
      de: ["Alles aus Basic", "Automatische Rechnungserstellung", "Gäste-Kommunikation 24/7", "Digitale Gästemappe & Anreise-Infos", "Aktives Bewertungs-Management"],
      en: ["Everything in Basic", "Automated invoicing", "Guest communication 24/7", "Digital guest guide & arrival info", "Active reviews management"],
    },
    bestFor: { de: "Eigentümer, die nicht erreichbar sein wollen — aber Reinigung und Vor-Ort-Logistik selbst organisieren. Du bekommst von uns rechtzeitig eine Benachrichtigung; die Umsetzung vor Ort läuft über Dich.", en: "Owners who don't want to be on-call — but organise cleaning and on-site logistics themselves. You get a notification from us in time; on-site execution stays with you." },
    popular: true,
  },
  {
    key: "premium",
    fee: 25,
    name: { de: "Premium", en: "Premium" },
    tagline: { de: "Rundum-Sorglos", en: "Fully managed" },
    description: { de: "Wir koordinieren wirklich alles. Reinigungs-, Wäsche- und Reparaturkosten zahlst Du direkt — ohne Aufschlag.", en: "We coordinate literally everything. Cleaning, linen and repair costs are billed to you directly — no markup." },
    highlights: {
      de: ["Alles aus Plus", "Automatische Rechnungserstellung", "Reinigungs-Koordination & Qualitätskontrolle", "Wäsche- & Bestand-Koordination", "Schaden- & Instandhaltungs-Management", "Digitaler Check-in (Smart-Lock)"],
      en: ["Everything in Plus", "Automated invoicing", "Cleaning coordination & QC", "Linen & supply coordination", "Damages & maintenance management", "Digital check-in (smart-lock)"],
    },
    bestFor: { de: "Eigentümer ohne Zeit oder lokales Setup — z.B. Auslands-Eigentümer, Investoren.", en: "Owners without time or local setup — e.g. expat owners, investors." },
  },
];

// Feature matrix — which tiers include which feature.
// included = [tier keys where this feature is included]
const MGMT_FEATURES = [
  { cat: "marketing", title: { de: "Listings auf Booking.com, Airbnb, Expedia & weitere", en: "Listings on Booking.com, Airbnb, Expedia & more" }, included: ["basic", "plus", "premium"] },
  { cat: "marketing", title: { de: "Datengetriebene Preisoptimierung", en: "Data-driven price optimisation" }, included: ["basic", "plus", "premium"] },
  { cat: "marketing", title: { de: "B2B-Plattformen für Geschäftsreisende", en: "B2B platforms for business travellers" }, included: ["basic", "plus", "premium"] },
  { cat: "marketing", title: { de: "Multi-Channel Optimierung (A/B-Tests)", en: "Multi-channel optimisation (A/B tests)" }, included: ["plus", "premium"] },
  { cat: "ops", title: { de: "Buchungs- und Zahlungsabwicklung", en: "Booking & payment handling" }, included: ["basic", "plus", "premium"] },
  { cat: "ops", title: { de: "Automatische Rechnungserstellung", en: "Automated invoicing" }, included: ["basic", "plus", "premium"] },
  { cat: "ops", title: { de: "Eigentümer-Dashboard in Echtzeit", en: "Real-time owner dashboard" }, included: ["basic", "plus", "premium"] },
  { cat: "ops", title: { de: "Monatliches Reporting + Strategie-Call", en: "Monthly reporting + strategy call" }, included: ["basic", "plus", "premium"] },
  { cat: "guest", title: { de: "Gäste-Kommunikation 24/7", en: "Guest communication 24/7" }, included: ["plus", "premium"] },
  { cat: "guest", title: { de: "Digitale Gästemappe & Anreise-Infos", en: "Digital guest guide & arrival info" }, included: ["plus", "premium"] },
  { cat: "guest", title: { de: "Bewertungs-Management", en: "Reviews management" }, included: ["plus", "premium"] },
  { cat: "onsite", title: { de: "Reinigungs-Koordination & Qualitätskontrolle*", en: "Cleaning coordination & quality control*" }, included: ["premium"] },
  { cat: "onsite", title: { de: "Wäsche-Koordination*", en: "Linen coordination*" }, included: ["premium"] },
  { cat: "onsite", title: { de: "Schadens- & Instandhaltungs-Management*", en: "Damages & maintenance management*" }, included: ["premium"] },
  { cat: "onsite", title: { de: "Digitaler Check-in (Smart-Lock)", en: "Digital check-in (smart-lock)" }, included: ["premium"] },
];

// Footer note on the matrix to explain the Pass-Through cost model for on-site services.
const MGMT_MATRIX_NOTE = {
  de: "* Wir koordinieren und überwachen — die Kosten für Reinigungspersonal, Wäsche und Reparaturen werden direkt vom Eigentümer getragen (Pass-Through, ohne Aufschlag).",
  en: "* We coordinate and supervise — the actual costs for cleaning staff, linens and repairs are paid directly by the owner (pass-through, no markup).",
};

// City benchmarks for the heuristic estimator on the management page.
// Values represent typical achievable averages for a well-managed serviced apartment of ~50m² (1 BR/2 guests):
//   nightlyLow / nightlyHigh: realistic range for average daily rate (€)
//   occupancyLow / occupancyHigh: realistic occupancy range (%)
//   m2Reference: the sqm size these averages assume (we linearly scale by actual sqm)
// Sources: LUXOMES internal data + public Airbnb/Booking benchmarks for each city.
// Keep these conservative — overpromising will burn credibility on the actual report.
const MGMT_CITY_BENCHMARKS = {
  "münchen":   { nightlyLow: 130, nightlyHigh: 180, occupancyLow: 78, occupancyHigh: 88, m2Reference: 50, label: "München" },
  "munchen":   { nightlyLow: 130, nightlyHigh: 180, occupancyLow: 78, occupancyHigh: 88, m2Reference: 50, label: "München" },
  "munich":    { nightlyLow: 130, nightlyHigh: 180, occupancyLow: 78, occupancyHigh: 88, m2Reference: 50, label: "München" },
  "nürnberg":  { nightlyLow:  85, nightlyHigh: 125, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Nürnberg" },
  "nurnberg":  { nightlyLow:  85, nightlyHigh: 125, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Nürnberg" },
  "nuremberg": { nightlyLow:  85, nightlyHigh: 125, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Nürnberg" },
  "ingolstadt":{ nightlyLow:  95, nightlyHigh: 140, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Ingolstadt" },
  "vilshofen": { nightlyLow:  75, nightlyHigh: 110, occupancyLow: 72, occupancyHigh: 82, m2Reference: 50, label: "Vilshofen an der Donau" },
  "passau":    { nightlyLow:  80, nightlyHigh: 115, occupancyLow: 72, occupancyHigh: 82, m2Reference: 50, label: "Passau" },
  "regensburg":{ nightlyLow:  90, nightlyHigh: 130, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Regensburg" },
  "augsburg":  { nightlyLow:  90, nightlyHigh: 130, occupancyLow: 75, occupancyHigh: 85, m2Reference: 50, label: "Augsburg" },
  // Fallback for unknown cities — conservative Bavarian average.
  "_default":  { nightlyLow:  80, nightlyHigh: 120, occupancyLow: 70, occupancyHigh: 80, m2Reference: 50, label: "Deutschland" },
};

// Pick the right benchmark for a free-text city/address string.
// Tries word-based matching; falls back to _default if nothing fits.
function mgmtFindBenchmark(input) {
  if (!input) return MGMT_CITY_BENCHMARKS._default;
  const lower = input.toLowerCase();
  for (const key of Object.keys(MGMT_CITY_BENCHMARKS)) {
    if (key === "_default") continue;
    if (lower.includes(key)) return MGMT_CITY_BENCHMARKS[key];
  }
  return MGMT_CITY_BENCHMARKS._default;
}

const MGMT_FEATURE_CATS = {
  marketing: { de: "Vermarktung & Pricing", en: "Marketing & pricing" },
  ops: { de: "Operations & Reporting", en: "Operations & reporting" },
  guest: { de: "Gäste-Service", en: "Guest service" },
  onsite: { de: "Vor-Ort & Logistik", en: "On-site & logistics" },
};

const MGMT_SERVICES = [
  { title: { de: "Buchungs- und Zahlungsabwicklung", en: "Booking & payment handling" }, body: { de: "Buchungen, Zahlungen, Sonderwünsche, Stornierungen und Verlängerungen — schnell, korrekt, gästeorientiert.", en: "Bookings, payments, special requests, cancellations and extensions — fast, accurate, guest-first." } },
  { title: { de: "Dynamische Preisoptimierung", en: "Dynamic pricing" }, body: { de: "Preise flexibel nach Angebot, Nachfrage und Marktentwicklung — für mehr Buchungen und bessere Erträge.", en: "Prices steered by supply, demand and market signals — for more bookings and higher yield." } },
  { title: { de: "Vollständige Gästekommunikation", en: "Full guest communication" }, body: { de: "Wir begleiten Gäste persönlich von Buchung bis Abreise — reibungslose Anreise, entspannter Aufenthalt, bestes Feedback.", en: "We personally guide guests from booking to departure — smooth arrival, calm stay, great reviews." } },
  { title: { de: "Digitale Gästemappe", en: "Digital guest guide" }, body: { de: "Alles in einem Klick: Registrierung, Kurtaxe, Anleitungen, Upselling und Anreiseinfos.", en: "Everything in one tap: registration, city tax, how-tos, upsells and arrival info." } },
  { title: { de: "Reinigung & Qualitätskontrolle", en: "Cleaning & quality control" }, body: { de: "Wir koordinieren die Reinigung, kontrollieren die Qualität regelmäßig und sorgen für eine perfekt vorbereitete Ankunft. Personal- und Wäschekosten zahlt der Eigentümer direkt.", en: "We coordinate cleaning, run regular QC and ensure every arrival is picture-perfect. Staffing and linen costs are paid directly by the owner." } },
  { title: { de: "Schadensmanagement & Instandhaltung", en: "Damages & maintenance" }, body: { de: "Von der Schadensmeldung bis zur Reparatur — schnell, professionell, ohne Deinen Aufwand.", en: "From issue report to repair — fast, professional, zero effort on your side." } },
  { title: { de: "Lager- & Bestandsmanagement", en: "Stock & supplies" }, body: { de: "Überwachung und Nachfüllung von Mietwäsche, Verbrauchsmaterialien und Gastgeschenken.", en: "Monitoring and restocking of linens, consumables and guest amenities." } },
  { title: { de: "Bewertungsmanagement", en: "Reviews management" }, body: { de: "Systematische Auswertung von Gästefeedback zur kontinuierlichen Qualitätsverbesserung.", en: "Systematic review analysis for continuous quality improvement." } },
  { title: { de: "Echtzeit-Reporting", en: "Real-time reporting" }, body: { de: "Volle Transparenz auf Knopfdruck: Belegung, Umsätze, Bewertungen und operative Details im Eigentümer-Dashboard.", en: "Full transparency at a glance: occupancy, revenue, reviews and ops — in an owner dashboard." } },
];

const MGMT_MODULES = [
  { title: { de: "Onboarding-Boost", en: "Onboarding boost" }, price: { de: "ab 890 € einmalig", en: "from €890 one-off" }, body: { de: "Schnellstart für neue Objekte: professionelle Fotos, optimierte Listings auf allen relevanten Portalen, Channel-Manager-Anbindung und Smart-Lock-Setup. In 7 Tagen marktfähig.", en: "Fast launch for new properties: pro photos, optimised listings on every relevant portal, channel manager integration and smart-lock setup. Market-ready in 7 days." } },
  { title: { de: "Zielgruppen- & Konzeptentwicklung", en: "Audience & concept" }, price: { de: "450 € einmalig", en: "€450 one-off" }, body: { de: "Konzept abgestimmt auf Deine Wunschzielgruppe: Text- und Bildvorschläge, optimale Darstellung auf Buchungsportalen. Wird bei Buchung eines Interieur-Projekts oder Premium-Tier angerechnet.", en: "Concept aligned to your target audience: copy and imagery suggestions, optimised portal presentation. Credited toward an interior project or Premium tier." } },
  { title: { de: "Interieur-Design & Ausstattung", en: "Interior design & fit-out" }, price: { de: "ab 1.500 € / Einheit", en: "from €1,500 / unit" }, body: { de: "Gestaltung von der Konzeptidee bis zur fertigen Umsetzung — inkl. Bestellung, Handwerker-Koordination und Endabnahme. Ideal nach Übernahme oder Re-Branding. Material- und Handwerkerkosten nicht enthalten.", en: "Design from concept to handover — procurement, contractor coordination, final inspection. Ideal after takeover or rebrand. Materials and trade costs not included." } },
  { title: { de: "Sicherheit & Smart Home", en: "Security & smart home" }, price: { de: "Auf Anfrage", en: "On request" }, body: { de: "Beratung und Installation: smarte Zutrittssysteme, Kameraüberwachung, Rauch-/Lärmsensoren, intelligente Heizungs- und Lichtsteuerung. Senkt Betriebskosten und schützt vor Schäden.", en: "Consulting and installation: smart access, camera systems, smoke/noise sensors, intelligent climate & lighting. Cuts opex and protects against damage." } },
  { title: { de: "Kostenlose Potenzial-Analyse", en: "Free potential analysis" }, price: { de: "0 € · in 24h", en: "€0 · in 24h" }, body: { de: "Bevor Du Dich entscheidest: wir berechnen kostenlos das realistische Umsatzpotenzial Deines Objekts. Basis sind echte Marktdaten Deiner Stadt, vergleichbare Objekte und saisonale Nachfrage.", en: "Before you commit: we calculate your property's realistic revenue potential for free. Based on real market data from your city, comparable properties and seasonal demand." }, free: true },
];

const MGMT_EXAMPLE = [
  { label: { de: "Gast zahlt pro Nacht", en: "Guest pays per night" }, value: "150 €", sign: "" },
  { label: { de: "Buchungsplattform-Gebühr", en: "Platform fee" }, value: "−20 €", sign: "minus" },
  { label: { de: "Netto-Umsatz", en: "Net revenue" }, value: "130 €", sign: "neutral" },
  { label: { de: "LUXOMES Management (25%)", en: "LUXOMES management (25%)" }, value: "−33 €", sign: "minus" },
  { label: { de: "Dein Ertrag als Eigentümer", en: "Your owner yield" }, value: "97 €", sign: "plus" },
];

const ABOUT_VALUES = [
  {
    title: { de: "Design als Haltung", en: "Design as attitude" },
    body: {
      de: "Jedes LUXOMES-Apartment wird so eingerichtet, wie wir selbst wohnen würden — durchdacht, langlebig, schön. Möbel, Materialien und Details sind kein Zufall, sondern bewusste Entscheidung.",
      en: "Every LUXOMES apartment is designed the way we'd live ourselves — thoughtful, durable, beautiful. Furniture, materials and details are no accident, they're deliberate choices.",
    },
  },
  {
    title: { de: "Digital zuerst", en: "Digital-first" },
    body: {
      de: "Buchen — Zahlen — Einchecken — Fertig. Von der ersten Anfrage bis zum Check-out läuft alles digital im Hintergrund, damit Du Dich auf das Wesentliche konzentrieren kannst: Deinen Aufenthalt.",
      en: "Book — pay — check in — done. From the first inquiry to check-out, everything runs digitally in the background so you can focus on what matters: your stay.",
    },
  },
  {
    title: { de: "Verlässlichkeit & Persönlichkeit", en: "Reliability & personality" },
    body: {
      de: "Hinter jeder Buchung steht ein echtes Team — erreichbar, freundlich, lösungsorientiert. Wir behandeln jeden Gast und jeden Eigentümer so, als wäre er der einzige.",
      en: "Behind every booking is a real team — reachable, friendly, solution-oriented. We treat every guest and every owner as if they were the only one.",
    },
  },
  {
    title: { de: "Transparenz statt Kleingedrucktes", en: "Transparency over small print" },
    body: {
      de: "Klare Preise, ehrliche Konditionen, faire Partnerschaften. Was wir versprechen, halten wir — und was wir nicht leisten, sagen wir vorher.",
      en: "Clear prices, honest terms, fair partnerships. What we promise, we deliver — and what we don't do, we tell you upfront.",
    },
  },
  {
    title: { de: "Mehr Wachstum, weniger Aufwand", en: "More growth, less effort" },
    body: {
      de: "Für Eigentümer machen wir die Hospitality-Welt einfacher — Vermarktung, Buchungen und Gäste-Operations übernehmen wir. Du siehst nur das, was zählt: die Auslastung und die Auszahlung.",
      en: "For owners, we make the hospitality world simpler — marketing, bookings and guest operations are on us. You see what counts: occupancy and payout.",
    },
  },
  {
    title: { de: "Lokal verwurzelt — DACH-weit denkend", en: "Locally rooted — DACH-wide vision" },
    body: {
      de: "Wir haben in Bayern angefangen und kennen unsere Standorte aus erster Hand. Unsere Prozesse sind so aufgebaut, dass wir das Konzept in der gesamten DACH-Region skalieren können — Deutschland, Österreich, Schweiz — ohne Qualitätsverlust.",
      en: "We started in Bavaria and know our locations first-hand. Our processes are built to scale across the DACH region — Germany, Austria, Switzerland — without compromising quality.",
    },
  },
];

const LOCATIONS = [
  {
    key: "muenchen",
    city: "München",
    region: { de: "Bayern · Metropolregion", en: "Bavaria · Metro" },
    address: { de: "Zentrum München", en: "Munich center" },
    heroLead: {
      de: "Fühl Dich wie zuhause in unseren stilvoll eingerichteten Serviced Apartments in München — der bayerischen Metropole zwischen Wirtschaftskraft und Alpennähe.",
      en: "Feel at home in our stylishly furnished serviced apartments in Munich — the Bavarian metropolis between economic power and Alpine proximity.",
    },
    about: {
      de: "Egal, ob Du geschäftlich unterwegs bist oder eine Auszeit suchst — bei uns findest Du großzügige Apartments mit voll ausgestatteter Küche, kostenlosem Highspeed-WLAN und Smart-TV. Mit unserem kontaktlosen Check-in, der zentralen Lage und der hervorragenden Anbindung machen wir Deinen Aufenthalt so bequem wie möglich.",
      en: "Whether you're travelling for business or just need a break — you'll find spacious apartments with a fully equipped kitchen, free highspeed WiFi and Smart-TV. Our contactless check-in, central location and excellent connections make your stay as convenient as possible.",
    },
    distances: [
      { de: "Hauptbahnhof München", en: "Munich central station", val: "1.5 km" },
      { de: "Flughafen München", en: "Munich airport", val: "35 km" },
      { de: "Marienplatz / Altstadt", en: "Marienplatz / Old town", val: "2 km" },
      { de: "Messe München", en: "Munich trade fair", val: "12 km" },
      { de: "Autobahn A9", en: "A9 motorway", val: "8 km" },
    ],
    heroImages: [PHOTO.muenchen_bed_desk, PHOTO.muenchen_bed_dining, PHOTO.muenchen_bedroom_tv, PHOTO.muenchen_dining, PHOTO.muenchen_kitchen, PHOTO.muenchen_exterior],
    categories: [
      {
        id: "muc-apt",
        title: { de: "Modernes Apartment", en: "Modern apartment" },
        rooms: 1, guests: 2, baths: 1, size: 42,
        bed: { de: "Boxspringbett", en: "Boxspring bed" },
        price: "ab 130€/Nacht",
        priceEn: "from €130/night",
        body: { de: "Helles, modern eingerichtetes Apartment im Münchner Westen — voll ausgestattete Küche, Arbeitsbereich, Smart-TV. Boxspring-Doppelbett, separates Bad. Ideal für Städtereisen, Messen und Geschäftsaufenthalte zu zweit.", en: "Bright, modern apartment in Munich's west — fully equipped kitchen, dedicated workspace, smart TV. Boxspring double bed, separate bathroom. Ideal for city trips, trade fairs and business stays for two." },
        link: "https://luxomes.holidayfuture.com/?numberOfGuests=1&city=M%C3%BCnchen",
        images: [PHOTO.muenchen_bed_desk, PHOTO.muenchen_bed_dining, PHOTO.muenchen_bedroom_tv, PHOTO.muenchen_dining, PHOTO.muenchen_kitchen, PHOTO.muenchen_entry, PHOTO.muenchen_bath, PHOTO.muenchen_exterior],
      },
    ],
  },
  {
    key: "nuernberg",
    city: "Nürnberg",
    region: { de: "Bayern · Mittelfranken", en: "Bavaria · Middle Franconia" },
    address: { de: "Nordstadt & Gostenhof", en: "Nordstadt & Gostenhof" },
    heroLead: {
      de: "Designorientierte Serviced Apartments in Nürnberg — vier Kategorien, ein Standard: vom 2-Zimmer Design Apartment mit privater Terrasse bis zum kompakten Studio. Zentrale Lage in der historischen Handels- und Messestadt.",
      en: "Design-driven serviced apartments in Nuremberg — four categories, one standard: from a 2-room design apartment with private terrace to a compact studio. Central location in this historic trade and fair city.",
    },
    about: {
      de: "Nürnberg verbindet Geschichte mit Geschäft. Unsere Apartments liegen im lebendigen Nordstadt-Viertel und in Gostenhof — beide mit exzellenter Anbindung an Messegelände, Altstadt und Flughafen.",
      en: "Nuremberg combines history with business. Our apartments sit in the lively Nordstadt quarter and in Gostenhof — both with excellent connections to the trade fair grounds, old town and airport.",
    },
    distances: [
      { de: "Hauptbahnhof Nürnberg", en: "Nuremberg central station", val: "2.5 km" },
      { de: "Altstadt / Hauptmarkt", en: "Old town / Main square", val: "2 km" },
      { de: "Messe Nürnberg", en: "Nuremberg trade fair", val: "5 km" },
      { de: "Flughafen Nürnberg", en: "Nuremberg airport", val: "6 km" },
      { de: "Autobahn A3 / A9", en: "A3 / A9 motorway", val: "4 km" },
    ],
    heroImages: [PHOTO.nuernberg_design_exterior, PHOTO.nuernberg_design_bed, PHOTO.nuernberg_design_dining, PHOTO.nuernberg_design_living, PHOTO.nuernberg_room8_a, PHOTO.nuernberg_room1_a],
    categories: [
      {
        id: "nue-design",
        title: { de: "Design Apartment", en: "Design Apartment" },
        rooms: 2, guests: 4, baths: 1, size: 65,
        bed: { de: "Kingsize-Bett & Schlafsofa", en: "Kingsize bed & sofa bed" },
        price: "ab 140€/Nacht",
        priceEn: "from €140/night",
        body: { de: "Unsere größte Einheit in Nürnberg — 2-Zimmer Apartment mit separatem Schlaf- und Wohnbereich, voll ausgestatteter Küche, Esstisch für 6 Personen und privater Außenterrasse. Designorientiert eingerichtet mit hochwertigen Boxspringbetten, höhenverstellbarem Schreibtisch und schneller Glasfaser-Internetverbindung. Ideal für Familien, Geschäftsreisende mit Begleitung und längere Aufenthalte.", en: "Our largest unit in Nuremberg — 2-room apartment with separate sleeping and living areas, fully equipped kitchen, dining table for 6, and private outdoor terrace. Design-driven interior with premium boxspring beds, height-adjustable desk, and fast fibre internet. Ideal for families, business travellers with company, and longer stays." },
        link: "https://luxomes.holidayfuture.com/listings/148177?numberOfGuests=1&city=N%C3%BCrnberg",
        images: [PHOTO.nuernberg_design_exterior, PHOTO.nuernberg_design_bed, PHOTO.nuernberg_design_bed_desk, PHOTO.nuernberg_design_dining, PHOTO.nuernberg_design_dining2, PHOTO.nuernberg_design_living, PHOTO.nuernberg_design_kitchen, PHOTO.nuernberg_design_bath],
      },
      {
        id: "nue-xl",
        title: { de: "Studio XL", en: "Studio XL" },
        rooms: 1, guests: 3, baths: 1, size: 30,
        bed: { de: "3 Einzelbetten", en: "3 single beds" },
        price: "ab 75€/Nacht",
        priceEn: "from €75/night",
        body: { de: "Unsere größte Studio-Einheit im Humboldt Aparthotel — für Geschäftsreisende mit Begleitung oder kleine Familien. Eigenes Bad, Arbeitsplatz und Zugang zur gemeinschaftlichen Küche.", en: "Our largest studio in the Humboldt aparthotel — for business travellers with company or small families. Private bathroom, work area, and access to the shared kitchen." },
        link: "https://luxomes.holidayfuture.com/listings/148393?numberOfGuests=1&city=N%C3%BCrnberg",
        images: [PHOTO.humboldt_xl_2, PHOTO.humboldt_xl_11, PHOTO.humboldt_xl_1, PHOTO.humboldt_xl_3, PHOTO.humboldt_xl_4, PHOTO.humboldt_xl_5, PHOTO.humboldt_xl_6, PHOTO.humboldt_xl_7, PHOTO.humboldt_xl_8, PHOTO.humboldt_xl_9, PHOTO.humboldt_xl_10],
      },
      {
        id: "nue-l",
        title: { de: "Studio L", en: "Studio L" },
        rooms: 1, guests: 2, baths: 1, size: 25,
        bed: { de: "2 Einzelbetten", en: "2 single beds" },
        price: "ab 60€/Nacht",
        priceEn: "from €60/night",
        body: { de: "Unsere beliebteste Aparthotel-Kategorie: zwei Einzelbetten, eigenes Bad, hochwertige Ausstattung. Ideal für Freunde und Business-Travel.", en: "Our most popular aparthotel category: two single beds, private bathroom, premium fittings. Ideal for friends and business travel." },
        link: "https://luxomes.holidayfuture.com/listings/148384?numberOfGuests=1&city=N%C3%BCrnberg",
        images: [PHOTO.humboldt_l_1, PHOTO.humboldt_l_2, PHOTO.humboldt_l_3, PHOTO.humboldt_l_4, PHOTO.humboldt_l_5, PHOTO.humboldt_l_6],
      },
      {
        id: "nue-s",
        title: { de: "Studio S", en: "Studio S" },
        rooms: 1, guests: 2, baths: 1, size: 19,
        bed: { de: "Etagenbett (2 Schlafplätze)", en: "Bunk bed (2 sleeping spots)" },
        price: "ab 50€/Nacht",
        priceEn: "from €50/night",
        body: { de: "Kompakte Aparthotel-Einheit für zwei Gäste — Etagenbett, eigenes Bad, reduziert gestaltet, mit allem Wichtigen. Beste Wahl für Budget-Reisende und kurze Aufenthalte.", en: "Compact aparthotel unit for two guests — bunk bed, private bathroom, minimally designed with all the essentials. Best choice for budget travellers and short stays." },
        link: "https://luxomes.holidayfuture.com/listings/148387?numberOfGuests=1&city=N%C3%BCrnberg",
        images: [PHOTO.humboldt_s_1, PHOTO.humboldt_s_4, PHOTO.humboldt_s_5, PHOTO.humboldt_s_6, PHOTO.humboldt_s_2, PHOTO.humboldt_s_3],
      },
    ],
    commonAreas: {
      title: { de: "Gemeinschaftsräume im Humboldt Aparthotel", en: "Shared areas at the Humboldt aparthotel" },
      intro: {
        de: "Foyer, Eingangsbereich und gemeinschaftliche Nutzungsflächen — modern eingerichtet, sauber gehalten, jederzeit zugänglich. Hier kannst Du Pakete entgegennehmen, Dich mit anderen Gästen austauschen oder einfach kurz innehalten.",
        en: "Foyer, entrance and shared use areas — modern, kept clean, always accessible. Pick up parcels, chat with fellow guests, or just take a moment.",
      },
      images: [
        PHOTO.humboldt_common_1, PHOTO.humboldt_common_2, PHOTO.humboldt_common_3,
        PHOTO.humboldt_common_4, PHOTO.humboldt_common_5, PHOTO.humboldt_common_6,
        PHOTO.humboldt_common_7, PHOTO.humboldt_common_8, PHOTO.humboldt_common_9,
      ],
    },
  },
  {
    key: "ingolstadt",
    city: "Ingolstadt",
    region: { de: "Bayern · Oberbayern", en: "Bavaria · Upper Bavaria" },
    address: { de: "Altstadt & Zentrum", en: "Old town & center" },
    heroLead: {
      de: "Sechs Apartmentkategorien in Ingolstadt — vom kompakten Stylish Studio bis zum 115 m² großen Altstadt-Apartment im Tropen- oder Streetart-Design. Designorientiert, digital, zentral gelegen.",
      en: "Six apartment categories in Ingolstadt — from compact stylish studio to 115 sqm old town apartment in tropical or streetart design. Design-driven, digital, centrally located.",
    },
    about: {
      de: "Ingolstadt als Technologie- und Wirtschaftsstandort — unsere Apartments liegen im historischen Zentrum und bieten die volle Bandbreite: vom reduzierten Studio für Solo-Reisende bis zum großzügigen 3-Zimmer Apartment für Familien.",
      en: "Ingolstadt as a technology and business hub — our apartments are located in the historic centre and offer the full range: from a minimal studio for solo travellers to a spacious 3-room apartment for families.",
    },
    distances: [
      { de: "Hauptbahnhof Ingolstadt", en: "Ingolstadt central station", val: "2 km" },
      { de: "Audi Hauptsitz", en: "Audi headquarters", val: "4 km" },
      { de: "Altstadt / Rathausplatz", en: "Old town / Town Hall square", val: "0.3 km" },
      { de: "Flughafen München", en: "Munich airport", val: "70 km" },
      { de: "Autobahn A9", en: "A9 motorway", val: "5 km" },
    ],
    heroImages: [
      PHOTO.ingolstadt_streetart_3,    // Gedeckter Tisch unter Holzbalken
      PHOTO.ingolstadt_tropisch_13,    // Gedeckter Tisch tropisch
      PHOTO.ingolstadt_streetart_1,    // Streetart Wohnzimmer
      PHOTO.ingolstadt_tropisch_1,     // Tropisch Wohnzimmer
      PHOTO.ingolstadt_design_a,       // Studio Apartment
      PHOTO.ingolstadt_4p_a,           // Apartment XL
    ],
    categories: [
      {
        id: "in-tropisch",
        title: { de: "Tropisches Altstadtapartment", en: "Tropical Old Town Apartment" },
        rooms: 3, guests: 8, baths: 2, size: 115,
        bed: { de: "2× Kingsize + Schlafsofas", en: "2× Kingsize + sofa beds" },
        price: "ab 195€/Nacht",
        priceEn: "from €195/night",
        body: { de: "Großzügiges 3-Zimmer-Apartment (115 m²) im historischen Zentrum Ingolstadts — Designerinterieur mit grünen Samtsofas, Pampagras und Boho-Akzenten. Voll ausgestattete Küche, getrennte Schlafbereiche, fußläufig zu allem. Ideal für Gruppen, Familien und längere Aufenthalte.", en: "Spacious 3-room apartment (115 sqm) in Ingolstadt's historic centre — designer interior with emerald velvet sofas, pampas grass and boho accents. Fully equipped kitchen, separate sleeping areas, walking distance to everything. Ideal for groups, families and extended stays." },
        link: "https://luxomes.holidayfuture.com/listings/166429?numberOfGuests=1&city=Ingolstadt",
        // Curated order: gedeckter Tisch (Hero) → Wohnzimmer → 4 Schlafzimmer → Küche → Bäder → Flur.
        // Eine Aufnahme pro Raum, kein Detail-Spam.
        images: [
          PHOTO.ingolstadt_tropisch_13,  // gedeckter Esstisch (HERO, DSC00246)
          PHOTO.ingolstadt_tropisch_1,   // Wohnzimmer mit grünen Samtsofas (DSC00174)
          PHOTO.ingolstadt_tropisch_5,   // Schlafzimmer Tropical Tucan-Tapete (DSC00166)
          PHOTO.ingolstadt_tropisch_3,   // Schlafzimmer Doppelbett botanical (DSC00162)
          PHOTO.ingolstadt_tropisch_4,   // Schlafzimmer Twin / Einzelbetten (DSC00158)
          PHOTO.ingolstadt_tropisch_14,  // Schlafzimmer mit Netflix-TV (DSC00281)
          PHOTO.ingolstadt_tropisch_9,   // Küche gelb (DSC00190)
          PHOTO.ingolstadt_tropisch_11,  // Hauptbad (DSC00205)
          PHOTO.ingolstadt_tropisch_12,  // 2. Bad / Waschküche (DSC00208)
          PHOTO.ingolstadt_tropisch_2,   // Flur / Eingangsbereich (DSC00156)
        ],
      },
      {
        id: "in-streetart",
        title: { de: "Streetart Altstadtapartment", en: "Streetart Old Town Apartment" },
        rooms: 3, guests: 8, baths: 2, size: 115,
        bed: { de: "2× Kingsize + Schlafsofas", en: "2× Kingsize + sofa beds" },
        price: "ab 195€/Nacht",
        priceEn: "from €195/night",
        body: { de: "Großzügiges 3-Zimmer-Dachgeschoss-Apartment (115 m²) im historischen Zentrum Ingolstadts — freigelegte Holzbalken, helle Räume mit Dachfenstern, urbanes Streetart-Konzept. Voll ausgestattete Küche, getrennte Schlafbereiche, fußläufig zu allem. Ideal für Gruppen, Familien und längere Aufenthalte.", en: "Spacious 3-room loft apartment (115 sqm) in Ingolstadt's historic centre — exposed wooden beams, bright rooms with skylights, urban streetart concept. Fully equipped kitchen, separate sleeping areas, walking distance to everything. Ideal for groups, families and extended stays." },
        link: "https://luxomes.holidayfuture.com/listings/263033?numberOfGuests=1&city=Ingolstadt",
        // Curated order: gedeckter Tisch (Hero) → Wohnzimmer → 2 Schlafzimmer → Esstisch mit Banksy → Küche.
        images: [
          PHOTO.ingolstadt_streetart_3,   // Gedeckter Tisch unter Holzbalken (HERO, DSC00008)
          PHOTO.ingolstadt_streetart_1,   // Wohnzimmer mit grauen Sofas + Skylights (DSC00043)
          PHOTO.ingolstadt_streetart_16,  // Schlafzimmer ruhig mit Holzbalken (DSC00086) — Position 3
          PHOTO.ingolstadt_streetart_15,  // Schlafzimmer mit Banksy Heart-Wandtattoo (DSC00079)
          PHOTO.ingolstadt_streetart_4,   // Esstisch + Wohnzimmer mit Banksy-Zebra (DSC00018) — Position 5
          PHOTO.ingolstadt_streetart_12,  // Küche mit Banksy-Character (DSC00065)
          PHOTO.ingolstadt_streetart_2,   // Esstisch alternative Perspektive (DSC00006)
        ],
      },
      {
        id: "in-studio",
        title: { de: "Studio Apartment", en: "Studio apartment" },
        rooms: 1, guests: 2, baths: 1, size: 28,
        bed: { de: "Kingsize-Bett", en: "Kingsize bed" },
        price: "ab 89€/Nacht",
        priceEn: "from €89/night",
        body: { de: "Reduziertes Studio-Apartment für bis zu 2 Gäste — ideal für kurze Aufenthalte und effiziente Reisen.", en: "Minimal studio apartment for up to 2 guests — ideal for short stays and efficient travel." },
        link: "https://luxomes.holidayfuture.com/listings/148178?numberOfGuests=1&city=Ingolstadt",
        images: [PHOTO.ingolstadt_design_a, PHOTO.ingolstadt_design_b, PHOTO.ingolstadt_design_c, PHOTO.ingolstadt_design_d],
      },
      {
        id: "in-stylish-studio",
        title: { de: "Stylish Studio", en: "Stylish Studio" },
        rooms: 1, guests: 2, baths: 1, size: 26,
        bed: { de: "Kingsize-Bett", en: "Kingsize bed" },
        price: "ab 89€/Nacht",
        priceEn: "from €89/night",
        body: { de: "Stilvolles Studio im Herzen Ingolstadts — modernes Interieur, voll ausgestattete Küche, Netflix, eigener Parkplatz. Ideal für Geschäftsreisende und Paare, die zentral wohnen wollen.", en: "Stylish studio in the heart of Ingolstadt — modern interior, fully equipped kitchen, Netflix, own parking. Ideal for business travellers and couples who want to stay central." },
        link: "https://luxomes.holidayfuture.com/listings/148179?numberOfGuests=1&city=Ingolstadt",
        images: [PHOTO.ingolstadt_stylish_a, PHOTO.ingolstadt_stylish_b, PHOTO.ingolstadt_stylish_c, PHOTO.ingolstadt_stylish_d, PHOTO.ingolstadt_stylish_e],
      },
      {
        id: "in-studio-xl",
        title: { de: "Studio Apartment XL", en: "Studio apartment XL" },
        rooms: 1, guests: 4, baths: 1, size: 42,
        bed: { de: "Kingsize + Schlafsofa", en: "Kingsize + sofa bed" },
        price: "ab 115€/Nacht",
        priceEn: "from €115/night",
        body: { de: "Großzügiges Studio mit flexibler Schlafsituation — perfekt für Familien oder kleine Teams in zentraler Lage.", en: "Spacious studio with flexible sleeping setup — perfect for families or small teams in a central location." },
        link: "https://luxomes.holidayfuture.com/listings/148176?numberOfGuests=1&city=Ingolstadt",
        images: [PHOTO.ingolstadt_4p_a, PHOTO.ingolstadt_4p_b],
      },
      {
        id: "in-2zi",
        title: { de: "Modernes Apartment", en: "Modern Apartment" },
        rooms: 2, guests: 4, baths: 1, size: 58,
        bed: { de: "Kingsize + Schlafsofa", en: "Kingsize + sofa bed" },
        price: "ab 145€/Nacht",
        priceEn: "from €145/night",
        body: { de: "Modernes 2-Zimmer-Apartment mit voll ausgestatteter Küche und eigenem Parkplatz — der Komfort von zuhause bei Aufenthalten jeder Länge.", en: "Modern 2-room apartment with fully equipped kitchen and own parking — the comfort of home for stays of any length." },
        link: "https://luxomes.holidayfuture.com/listings/441019?numberOfGuests=1&city=Ingolstadt",
        images: [PHOTO.modern_4p_a, PHOTO.modern_4p_b, PHOTO.modern_4p_c, PHOTO.modern_4p_d, PHOTO.modern_4p_e],
      },
    ],
  },
  {
    key: "vilshofen",
    city: "Vilshofen an der Donau",
    region: { de: "Bayern · Niederbayern", en: "Bavaria · Lower Bavaria" },
    address: { de: "Altstadt an der Donau", en: "Old town by the Danube" },
    heroLead: {
      de: "Unser niederbayerischer Standort an der Donau — vier Apartmentkategorien vom kompakten Studio bis zum Penthouse, alle mit Stadt- oder Donaublick.",
      en: "Our Lower Bavarian location on the Danube — four apartment categories from compact studio to penthouse, all with city or river views.",
    },
    about: {
      de: "Vilshofen an der Donau verbindet Kleinstadt-Charme mit niederbayerischer Lebensart. Unsere Apartments in der historischen Altstadt bieten die perfekte Basis für Geschäftsreisen, Familienbesuche oder einfach eine Auszeit am Fluss.",
      en: "Vilshofen an der Donau combines small-town charm with Lower Bavarian lifestyle. Our apartments in the historic old town are the perfect base for business trips, family visits or simply time out by the river.",
    },
    distances: [
      { de: "Bahnhof Vilshofen", en: "Vilshofen station", val: "0.8 km" },
      { de: "Altstadt / Marktplatz", en: "Old town / market", val: "0.2 km" },
      { de: "Passau", en: "Passau", val: "25 km" },
      { de: "Autobahn A3", en: "A3 motorway", val: "3 km" },
      { de: "Flughafen München", en: "Munich airport", val: "130 km" },
    ],
    heroImages: [PHOTO.vilshofen_penthouse_a, PHOTO.vilshofen_2br_a, PHOTO.vilshofen_1br_a, PHOTO.vilshofen_studio_a, PHOTO.vilshofen_2br_c, PHOTO.vilshofen_penthouse_b],
    categories: [
      {
        id: "vil-studio",
        title: { de: "Studio Apartment", en: "Studio apartment" },
        rooms: 1, guests: 3, baths: 1, size: 32,
        bed: { de: "Kingsize + Schlafcouch", en: "Kingsize + sofa bed" },
        price: "ab 79€/Nacht",
        priceEn: "from €79/night",
        body: { de: "Effizient geschnittenes Studio für bis zu 3 Personen — zentrale Lage in Vilshofen, voll ausgestattet für flexible Aufenthalte.", en: "Efficient studio for up to 3 guests — central Vilshofen location, fully equipped for flexible stays." },
        link: "https://luxomes.holidayfuture.com/listings/306211?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
        images: [PHOTO.vilshofen_studio_a, PHOTO.vilshofen_studio_b, PHOTO.vilshofen_studio_c, PHOTO.vilshofen_studio_d],
      },
      {
        id: "vil-1b",
        title: { de: "Modernes 1-Zimmer Apartment", en: "Modern 1-bedroom apartment" },
        rooms: 2, guests: 4, baths: 1, size: 55,
        bed: { de: "Kingsize + Schlafsofa", en: "Kingsize + sofa bed" },
        price: "ab 85€/Nacht",
        priceEn: "from €85/night",
        body: { de: "Modernes 1-Zimmer Apartment in der Vilshofener Altstadt — separater Schlafraum, voll ausgestattete Küche und ruhige Lage trotz zentraler Nähe. Ideal für Paare, kleine Familien und Geschäftsreisende.", en: "Modern 1-bedroom apartment in Vilshofen's old town — separate sleeping area, fully equipped kitchen and quiet location despite being central. Ideal for couples, small families and business travellers." },
        link: "https://luxomes.holidayfuture.com/listings/306206?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
        images: [PHOTO.vilshofen_1br_a, PHOTO.vilshofen_1br_b, PHOTO.vilshofen_1br_c, PHOTO.vilshofen_1br_d, PHOTO.vilshofen_1br_e],
      },
      {
        id: "vil-3b",
        title: { de: "Apartment mit Stadtblick", en: "Apartment with city view" },
        rooms: 3, guests: 8, baths: 2, size: 95,
        bed: { de: "2× Kingsize + Schlafsofas", en: "2× Kingsize + sofa beds" },
        price: "ab 175€/Nacht",
        priceEn: "from €175/night",
        body: { de: "Großzügiges 3-Zimmer-Apartment mit Altstadtblick — zwei Schlafzimmer plus Wohnbereich, ideal für Familien, Teams oder längere Aufenthalte.", en: "Spacious 3-room apartment with old town view — two bedrooms plus living area, ideal for families, teams or longer stays." },
        link: "https://luxomes.holidayfuture.com/listings/421485?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
        images: [PHOTO.vilshofen_2br_a, PHOTO.vilshofen_2br_b, PHOTO.vilshofen_2br_c, PHOTO.vilshofen_2br_d, PHOTO.vilshofen_2br_e, PHOTO.vilshofen_2br_f],
      },
      {
        id: "vil-penthouse",
        title: { de: "Penthouse", en: "Penthouse" },
        rooms: 3, guests: 6, baths: 2, size: 120,
        bed: { de: "2× Kingsize + Schlafsofa", en: "2× Kingsize + sofa bed" },
        price: "ab 225€/Nacht",
        priceEn: "from €225/night",
        body: { de: "Unser Flaggschiff in Vilshofen — Premium-Ausstattung, großzügige Grundfläche, Dachterrasse mit Blick über die Altstadt bis zum Kirchturm.", en: "Our flagship in Vilshofen — premium fittings, generous floor area, rooftop terrace with view over the old town to the church tower." },
        link: "https://luxomes.holidayfuture.com/listings/421519?numberOfGuests=1&city=Vilshofen%20an%20der%20Donau",
        images: [PHOTO.vilshofen_penthouse_a, PHOTO.vilshofen_penthouse_b, PHOTO.vilshofen_penthouse_c, PHOTO.vilshofen_penthouse_d, PHOTO.vilshofen_penthouse_e, PHOTO.vilshofen_penthouse_f],
      },
    ],
  },
];

Object.assign(window, { COPY, CONFIG, APARTMENTS, HOME_FEATURED_IDS, BENEFITS, PROCESS_STEPS, FAQS, MGMT_WHY, MGMT_SERVICES, MGMT_MODULES, MGMT_EXAMPLE, MGMT_PROCESS, MGMT_TIERS, MGMT_FEATURES, MGMT_FEATURE_CATS, MGMT_MATRIX_NOTE, MGMT_CITY_BENCHMARKS, mgmtFindBenchmark, ABOUT_VALUES, IMG, PHOTO, LOCATIONS });
