{"id":21563,"date":"2025-12-29T12:48:52","date_gmt":"2025-12-29T11:48:52","guid":{"rendered":"https:\/\/limainvestimmobilien.de\/?page_id=21563"},"modified":"2026-06-11T15:25:41","modified_gmt":"2026-06-11T13:25:41","slug":"leistungsspektrum-immobilienservice-immobiliendienstleistungen-aus-einer-hand-erlesener-service","status":"publish","type":"page","link":"https:\/\/limainvestimmobilien.de\/en\/leistungsspektrum-immobilienservice-immobiliendienstleistungen-aus-einer-hand-erlesener-service\/","title":{"rendered":"Leistungsspektrum"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21563\" class=\"elementor elementor-21563\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b852f4d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b852f4d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c8bb123\" data-id=\"c8bb123\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-910a054 elementor-widget elementor-widget-html\" data-id=\"910a054\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!doctype html>\n<html lang=\"de\">\n<head>\n  <meta charset=\"utf-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <meta name=\"description\" content=\"Service anfragen bei Lima Invest Immobilien \u2014 Bewertung, Vermarktung, Bau und mehr.\" \/>\n  <title>Service anfragen \u00b7 Lima Invest Immobilien<\/title>\n\n  <!-- Editorial typography pairing: Fraunces (display serif) + Inter (body) -->\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\n\n  <style>\n    \/* =========================================================\n       Lima Invest \u00b7 Design Tokens\n       ========================================================= *\/\n    :root {\n      \/* Surfaces *\/\n      --bg:           #f6f4ee;          \/* warm off-white, editorial *\/\n      --bg-alt:       #ffffff;\n      --panel:        #ffffff;\n      --panel-tint:   #fbf9f3;\n\n      \/* Ink *\/\n      --ink:          #14110d;\n      --ink-soft:     #4a4640;\n      --ink-muted:    #8a847a;\n\n      \/* Brand *\/\n      --gold:         #bb9e1c;          \/* Lima CI gold *\/\n      --gold-deep:    #8a6f12;\n      --gold-soft:    rgba(187, 158, 28, 0.12);\n\n      \/* Accents *\/\n      --line:         #e6e1d6;\n      --line-strong:  #d6cfc0;\n      --field:        #fbf9f3;\n      --field-focus:  #ffffff;\n\n      \/* Status *\/\n      --ok:           #15803d;\n      --ok-bg:        #ecfdf5;\n      --err:          #b91c1c;\n      --err-bg:       #fef2f2;\n\n      \/* Scale (4px grid) *\/\n      --r-sm: 6px;\n      --r-md: 10px;\n      --r-lg: 14px;\n      --r-xl: 20px;\n\n      \/* Motion *\/\n      --ease:    cubic-bezier(.2, .7, .2, 1);\n      --ease-out:cubic-bezier(.16, 1, .3, 1);\n      --dur:     .35s;\n\n      \/* Shadows *\/\n      --shadow-sm: 0 1px 2px rgba(20, 17, 13, .04);\n      --shadow-md: 0 12px 28px -16px rgba(20, 17, 13, .14), 0 2px 6px rgba(20, 17, 13, .04);\n      --shadow-lg: 0 30px 60px -28px rgba(20, 17, 13, .22), 0 4px 12px rgba(20, 17, 13, .05);\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      *, *::before, *::after {\n        animation-duration: .01ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: .01ms !important;\n        scroll-behavior: auto !important;\n      }\n    }\n\n    \/* =========================================================\n       Reset\n       ========================================================= *\/\n    *, *::before, *::after { box-sizing: border-box; }\n\n    html { -webkit-text-size-adjust: 100%; }\n\n    body {\n      margin: 0;\n      font-family: 'Inter', system-ui, -apple-system, sans-serif;\n      font-size: 16px;\n      line-height: 1.6;\n      color: var(--ink);\n      background: var(--bg);\n      -webkit-font-smoothing: antialiased;\n      text-rendering: optimizeLegibility;\n      \/* subtle paper texture via layered gradients \u2014 atmospheric, not noisy *\/\n      background-image:\n        radial-gradient(900px 500px at 85% -10%, rgba(187, 158, 28, .08), transparent 60%),\n        radial-gradient(700px 400px at -10% 110%, rgba(187, 158, 28, .05), transparent 60%);\n      background-attachment: fixed;\n    }\n\n    img { max-width: 100%; display: block; }\n\n    button { font: inherit; cursor: pointer; }\n\n    \/* =========================================================\n       Layout\n       ========================================================= *\/\n    .container {\n      max-width: 1200px;\n      margin: 0 auto;\n      padding: 0 24px;\n      width: 100%;\n    }\n\n    \/* =========================================================\n       Page-load choreography\n       Single, deliberate reveal \u2014 no infinite loops anywhere\n       ========================================================= *\/\n    @keyframes rise {\n      from { opacity: 0; transform: translateY(14px); }\n      to   { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes fade {\n      from { opacity: 0; }\n      to   { opacity: 1; }\n    }\n    .reveal           { animation: rise .8s var(--ease-out) both; }\n    .reveal--1        { animation-delay: .05s; }\n    .reveal--2        { animation-delay: .15s; }\n    .reveal--3        { animation-delay: .25s; }\n    .reveal--4        { animation-delay: .35s; }\n\n    \/* =========================================================\n       Header\n       ========================================================= *\/\n    header {\n      padding: 56px 0 32px;\n    }\n\n    .eyebrow {\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      font-family: 'Inter', sans-serif;\n      font-size: 11px;\n      font-weight: 600;\n      letter-spacing: .18em;\n      text-transform: uppercase;\n      color: var(--gold-deep);\n      margin: 0 0 20px;\n    }\n    .eyebrow::before {\n      content: \"\";\n      width: 28px;\n      height: 1px;\n      background: var(--gold);\n    }\n\n    h1 {\n      font-family: 'Fraunces', Georgia, serif;\n      font-weight: 500;\n      font-size: clamp(40px, 6vw, 68px);\n      line-height: 1.02;\n      letter-spacing: -0.02em;\n      margin: 0 0 20px;\n      color: var(--ink);\n      font-variation-settings: \"opsz\" 144;\n    }\n    h1 em {\n      font-style: italic;\n      font-weight: 400;\n      color: var(--gold-deep);\n    }\n\n    .lede {\n      font-size: 17px;\n      line-height: 1.65;\n      color: var(--ink-soft);\n      max-width: 60ch;\n      margin: 0;\n    }\n    .lede strong {\n      color: var(--ink);\n      font-weight: 600;\n    }\n\n    .header-meta {\n      display: flex;\n      justify-content: space-between;\n      align-items: flex-end;\n      gap: 24px;\n      flex-wrap: wrap;\n      padding-top: 32px;\n      margin-top: 32px;\n      border-top: 1px solid var(--line);\n    }\n    .header-meta small {\n      font-family: 'Fraunces', Georgia, serif;\n      font-style: italic;\n      font-size: 14px;\n      color: var(--ink-muted);\n    }\n    .header-meta .number {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 13px;\n      letter-spacing: .15em;\n      color: var(--ink-muted);\n    }\n\n    \/* =========================================================\n       Grid\n       ========================================================= *\/\n    .grid {\n      display: grid;\n      grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);\n      gap: 32px;\n      align-items: start;\n      padding: 16px 0 80px;\n    }\n\n    @media (max-width: 920px) {\n      .grid { grid-template-columns: 1fr; gap: 24px; }\n    }\n\n    \/* =========================================================\n       Form Panel\n       ========================================================= *\/\n    .form-panel {\n      background: var(--panel);\n      border: 1px solid var(--line);\n      border-radius: var(--r-xl);\n      padding: 36px;\n      box-shadow: var(--shadow-md);\n      transition: box-shadow var(--dur) var(--ease);\n    }\n    .form-panel:focus-within {\n      box-shadow: var(--shadow-lg);\n    }\n\n    @media (max-width: 600px) {\n      .form-panel { padding: 24px; border-radius: var(--r-lg); }\n    }\n\n    .form-section-title {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: 13px;\n      font-weight: 500;\n      letter-spacing: .14em;\n      text-transform: uppercase;\n      color: var(--ink-muted);\n      margin: 0 0 18px;\n      padding-bottom: 14px;\n      border-bottom: 1px solid var(--line);\n    }\n    .form-section-title + .form-section-title { margin-top: 28px; }\n\n    .row {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 20px;\n      margin-bottom: 18px;\n    }\n    @media (max-width: 560px) { .row { grid-template-columns: 1fr; } }\n\n    .field { position: relative; }\n\n    .field label {\n      display: block;\n      font-size: 12px;\n      font-weight: 600;\n      color: var(--ink);\n      margin-bottom: 8px;\n      letter-spacing: .04em;\n    }\n    .field label .req {\n      color: var(--gold-deep);\n      margin-left: 2px;\n    }\n\n    .field input,\n    .field select,\n    .field textarea {\n      width: 100%;\n      font: 500 15px\/1.5 'Inter', system-ui, sans-serif;\n      color: var(--ink);\n      background: var(--field);\n      border: 1px solid var(--line);\n      border-radius: var(--r-md);\n      padding: 13px 14px;\n      transition:\n        border-color var(--dur) var(--ease),\n        background-color var(--dur) var(--ease),\n        box-shadow var(--dur) var(--ease);\n      outline: none;\n    }\n    .field textarea { min-height: 120px; resize: vertical; }\n\n    .field input::placeholder,\n    .field textarea::placeholder { color: rgba(74, 70, 64, .45); }\n\n    .field input:hover,\n    .field select:hover,\n    .field textarea:hover {\n      border-color: var(--line-strong);\n    }\n\n    .field input:focus,\n    .field select:focus,\n    .field textarea:focus {\n      background: var(--field-focus);\n      border-color: var(--gold);\n      box-shadow: 0 0 0 4px var(--gold-soft);\n    }\n\n    .field--invalid input,\n    .field--invalid select {\n      border-color: var(--err);\n      background: #fff;\n    }\n    .field-error {\n      display: none;\n      font-size: 12px;\n      font-weight: 500;\n      color: var(--err);\n      margin-top: 6px;\n    }\n    .field--invalid .field-error { display: block; }\n\n    \/* Custom select arrow *\/\n    .field select {\n      appearance: none;\n      -webkit-appearance: none;\n      background-image:\n        url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%238a6f12' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'\/><\/svg>\");\n      background-repeat: no-repeat;\n      background-position: right 14px center;\n      padding-right: 38px;\n    }\n\n    optgroup {\n      font-family: 'Fraunces', Georgia, serif;\n      font-style: italic;\n      font-weight: 500;\n      color: var(--gold-deep);\n    }\n    option { font-family: 'Inter', sans-serif; color: var(--ink); padding: 8px; }\n\n    \/* =========================================================\n       Submit\n       ========================================================= *\/\n    .actions {\n      display: flex;\n      align-items: center;\n      gap: 16px;\n      margin-top: 28px;\n      flex-wrap: wrap;\n    }\n\n    .btn-primary {\n      position: relative;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: 10px;\n      padding: 16px 28px;\n      font: 600 15px\/1 'Inter', sans-serif;\n      letter-spacing: .01em;\n      color: #fff;\n      background: var(--ink);\n      border: 1px solid var(--ink);\n      border-radius: var(--r-md);\n      transition: transform var(--dur) var(--ease),\n                  background-color var(--dur) var(--ease),\n                  box-shadow var(--dur) var(--ease);\n      box-shadow: var(--shadow-sm);\n      min-width: 220px;\n    }\n    .btn-primary:hover:not(:disabled) {\n      background: var(--gold-deep);\n      border-color: var(--gold-deep);\n      transform: translateY(-1px);\n      box-shadow: var(--shadow-md);\n    }\n    .btn-primary:active:not(:disabled) { transform: translateY(0); }\n    .btn-primary:focus-visible {\n      outline: 2px solid var(--gold);\n      outline-offset: 3px;\n    }\n    .btn-primary:disabled {\n      opacity: .55;\n      cursor: not-allowed;\n    }\n    .btn-primary .arrow {\n      transition: transform var(--dur) var(--ease);\n    }\n    .btn-primary:hover:not(:disabled) .arrow { transform: translateX(4px); }\n\n    .btn-primary.is-loading .label { opacity: .6; }\n    .btn-primary.is-loading .arrow { display: none; }\n    .btn-primary .spinner {\n      display: none;\n      width: 16px;\n      height: 16px;\n      border: 2px solid rgba(255,255,255,.3);\n      border-top-color: #fff;\n      border-radius: 50%;\n      animation: spin .8s linear infinite;\n    }\n    .btn-primary.is-loading .spinner { display: inline-block; }\n    @keyframes spin { to { transform: rotate(360deg); } }\n\n    .actions-note {\n      font-size: 13px;\n      color: var(--ink-muted);\n    }\n\n    \/* =========================================================\n       Status messages\n       ========================================================= *\/\n    .status {\n      margin-top: 18px;\n      padding: 14px 16px;\n      border-radius: var(--r-md);\n      font-size: 14px;\n      font-weight: 500;\n      display: none;\n      animation: fade .3s var(--ease-out);\n    }\n    .status[data-show=\"true\"] { display: block; }\n    .status--ok  { background: var(--ok-bg);  color: var(--ok);  border: 1px solid #bbf7d0; }\n    .status--err { background: var(--err-bg); color: var(--err); border: 1px solid #fecaca; }\n\n    \/* =========================================================\n       Info \/ Service Detail Panel\n       ========================================================= *\/\n    .info-panel {\n      background: var(--panel);\n      border: 1px solid var(--line);\n      border-radius: var(--r-xl);\n      overflow: hidden;\n      position: sticky;\n      top: 24px;\n      box-shadow: var(--shadow-md);\n    }\n\n    @media (max-width: 920px) {\n      .info-panel { position: static; }\n    }\n\n    .info-image {\n      position: relative;\n      width: 100%;\n      aspect-ratio: 16 \/ 10;\n      overflow: hidden;\n      background: var(--panel-tint);\n    }\n    .info-image::after {\n      \/* subtle warm overlay for cohesion *\/\n      content: \"\";\n      position: absolute; inset: 0;\n      background: linear-gradient(180deg, transparent 60%, rgba(20,17,13,.18));\n      pointer-events: none;\n    }\n    .info-image img {\n      width: 100%; height: 100%;\n      object-fit: cover;\n      transition: transform 1.2s var(--ease-out), opacity .4s var(--ease-out);\n    }\n    .info-panel:hover .info-image img { transform: scale(1.04); }\n\n    .info-image .tag {\n      position: absolute;\n      top: 16px; left: 16px;\n      padding: 6px 12px;\n      background: rgba(255,255,255,.92);\n      backdrop-filter: blur(6px);\n      border-radius: 99px;\n      font-size: 11px;\n      font-weight: 600;\n      letter-spacing: .12em;\n      text-transform: uppercase;\n      color: var(--gold-deep);\n      z-index: 1;\n    }\n\n    .info-content { padding: 28px; }\n\n    .info-content h2 {\n      font-family: 'Fraunces', Georgia, serif;\n      font-weight: 500;\n      font-size: 24px;\n      line-height: 1.2;\n      letter-spacing: -0.01em;\n      margin: 0 0 10px;\n      color: var(--ink);\n    }\n    .info-content > p {\n      font-size: 14px;\n      color: var(--ink-soft);\n      margin: 0 0 20px;\n      line-height: 1.65;\n    }\n\n    .feature-list {\n      list-style: none;\n      margin: 0 0 20px;\n      padding: 18px 0 0;\n      border-top: 1px solid var(--line);\n    }\n    .feature-list li {\n      display: flex;\n      align-items: flex-start;\n      gap: 10px;\n      font-size: 14px;\n      color: var(--ink);\n      padding: 6px 0;\n    }\n    .feature-list li svg {\n      flex-shrink: 0;\n      margin-top: 3px;\n      color: var(--gold);\n    }\n\n    .ext-link {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 10px 16px;\n      font-size: 13px;\n      font-weight: 600;\n      color: var(--gold-deep);\n      text-decoration: none;\n      background: var(--gold-soft);\n      border: 1px solid rgba(187, 158, 28, .38);\n      border-radius: var(--r-md);\n      margin-bottom: 18px;\n      transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);\n    }\n    .ext-link:hover {\n      background: rgba(187, 158, 28, .18);\n      transform: translateY(-1px);\n    }\n\n    .price-note {\n      font-size: 13px;\n      line-height: 1.6;\n      color: var(--ink-soft);\n      background: var(--panel-tint);\n      padding: 14px 16px;\n      border-radius: var(--r-md);\n      border-left: 3px solid var(--gold);\n    }\n    .price-note strong { color: var(--ink); font-weight: 600; }\n\n    \/* When info content swaps *\/\n    .info-swap {\n      animation: fade .35s var(--ease-out);\n    }\n\n\n    \/* =========================================================\n       Senior visual upgrade: ambient motion, focus hierarchy\n       ========================================================= *\/\n    @keyframes ambientDrift {\n      0%, 100% { transform: translate3d(0, 0, 0) scale(1); }\n      50%      { transform: translate3d(18px, -14px, 0) scale(1.08); }\n    }\n    @keyframes borderSweep {\n      0%   { transform: translateX(-120%) rotate(8deg); opacity: 0; }\n      20%  { opacity: .75; }\n      100% { transform: translateX(120%) rotate(8deg); opacity: 0; }\n    }\n    @keyframes softPulse {\n      0%, 100% { box-shadow: 0 0 0 0 rgba(187, 158, 28, .22), var(--shadow-md); }\n      50%      { box-shadow: 0 0 0 10px rgba(187, 158, 28, 0), var(--shadow-lg); }\n    }\n    @keyframes shine {\n      from { transform: translateX(-130%) skewX(-18deg); }\n      to   { transform: translateX(130%) skewX(-18deg); }\n    }\n    @keyframes optionNudge {\n      0% { transform: translateY(0); }\n      50% { transform: translateY(-2px); }\n      100% { transform: translateY(0); }\n    }\n\n    .ambient {\n      position: fixed;\n      inset: 0;\n      overflow: hidden;\n      pointer-events: none;\n      z-index: -1;\n    }\n    .ambient::before,\n    .ambient::after {\n      content: \"\";\n      position: absolute;\n      border-radius: 999px;\n      filter: blur(8px);\n      opacity: .65;\n      animation: ambientDrift 9s var(--ease-in-out, ease-in-out) infinite;\n    }\n    .ambient::before {\n      width: 360px;\n      height: 360px;\n      right: -120px;\n      top: 120px;\n      background: radial-gradient(circle, rgba(187,158,28,.16), transparent 64%);\n    }\n    .ambient::after {\n      width: 280px;\n      height: 280px;\n      left: -90px;\n      bottom: 90px;\n      background: radial-gradient(circle, rgba(20,17,13,.08), transparent 68%);\n      animation-delay: -4s;\n    }\n\n    .form-panel {\n      position: relative;\n      overflow: hidden;\n    }\n    .form-panel::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      pointer-events: none;\n      background:\n        linear-gradient(115deg, transparent 0%, rgba(187,158,28,.08) 45%, transparent 62%);\n      transform: translateX(-120%) skewX(-18deg);\n      opacity: 0;\n    }\n    .form-panel:hover::before {\n      animation: shine 1.4s var(--ease-out);\n      opacity: 1;\n    }\n\n    .field {\n      transition: transform .28s var(--ease), opacity .28s var(--ease);\n    }\n    .field:hover {\n      transform: translateY(-1px);\n    }\n\n    .service-spotlight {\n      position: relative;\n      margin: 0 0 24px;\n      padding: 22px;\n      border-radius: var(--r-xl);\n      border: 1px solid rgba(187, 158, 28, .52);\n      background:\n        linear-gradient(135deg, rgba(255,255,255,.96), rgba(251,249,243,.96)),\n        radial-gradient(700px 220px at 16% 0%, rgba(187,158,28,.18), transparent 55%);\n      box-shadow: 0 22px 50px -30px rgba(20,17,13,.28), 0 0 0 1px rgba(255,255,255,.45) inset;\n      isolation: isolate;\n      overflow: hidden;\n      animation: softPulse 3.8s var(--ease-out) infinite;\n    }\n    .service-spotlight::before {\n      content: \"\";\n      position: absolute;\n      inset: -1px;\n      border-radius: inherit;\n      padding: 1px;\n      background: linear-gradient(115deg, transparent 10%, rgba(187,158,28,.86), transparent 42%);\n      -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);\n      -webkit-mask-composite: xor;\n      mask-composite: exclude;\n      animation: borderSweep 3.7s var(--ease-out) infinite;\n      z-index: -1;\n    }\n    .service-spotlight::after {\n      content: \"\";\n      position: absolute;\n      right: -52px;\n      top: -52px;\n      width: 160px;\n      height: 160px;\n      border-radius: 999px;\n      background: radial-gradient(circle, rgba(187,158,28,.22), transparent 66%);\n      z-index: -1;\n    }\n\n    .service-head {\n      display: flex;\n      align-items: flex-start;\n      justify-content: space-between;\n      gap: 18px;\n      margin-bottom: 14px;\n    }\n    .service-kicker {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      margin: 0 0 6px;\n      font-size: 11px;\n      font-weight: 700;\n      letter-spacing: .15em;\n      text-transform: uppercase;\n      color: var(--gold-deep);\n    }\n    .service-kicker::before {\n      content: \"\";\n      width: 8px;\n      height: 8px;\n      border-radius: 999px;\n      background: var(--gold);\n      box-shadow: 0 0 0 6px rgba(187,158,28,.12);\n    }\n    .service-spotlight label {\n      font-family: 'Fraunces', Georgia, serif;\n      font-size: clamp(24px, 3vw, 34px);\n      line-height: 1.05;\n      letter-spacing: -0.02em;\n      margin: 0;\n      color: var(--ink);\n    }\n    .service-spotlight label .req {\n      color: var(--gold-deep);\n      font-family: 'Inter', system-ui, sans-serif;\n      font-size: .62em;\n      vertical-align: super;\n    }\n    .service-badge {\n      flex: 0 0 auto;\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      padding: 9px 12px;\n      border-radius: 999px;\n      background: #14110d;\n      color: #fff;\n      font-size: 11px;\n      font-weight: 700;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      box-shadow: var(--shadow-sm);\n    }\n    .service-badge svg { color: var(--gold); }\n    .service-help {\n      margin: 0 0 14px;\n      max-width: 60ch;\n      font-size: 14px;\n      line-height: 1.55;\n      color: var(--ink-soft);\n    }\n    .service-spotlight select {\n      min-height: 58px;\n      font-size: 16px;\n      font-weight: 700;\n      background-color: #fff;\n      border-color: rgba(187,158,28,.55);\n      box-shadow: 0 12px 24px -22px rgba(20,17,13,.42);\n    }\n    .service-spotlight select:hover,\n    .service-spotlight select:focus {\n      border-color: var(--gold);\n      box-shadow: 0 0 0 5px rgba(187,158,28,.14), 0 16px 30px -24px rgba(20,17,13,.45);\n    }\n    .service-choice-meta {\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 14px;\n      flex-wrap: wrap;\n      margin-top: 12px;\n      color: var(--ink-muted);\n      font-size: 12px;\n      font-weight: 600;\n    }\n    .service-choice-meta span:first-child {\n      color: var(--gold-deep);\n    }\n    .service-spotlight.is-selected {\n      animation: optionNudge .45s var(--ease-out), softPulse 4.6s var(--ease-out) infinite;\n    }\n\n    .info-panel {\n      transform-origin: top center;\n      transition: transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease-out);\n    }\n    .info-panel.is-updating {\n      transform: translateY(-4px) scale(1.01);\n      border-color: rgba(187,158,28,.55);\n      box-shadow: var(--shadow-lg);\n    }\n    .info-image::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background: linear-gradient(100deg, transparent 25%, rgba(255,255,255,.28) 48%, transparent 72%);\n      transform: translateX(-120%);\n      z-index: 2;\n      pointer-events: none;\n    }\n    .info-panel.is-updating .info-image::before {\n      animation: shine .95s var(--ease-out);\n    }\n    .feature-list li {\n      opacity: 0;\n      transform: translateY(8px);\n      animation: rise .45s var(--ease-out) forwards;\n    }\n    .feature-list li:nth-child(1) { animation-delay: .03s; }\n    .feature-list li:nth-child(2) { animation-delay: .08s; }\n    .feature-list li:nth-child(3) { animation-delay: .13s; }\n    .feature-list li:nth-child(4) { animation-delay: .18s; }\n    .feature-list li:nth-child(5) { animation-delay: .23s; }\n    .feature-list li:nth-child(6) { animation-delay: .28s; }\n\n    .btn-primary {\n      overflow: hidden;\n    }\n    .btn-primary::before {\n      content: \"\";\n      position: absolute;\n      inset: 0;\n      background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,.22), transparent 62%);\n      transform: translateX(-125%) skewX(-18deg);\n    }\n    .btn-primary:hover:not(:disabled)::before {\n      animation: shine .85s var(--ease-out);\n    }\n\n    @media (max-width: 600px) {\n      .service-spotlight { padding: 18px; border-radius: var(--r-lg); }\n      .service-head { flex-direction: column; gap: 12px; }\n      .service-badge { align-self: flex-start; }\n    }\n\n  <\/style>\n<\/head>\n\n<body>\n  <div class=\"ambient\" aria-hidden=\"true\"><\/div>\n\n  <header>\n    <div class=\"container\">\n      <p class=\"eyebrow reveal reveal--1\">Lima Invest \u00b7 Service-Anfrage<\/p>\n      <h1 class=\"reveal reveal--2\">\n        Service <em>anfragen.<\/em>\n      <\/h1>\n      <p class=\"lede reveal reveal--3\">\n        Unser Leistungsportfolio f\u00fcr Immobilienprofis \u2014 von Bewertung bis Vermarktung,\n        von Sanierung bis Asset Management.\n        <strong> L\u00f6sungen aus einer Hand, individuell kalkuliert.<\/strong>\n      <\/p>\n\n      <div class=\"header-meta reveal reveal--4\">\n        <small>Antwort meist innerhalb von 24 Stunden.<\/small>\n        <span class=\"number\">No. 01 \/ Anfrage<\/span>\n      <\/div>\n    <\/div>\n  <\/header>\n\n  <main class=\"container\">\n    <div class=\"grid\">\n\n      <!-- ============== FORM ============== -->\n      <section class=\"form-panel reveal reveal--3\" aria-labelledby=\"form-title\">\n        <h2 class=\"form-section-title\" id=\"form-title\">Ihre Kontaktdaten<\/h2>\n\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"name\">Name<\/label>\n            <input id=\"name\" name=\"name\" type=\"text\" autocomplete=\"name\" placeholder=\"Vor- und Nachname\" \/>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"phone\">Telefon<\/label>\n            <input id=\"phone\" name=\"phone\" type=\"tel\" autocomplete=\"tel\" placeholder=\"+49 \u2026\" \/>\n          <\/div>\n        <\/div>\n\n        <div class=\"row\">\n          <div class=\"field\" data-required=\"true\">\n            <label for=\"email\">E-Mail<span class=\"req\">*<\/span><\/label>\n            <input id=\"email\" name=\"email\" type=\"email\" autocomplete=\"email\" placeholder=\"name@firma.de\" required aria-describedby=\"email-error\" \/>\n            <div class=\"field-error\" id=\"email-error\" role=\"alert\">Bitte eine g\u00fcltige E-Mail-Adresse eintragen.<\/div>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"city\">Ort \/ Objekt<\/label>\n            <input id=\"city\" name=\"city\" type=\"text\" placeholder=\"Standort\" \/>\n          <\/div>\n        <\/div>\n\n        <h2 class=\"form-section-title\">Leistung &amp; Anliegen<\/h2>\n\n        <div class=\"field service-spotlight\" id=\"serviceSpotlight\" data-required=\"true\">\n          <div class=\"service-head\">\n            <div>\n              <p class=\"service-kicker\">Entscheidungspunkt<\/p>\n              <label for=\"service\">Gew\u00fcnschter Service<span class=\"req\">*<\/span><\/label>\n            <\/div>\n            <span class=\"service-badge\" aria-hidden=\"true\">\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n                <path d=\"M7 1.6l1.28 3.13 3.38.25-2.58 2.2.8 3.29L7 8.7l-2.88 1.77.8-3.29-2.58-2.2 3.38-.25L7 1.6z\" stroke=\"currentColor\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>\n              <\/svg>\n              Wichtig\n            <\/span>\n          <\/div>\n          <p class=\"service-help\">W\u00e4hlen Sie zuerst den gew\u00fcnschten Service. Die rechte Vorschau passt sich sofort an und zeigt Leistungen, Nutzen und n\u00e4chste Schritte.<\/p>\n          <select id=\"service\" name=\"service\" required aria-describedby=\"service-error service-selected-label\">\n            <option value=\"\" selected disabled>Bitte w\u00e4hlen \u2026<\/option>\n\n            <optgroup label=\"Bau, Sanierung &amp; Gro\u00dfprojekte\">\n              <option value=\"bausanierung\">Ganzheitliche Bau- &amp; Sanierungsl\u00f6sungen<\/option>\n            <\/optgroup>\n\n            <optgroup label=\"Verwaltung &amp; Expos\u00e9\">\n              <option value=\"expose\">Expos\u00e9-Erstellung (Web\/PDF)<\/option>\n              <option value=\"versicherung\">Immobilien-Versicherung<\/option>\n              <option value=\"concierge\">Concierge &amp; Asset Management<\/option>\n            <\/optgroup>\n\n            <optgroup label=\"Analyse &amp; Bewertung\">\n              <option value=\"pricehubble\">Premium Marktwertanalyse (PriceHubble)<\/option>\n              <option value=\"sprengnetter\">Wertermittlung (Sprengnetter)<\/option>\n              <option value=\"lageanalyse\">Lage- &amp; Umfeldanalyse<\/option>\n              <option value=\"portfolioanalyse\">Portfolio-Analyse &amp; Optimierung<\/option>\n            <\/optgroup>\n\n            <optgroup label=\"Visualisierung &amp; Medien\">\n              <option value=\"ogulo\">360\u00b0-Tour (Ogulo)<\/option>\n              <option value=\"staging\">Digitales Home Staging<\/option>\n              <option value=\"fotos\">Profifotos &amp; Medien<\/option>\n              <option value=\"video\">Immobilien-Video<\/option>\n              <option value=\"grundriss\">Grundriss-Service<\/option>\n            <\/optgroup>\n\n            <optgroup label=\"Prozesse &amp; Leads\">\n              <option value=\"bonitaet\">Bonit\u00e4tspr\u00fcfung (Mietercheck)<\/option>\n              <option value=\"websetup\">Website-Lead-Formulare<\/option>\n              <option value=\"finanzierung\">Finanzierungsberatung<\/option>\n            <\/optgroup>\n\n            <optgroup label=\"Spezialservices\">\n              <option value=\"investorenberatung\">Investorenberatung &amp; Akquisition<\/option>\n              <option value=\"rechtliche\">Rechtliche Beratung &amp; Dokumentation<\/option>\n            <\/optgroup>\n          <\/select>\n          <div class=\"service-choice-meta\">\n            <span id=\"service-selected-label\">Noch kein Service ausgew\u00e4hlt<\/span>\n            <span>Details erscheinen rechts automatisch<\/span>\n          <\/div>\n          <div class=\"field-error\" id=\"service-error\" role=\"alert\">Bitte einen Service ausw\u00e4hlen.<\/div>\n        <\/div>\n\n        <div class=\"field\" style=\"margin-bottom: 8px;\">\n          <label for=\"message\">Nachricht \/ Details<\/label>\n          <textarea id=\"message\" name=\"message\" placeholder=\"Beschreiben Sie kurz Ihr Anliegen, Volumen, Zeitrahmen \u2026\"><\/textarea>\n        <\/div>\n\n        <div class=\"actions\">\n          <button id=\"sendBtn\" class=\"btn-primary\" type=\"button\">\n            <span class=\"spinner\" aria-hidden=\"true\"><\/span>\n            <span class=\"label\">Anfrage senden<\/span>\n            <svg class=\"arrow\" width=\"16\" height=\"12\" viewBox=\"0 0 16 12\" fill=\"none\" aria-hidden=\"true\">\n              <path d=\"M1 6h13m0 0L9 1m5 5L9 11\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n            <\/svg>\n          <\/button>\n          <span class=\"actions-note\">\u00d6ffnet Ihr E-Mail-Programm.<\/span>\n        <\/div>\n\n        <div id=\"okBox\"  class=\"status status--ok\"  role=\"status\"><\/div>\n        <div id=\"errBox\" class=\"status status--err\" role=\"alert\"><\/div>\n      <\/section>\n\n      <!-- ============== INFO ============== -->\n      <aside class=\"info-panel reveal reveal--4\" id=\"infoPanel\" aria-live=\"polite\">\n        <div class=\"info-image\">\n          <span class=\"tag\" id=\"infoTag\">\u00dcbersicht<\/span>\n          <img decoding=\"async\" id=\"infoImg\"\n               src=\"https:\/\/images.unsplash.com\/photo-1486406146926-c627a92ad1ab?q=80&w=900&auto=format&fit=crop\"\n               alt=\"\" \/>\n        <\/div>\n        <div class=\"info-content\" id=\"infoContent\">\n          <h2 id=\"infoTitle\">Lima Invest Services<\/h2>\n          <p id=\"infoDesc\">\n            W\u00e4hlen Sie links einen Service aus \u2014 die passenden Details, Leistungen und Optionen erscheinen\n            hier automatisch.\n          <\/p>\n          <ul id=\"infoList\" class=\"feature-list\" hidden><\/ul>\n\n          <a id=\"extLinkBtn\" class=\"ext-link\" href=\"#\" target=\"_blank\" rel=\"noopener\" hidden><\/a>\n\n          <div class=\"price-note\">\n            <strong>Honorar.<\/strong> Leistungsumfang und Preis werden pers\u00f6nlich besprochen\n            und auf Ihr Projekt zugeschnitten.\n          <\/div>\n        <\/div>\n      <\/aside>\n\n    <\/div>\n  <\/main>\n\n  <script>\n    (() => {\n      'use strict';\n\n      \/\/ === Service content ============================================\n      const TAG_DEFAULT = '\u00dcbersicht';\n      const data = {\n        default: {\n          tag: TAG_DEFAULT,\n          title: 'Lima Invest Services',\n          desc:  'W\u00e4hlen Sie links einen Service aus \u2014 die passenden Details, Leistungen und Optionen erscheinen hier automatisch.',\n          img:   'https:\/\/images.unsplash.com\/photo-1486406146926-c627a92ad1ab?q=80&w=900&auto=format&fit=crop',\n          features: []\n        },\n        bausanierung: {\n          tag: 'Bau & Sanierung',\n          title: 'Ganzheitliche Bau- & Sanierungsl\u00f6sungen',\n          desc:  'Anspruchsvolle Bau- und Sanierungsprojekte, terminsicher und wirtschaftlich umgesetzt \u2014 von der Planung bis zur Schl\u00fcssel\u00fcbergabe.',\n          img:   'https:\/\/images.unsplash.com\/photo-1541888946425-d81bb19240f5?q=80&w=900&auto=format&fit=crop',\n          features: [\n            'Modulbau & Hotelbau der neuen Generation',\n            'Kernsanierung & Revitalisierung',\n            'Gewerbe-, Handels- & Spezialimmobilien',\n            'B\u00e4der- & Spa-Projekte (InterSPA)',\n            'Alle Gewerke aus einer Hand',\n            'Volumina bis >100 Mio. \u20ac'\n          ]\n        },\n        expose: {\n          tag: 'Verwaltung',\n          title: 'Expos\u00e9-Erstellung & Design',\n          desc:  'Verkaufsstarke Expos\u00e9s, wahlweise als interaktives Web-Expos\u00e9 oder hochwertiges PDF \u2014 perfekt aufbereitet in Ihrer CI.',\n          img:   'https:\/\/images.unsplash.com\/photo-1586281380349-632531db7ed4?q=80&w=900&auto=format&fit=crop',\n          features: [\n            'Hochwertiges Web-Expos\u00e9 oder PDF',\n            'Professionelle Lagebeschreibung',\n            'Aufbereitung Keyfacts & Bilder',\n            'Hinterlegung Ihrer AGB',\n            'Design in Ihrer Corporate Identity'\n          ]\n        },\n        versicherung: {\n          tag: 'Verwaltung',\n          title: 'Immobilien-Versicherung',\n          desc:  'Optimaler Schutz f\u00fcr Ihr Asset. Wir vermitteln leistungsstarke L\u00f6sungen f\u00fcr Eigent\u00fcmer und Portfolios.',\n          img:   'https:\/\/images.unsplash.com\/photo-1450101499163-c8848c66ca85?q=80&w=900&auto=format&fit=crop',\n          features: [\n            'Geb\u00e4udeversicherung',\n            'Mietverlust & Haftpflicht',\n            'Elementarschaden-Schutz',\n            'Portfolio-Rahmenvertr\u00e4ge'\n          ]\n        },\n        concierge: {\n          tag: 'Verwaltung',\n          title: 'Concierge & Asset Management',\n          desc:  'Umfassende Verwaltung und Betreuung Ihrer Immobilien \u2014 von Instandhaltung bis zu exklusiven Bewohner-Services.',\n          img:   'https:\/\/images.unsplash.com\/photo-1552664730-d307ca884978?q=80&w=900&auto=format&fit=crop',\n          features: [\n            '24\/7 Bewohnerbetreuung',\n            'Instandhaltung & Reparatur-Management',\n            'Sicherheits- & Zugangsmanagement',\n            'Lifestyle-Services f\u00fcr Bewohner',\n            'Dokumentation & Reporting'\n          ]\n        },\n        portfolioanalyse: {\n          tag: 'Analyse',\n          title: 'Portfolio-Analyse & Optimierung',\n          desc:  'Strategische Analyse und Optimierung Ihres Immobilienportfolios \u2014 Rendite maximieren, Risiken minimieren.',\n          img:   'https:\/\/images.unsplash.com\/photo-1551288049-bebda4e38f71?q=80&w=900&auto=format&fit=crop',\n          features: [\n            'Gesamtportfolio-Bewertung',\n            'Rendite- & Risikoanalyse',\n            'Strategische Empfehlungen',\n            'Marktpositionierung',\n            'Diversifikationsanalyse'\n          ]\n        },\n        ogulo: {\n          tag: 'Visualisierung',\n          title: '360\u00b0-Tour (Ogulo)',\n          desc:  'Sparen Sie sich Besichtigungstourismus. Eine virtuelle Tour filtert Interessenten vor und \u00fcberzeugt echte K\u00e4ufer digital.',\n          img:   'https:\/\/images.unsplash.com\/photo-1558036117-15d82a90b9b1?q=80&w=900&auto=format&fit=crop',\n          features: ['VR-kompatibel', 'Passwortgesch\u00fctzter Zugang', 'Besucher-Tracking', 'Interaktive Hotspots']\n        },\n        pricehubble: {\n          tag: 'Analyse',\n          title: 'Marktwertanalyse (PriceHubble)',\n          desc:  'High-End-Datenanalyse f\u00fcr den optimalen Angebotspreis. Marktdynamiken sofort erkennen.',\n          img:   'https:\/\/images.unsplash.com\/photo-1551288049-bebda4e38f71?q=80&w=900&auto=format&fit=crop',\n          features: ['Realistische Preisspannen', 'Vergleichsobjekte', 'Marktvolumen-Check', 'Trend-Analyse']\n        },\n        sprengnetter: {\n          tag: 'Bewertung',\n          title: 'Wertermittlung (Sprengnetter)',\n          desc:  'Bankanerkannte Bewertungsmethoden f\u00fcr maximale Sicherheit im Verkaufsprozess.',\n          img:   'https:\/\/images.unsplash.com\/photo-1454165804606-c3d57bc86b40?q=80&w=900&auto=format&fit=crop',\n          features: ['Sachwert- & Ertragswert', 'Offizieller Report', 'Bankenstandard', 'Finanzierungssicherheit']\n        },\n        lageanalyse: {\n          tag: 'Analyse',\n          title: 'Lage- & Umfeldanalyse',\n          desc:  'Detailliertes Dossier zu Infrastruktur, Demografie und Anbindung.',\n          img:   'https:\/\/images.unsplash.com\/photo-1524661135-423995f22d0b?q=80&w=900&auto=format&fit=crop',\n          features: ['Infrastruktur-Check', 'Soziodemografie', 'L\u00e4rmkataster', 'Verkehrsanbindung']\n        },\n        staging: {\n          tag: 'Visualisierung',\n          title: 'Digitales Home Staging',\n          desc:  'M\u00f6blieren Sie leere R\u00e4ume digital f\u00fcr emotionale Expos\u00e9-Bilder.',\n          img:   'https:\/\/images.unsplash.com\/photo-1618221195710-dd6b41faaea6?q=80&w=900&auto=format&fit=crop',\n          features: ['Vorher \/ Nachher', 'Moderner Stil', 'Verkaufsbeschleuniger', 'Mehrere Varianten']\n        },\n        fotos: {\n          tag: 'Medien',\n          title: 'Profifotos & Medien',\n          desc:  'Perfekt belichtete Immobilienfotos durch professionelle Partner.',\n          img:   'https:\/\/images.unsplash.com\/photo-1542038784456-1ea8e935640e?q=80&w=900&auto=format&fit=crop',\n          features: ['HDR-Technik', 'Blue-Sky', 'High-End-Editing', 'Drohnen-Perspektiven']\n        },\n        video: {\n          tag: 'Medien',\n          title: 'Immobilien-Video',\n          desc:  'Emotionale Clips f\u00fcr Social Media und Website.',\n          img:   'https:\/\/images.unsplash.com\/photo-1579298245158-33e8f568f7d3?q=80&w=900&auto=format&fit=crop',\n          features: ['Schnitt & Musik', 'Social-Media-Formate', 'Drohnen-Option', '4K-Qualit\u00e4t']\n        },\n        grundriss: {\n          tag: 'Medien',\n          title: 'Grundriss-Service',\n          desc:  'Aufbereitung alter Pl\u00e4ne in moderne 2D\/3D-Verkaufs-Grundrisse.',\n          img:   'https:\/\/images.unsplash.com\/photo-1502005229762-cf1b2da7c5d6?q=80&w=900&auto=format&fit=crop',\n          features: ['Ma\u00dfhaltig', 'M\u00f6bliert \/ Unm\u00f6bliert', 'Modernes Design', '3D-Varianten']\n        },\n        bonitaet: {\n          tag: 'Prozesse',\n          title: 'Bonit\u00e4tspr\u00fcfung',\n          desc:  'Sicherer Check der finanziellen Situation von Mietern und K\u00e4ufern.',\n          img:   'https:\/\/images.unsplash.com\/photo-1554224155-8d04cb21cd6c?q=80&w=900&auto=format&fit=crop',\n          features: ['Schufa-Abgleich', 'Identit\u00e4ts-Check', 'Zertifikat', 'Schnelle Bearbeitung']\n        },\n        websetup: {\n          tag: 'Prozesse',\n          title: 'Website & Lead-Tools',\n          desc:  'Technische Integration von Lead-Formularen in Ihre Webseite \u2014 f\u00fcr mehr und bessere Anfragen.',\n          img:   'https:\/\/images.unsplash.com\/photo-1460925895917-afdab827c52f?q=80&w=900&auto=format&fit=crop',\n          features: ['DSGVO-konform', 'Lead-Funnel', 'CRM-Anbindung', 'Analytics'],\n          linkUrl:  'https:\/\/limainvestimmobilien.de\/shop\/',\n          linkText: 'Zum Tool-Shop \u2192'\n        },\n        finanzierung: {\n          tag: 'Prozesse',\n          title: 'Finanzierungsberatung',\n          desc:  'Professionelle Unterst\u00fctzung bei der Finanzierung Ihrer Immobilienprojekte.',\n          img:   'https:\/\/images.unsplash.com\/photo-1454165804606-c3d57bc86b40?q=80&w=900&auto=format&fit=crop',\n          features: ['Finanzierungskonzepte', 'Bankverbindungen & Netzwerk', 'Konditionsverhandlung', 'Dokumentation & Abwicklung']\n        },\n        investorenberatung: {\n          tag: 'Spezialservice',\n          title: 'Investorenberatung & Akquisition',\n          desc:  'Strategische Beratung und Vermittlung von Investitionsm\u00f6glichkeiten.',\n          img:   'https:\/\/images.unsplash.com\/photo-1552664730-d307ca884978?q=80&w=900&auto=format&fit=crop',\n          features: ['Off-Market Deals', 'Investorenakquisition', 'Due-Diligence-Begleitung', 'Strategische Positionierung']\n        },\n        rechtliche: {\n          tag: 'Spezialservice',\n          title: 'Rechtliche Beratung & Dokumentation',\n          desc:  'Umfassende rechtliche Unterst\u00fctzung f\u00fcr Ihre Immobilientransaktionen.',\n          img:   'https:\/\/images.unsplash.com\/photo-1507003211169-0a1dd7228f2d?q=80&w=900&auto=format&fit=crop',\n          features: ['Vertragsgestaltung', 'Compliance & Regulierung', 'Dokumentenmanagement', 'Notarielle Begleitung']\n        }\n      };\n\n      const TO_EMAIL = 'anfrage@limaimmobilien.com';\n      const $ = (id) => document.getElementById(id);\n\n      const ui = {\n        service: $('service'),\n        email:   $('email'),\n        name:    $('name'),\n        phone:   $('phone'),\n        city:    $('city'),\n        message: $('message'),\n        btn:     $('sendBtn'),\n        ok:      $('okBox'),\n        err:     $('errBox'),\n        infoTag:     $('infoTag'),\n        infoTitle:   $('infoTitle'),\n        infoDesc:    $('infoDesc'),\n        infoImg:     $('infoImg'),\n        infoList:    $('infoList'),\n        infoContent: $('infoContent'),\n        extLink:     $('extLinkBtn'),\n        infoPanel:   $('infoPanel'),\n        spotlight:   $('serviceSpotlight'),\n        selectedLabel: $('service-selected-label')\n      };\n\n      \/\/ === Validation =================================================\n      const isEmail = (v) => \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v);\n\n      const setInvalid = (input, invalid) => {\n        const field = input.closest('.field');\n        if (!field) return;\n        field.classList.toggle('field--invalid', invalid);\n      };\n\n      ui.email.addEventListener('blur', () => {\n        const v = ui.email.value.trim();\n        setInvalid(ui.email, v !== '' && !isEmail(v));\n      });\n      ui.email.addEventListener('input', () => setInvalid(ui.email, false));\n      ui.service.addEventListener('change', () => setInvalid(ui.service, false));\n\n      \/\/ === Sidebar swap ===============================================\n      const renderInfo = (key) => {\n        const d = data[key] || data.default;\n        const hasSelection = Boolean(key);\n\n        ui.spotlight.classList.toggle('is-selected', hasSelection);\n        ui.selectedLabel.textContent = hasSelection ? `Ausgew\u00e4hlt: ${d.title}` : 'Noch kein Service ausgew\u00e4hlt';\n\n        \/\/ restart animations cleanly\n        ui.infoContent.classList.remove('info-swap');\n        ui.infoPanel.classList.remove('is-updating');\n        void ui.infoContent.offsetWidth;\n        ui.infoContent.classList.add('info-swap');\n        ui.infoPanel.classList.add('is-updating');\n        window.setTimeout(() => ui.infoPanel.classList.remove('is-updating'), 700);\n\n        ui.infoTag.textContent   = d.tag || TAG_DEFAULT;\n        ui.infoTitle.textContent = d.title;\n        ui.infoDesc.textContent  = d.desc;\n        ui.infoImg.src           = d.img;\n        ui.infoImg.alt           = d.title;\n\n        \/\/ features\n        ui.infoList.innerHTML = '';\n        if (d.features && d.features.length) {\n          ui.infoList.hidden = false;\n          d.features.forEach(text => {\n            const li = document.createElement('li');\n            li.innerHTML = `\n              <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M2 7l3.5 3.5L12 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n              <\/svg>\n              <span><\/span>`;\n            li.querySelector('span').textContent = text;\n            ui.infoList.appendChild(li);\n          });\n        } else {\n          ui.infoList.hidden = true;\n        }\n\n        \/\/ external link\n        if (d.linkUrl) {\n          ui.extLink.href = d.linkUrl;\n          ui.extLink.textContent = d.linkText || 'Mehr erfahren \u2192';\n          ui.extLink.hidden = false;\n        } else {\n          ui.extLink.hidden = true;\n        }\n      };\n\n      ui.service.addEventListener('change', e => renderInfo(e.target.value));\n      renderInfo(ui.service.value);\n\n      \/\/ === Status helpers =============================================\n      const showStatus = (el, otherEl, msg) => {\n        otherEl.removeAttribute('data-show');\n        otherEl.textContent = '';\n        el.textContent = msg;\n        el.setAttribute('data-show', 'true');\n      };\n      const clearStatus = () => {\n        ui.ok.removeAttribute('data-show');\n        ui.err.removeAttribute('data-show');\n      };\n\n      \/\/ === Submit =====================================================\n      ui.btn.addEventListener('click', () => {\n        clearStatus();\n\n        const serviceVal = ui.service.value;\n        const emailVal   = ui.email.value.trim();\n\n        const errors = [];\n        if (!serviceVal)        { setInvalid(ui.service, true); errors.push('Service'); }\n        if (!isEmail(emailVal)) { setInvalid(ui.email,   true); errors.push('E-Mail');  }\n\n        if (errors.length) {\n          showStatus(ui.err, ui.ok, `Bitte ${errors.join(' und ')} pr\u00fcfen.`);\n          return;\n        }\n\n        const d = data[serviceVal] || {};\n        const serviceName = d.title || serviceVal;\n\n        const body = [\n          'Hallo Lima-Invest-Team,',\n          '',\n          'ich m\u00f6chte folgenden Service anfragen:',\n          `>> ${serviceName}`,\n          '',\n          '\u2014 Projektdaten \u2014',\n          `Name:    ${ui.name.value.trim()}`,\n          `E-Mail:  ${emailVal}`,\n          `Telefon: ${ui.phone.value.trim()}`,\n          `Ort:     ${ui.city.value.trim()}`,\n          '',\n          '\u2014 Nachricht \u2014',\n          ui.message.value.trim() || '(keine Nachricht)',\n          '',\n          'Ich bitte um Kontaktaufnahme zur Abstimmung.',\n          'Beste Gr\u00fc\u00dfe'\n        ].join('\\n');\n\n        const subject = `Anfrage: ${serviceName}`;\n\n        \/\/ Loading state \u2014 short, just for visual feedback before mailto\n        ui.btn.classList.add('is-loading');\n        ui.btn.disabled = true;\n        showStatus(ui.ok, ui.err, 'E-Mail-Programm wird ge\u00f6ffnet \u2026');\n\n        setTimeout(() => {\n          window.location.href = `mailto:${TO_EMAIL}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n          ui.btn.classList.remove('is-loading');\n          ui.btn.disabled = false;\n        }, 350);\n      });\n    })();\n  <\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Service anfragen \u00b7 Lima Invest Immobilien Lima Invest \u00b7 Service-Anfrage Service anfragen. Unser Leistungsportfolio f\u00fcr Immobilienprofis \u2014 von Bewertung bis Vermarktung, von Sanierung bis Asset Management. L\u00f6sungen aus einer Hand, individuell kalkuliert. Antwort meist innerhalb von 24 Stunden. No. 01 \/ Anfrage Ihre Kontaktdaten Name Telefon E-Mail* Bitte eine g\u00fcltige E-Mail-Adresse eintragen. Ort \/ Objekt&#8230;<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-21563","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/comments?post=21563"}],"version-history":[{"count":10,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21563\/revisions"}],"predecessor-version":[{"id":23554,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21563\/revisions\/23554"}],"wp:attachment":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/media?parent=21563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}