{"id":21340,"date":"2025-12-27T08:29:55","date_gmt":"2025-12-27T07:29:55","guid":{"rendered":"https:\/\/limainvestimmobilien.de\/?page_id=21340"},"modified":"2026-06-05T11:50:35","modified_gmt":"2026-06-05T09:50:35","slug":"swot-analyse-immobilien","status":"publish","type":"page","link":"https:\/\/limainvestimmobilien.de\/en\/swot-analyse-immobilien\/","title":{"rendered":"SWOT-Analyse"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21340\" class=\"elementor elementor-21340\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-fde988a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"fde988a\" 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-d7be11a\" data-id=\"d7be11a\" 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-f5b09c0 elementor-widget elementor-widget-html\" data-id=\"f5b09c0\" 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.0\">\n    <title>Lima Invest | Professional Asset Evaluation<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400&family=JetBrains+Mono:wght@500;700&display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --gold: #c4a235;\n            --gold-light: #f5edcf;\n            --gold-dark: #7a6516;\n            --ink: #111318;\n            --ink-soft: #2c2f36;\n            --text: #3d4048;\n            --text-muted: #7a7e8a;\n            --text-faint: #a5a9b5;\n            --bg: #f0f1f4;\n            --bg-warm: #f7f6f3;\n            --card: #ffffff;\n            --border: #e3e5ea;\n            --border-light: #eff0f3;\n\n            --green: #1a8f5c;\n            --green-bg: #e8f7f0;\n            --green-border: #b5e4ce;\n            --red: #c43838;\n            --red-bg: #fceaea;\n            --red-border: #f0b8b8;\n            --blue: #2563a8;\n            --blue-bg: #e7f0fa;\n            --blue-border: #b3d1f0;\n            --amber: #b8860b;\n            --amber-bg: #fdf5e1;\n            --amber-border: #f0d88a;\n\n            --radius: 10px;\n            --radius-sm: 6px;\n            --shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 16px rgba(0,0,0,0.04);\n            --shadow-lg: 0 4px 24px rgba(0,0,0,0.08);\n        }\n\n        * { box-sizing: border-box; -webkit-print-color-adjust: exact; print-color-adjust: exact; }\n\n        body {\n            font-family: 'Poppins', system-ui, sans-serif;\n            background: var(--bg);\n            color: var(--text);\n            margin: 0; padding: 0; line-height: 1.55;\n            -webkit-font-smoothing: antialiased;\n        }\n\n        .container { max-width: 1360px; margin: 0 auto; padding: 0 24px; }\n\n        \/* === ANIMATIONS === *\/\n        @keyframes fadeInUp {\n            from { opacity: 0; transform: translateY(18px); }\n            to { opacity: 1; transform: translateY(0); }\n        }\n        @keyframes fadeIn {\n            from { opacity: 0; }\n            to { opacity: 1; }\n        }\n        @keyframes slideInLeft {\n            from { opacity: 0; transform: translateX(-20px); }\n            to { opacity: 1; transform: translateX(0); }\n        }\n        @keyframes slideInRight {\n            from { opacity: 0; transform: translateX(20px); }\n            to { opacity: 1; transform: translateX(0); }\n        }\n        @keyframes scaleIn {\n            from { opacity: 0; transform: scale(0.92); }\n            to { opacity: 1; transform: scale(1); }\n        }\n        @keyframes kpiBarGrow {\n            from { width: 0; }\n            to { width: 100%; }\n        }\n        @keyframes countPulse {\n            0% { transform: scale(1); }\n            50% { transform: scale(1.04); }\n            100% { transform: scale(1); }\n        }\n        @keyframes verdictReveal {\n            from { opacity: 0; transform: translateY(24px) scale(0.97); }\n            to { opacity: 1; transform: translateY(0) scale(1); }\n        }\n        @keyframes ringPulse {\n            0% { box-shadow: 0 4px 20px rgba(0,0,0,0.15); }\n            50% { box-shadow: 0 4px 30px rgba(0,0,0,0.25); }\n            100% { box-shadow: 0 4px 20px rgba(0,0,0,0.15); }\n        }\n        @keyframes shimmer {\n            0% { background-position: -200% 0; }\n            100% { background-position: 200% 0; }\n        }\n\n        \/* Animate on load *\/\n        .sidebar .card {\n            animation: slideInLeft 0.5s ease both;\n        }\n        .sidebar .card:nth-child(1) { animation-delay: 0.05s; }\n        .sidebar .card:nth-child(2) { animation-delay: 0.15s; }\n        .sidebar .card:nth-child(3) { animation-delay: 0.25s; }\n\n        .title-area { animation: fadeInUp 0.5s ease both; animation-delay: 0.1s; }\n\n        .kpi-strip .kpi {\n            animation: fadeInUp 0.45s ease both;\n        }\n        .kpi-strip .kpi:nth-child(1) { animation-delay: 0.15s; }\n        .kpi-strip .kpi:nth-child(2) { animation-delay: 0.22s; }\n        .kpi-strip .kpi:nth-child(3) { animation-delay: 0.29s; }\n        .kpi-strip .kpi:nth-child(4) { animation-delay: 0.36s; }\n\n        .assessment-card { animation: fadeInUp 0.5s ease both; animation-delay: 0.4s; }\n\n        .section-divider { animation: fadeIn 0.4s ease both; animation-delay: 0.45s; }\n        .swot-controls { animation: fadeIn 0.4s ease both; animation-delay: 0.5s; }\n\n        .swot-matrix .swot-card {\n            animation: scaleIn 0.45s ease both;\n        }\n        .swot-matrix .swot-card:nth-child(1) { animation-delay: 0.5s; }\n        .swot-matrix .swot-card:nth-child(2) { animation-delay: 0.58s; }\n        .swot-matrix .swot-card:nth-child(3) { animation-delay: 0.66s; }\n        .swot-matrix .swot-card:nth-child(4) { animation-delay: 0.74s; }\n\n        .verdict-box { animation: verdictReveal 0.6s ease both; animation-delay: 0.8s; }\n\n        \/* Interactive transitions *\/\n        .kpi {\n            transition: transform 0.25s ease, box-shadow 0.25s ease;\n        }\n        .kpi:hover {\n            transform: translateY(-3px);\n            box-shadow: var(--shadow-lg);\n        }\n        .kpi-value {\n            transition: color 0.3s ease;\n        }\n        .kpi-value.updating {\n            animation: countPulse 0.3s ease;\n        }\n\n        .swot-item {\n            transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;\n        }\n        .swot-item:hover {\n            transform: translateX(3px);\n            box-shadow: 0 2px 8px rgba(0,0,0,0.06);\n        }\n\n        .verdict-score-ring {\n            transition: all 0.5s ease;\n            animation: ringPulse 3s ease-in-out infinite;\n        }\n\n        .assessment-card {\n            transition: box-shadow 0.3s ease;\n        }\n        .assessment-card:hover {\n            box-shadow: var(--shadow-lg);\n        }\n\n        .swot-card {\n            transition: transform 0.2s ease, box-shadow 0.2s ease;\n        }\n        .swot-card:hover {\n            box-shadow: var(--shadow-lg);\n        }\n\n        \/* SWOT item enter animation *\/\n        .swot-item.entering {\n            animation: fadeInUp 0.3s ease both;\n        }\n\n        \/* Verdict change transition *\/\n        .verdict-box.transitioning {\n            animation: verdictReveal 0.4s ease both;\n        }\n\n        \/* KPI bar shimmer *\/\n        .kpi::before {\n            transition: background 0.5s ease;\n        }\n        .kpi.highlight::before {\n            background: linear-gradient(90deg, var(--gold), #e8c84a, var(--gold));\n            background-size: 200% 100%;\n            animation: shimmer 1.5s ease;\n        }\n\n        \/* Form focus glow *\/\n        input:focus, select:focus {\n            border-color: var(--gold);\n            box-shadow: 0 0 0 3px rgba(196,162,53,0.12);\n            transition: all 0.2s ease;\n        }\n\n        \/* Card hover lift *\/\n        .sidebar .card {\n            transition: box-shadow 0.25s ease;\n        }\n        .sidebar .card:hover {\n            box-shadow: var(--shadow-lg);\n        }\n\n        \/* === HEADER === *\/\n        header {\n            background: #ffffff;\n            padding: 0;\n            position: sticky; top: 0; z-index: 100;\n            border-bottom: 1px solid var(--border);\n            box-shadow: 0 1px 8px rgba(0,0,0,0.04);\n        }\n        .header-inner {\n            display: flex; justify-content: space-between; align-items: center;\n            padding: 14px 0;\n        }\n        .brand { display: flex; align-items: center; gap: 14px; }\n        .brand h1 {\n            margin: 0; font-family: 'Poppins', sans-serif;\n            font-size: 16px; font-weight: 700; color: var(--ink);\n            letter-spacing: 2px; text-transform: uppercase;\n        }\n        .brand p {\n            margin: 0; font-size: 10px; color: var(--gold-dark);\n            font-weight: 600; text-transform: uppercase; letter-spacing: 1.5px; margin-top: 1px;\n        }\n        .header-actions { display: flex; gap: 10px; align-items: center; }\n\n        .btn {\n            border: none; padding: 9px 20px; border-radius: 5px;\n            cursor: pointer; font-family: inherit; font-weight: 600; font-size: 12px;\n            letter-spacing: 0.5px; text-transform: uppercase; transition: all 0.25s ease;\n        }\n        .btn-primary { background: var(--gold); color: var(--ink); }\n        .btn-primary:hover { background: #d4b23f; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(196,162,53,0.3); }\n        .btn-ghost { background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); }\n        .btn-ghost:hover { background: var(--border-light); color: var(--ink-soft); border-color: var(--text-faint); }\n\n        \/* === INTRO CARD === *\/\n        .intro-card {\n            display: grid;\n            grid-template-columns: 300px 1fr;\n            background: var(--card);\n            border-radius: var(--radius);\n            overflow: hidden;\n            box-shadow: var(--shadow);\n            border: 1px solid var(--border);\n            margin: 28px 0 0;\n            animation: fadeInUp 0.5s ease both;\n            animation-delay: 0.05s;\n        }\n        .intro-visual {\n            background-image: url('https:\/\/images.unsplash.com\/photo-1486406146926-c627a92ad1ab?q=80&w=2070&auto=format&fit=crop');\n            background-size: cover;\n            background-position: center;\n            position: relative;\n            min-height: 180px;\n        }\n        .intro-visual::after {\n            content: '';\n            position: absolute;\n            top: 0; left: 0; right: 0; bottom: 0;\n            background: linear-gradient(135deg, rgba(17, 19, 24, 0.45), rgba(196, 162, 53, 0.2));\n        }\n        .intro-content {\n            padding: 28px 30px;\n        }\n        .intro-content h2 {\n            margin: 0 0 10px;\n            color: var(--ink);\n            font-size: 16px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n        }\n        .intro-content p {\n            font-size: 13.5px;\n            color: var(--text);\n            line-height: 1.65;\n            margin: 0;\n        }\n        .intro-badges {\n            display: flex;\n            gap: 8px;\n            margin-top: 18px;\n            flex-wrap: wrap;\n        }\n        .intro-badge {\n            font-size: 10px;\n            font-weight: 700;\n            text-transform: uppercase;\n            padding: 5px 11px;\n            border-radius: 4px;\n            letter-spacing: 0.6px;\n        }\n        .ib-s { background: var(--green-bg); color: var(--green); border: 1px solid var(--green-border); }\n        .ib-w { background: var(--red-bg);   color: var(--red);   border: 1px solid var(--red-border); }\n        .ib-o { background: var(--blue-bg);  color: var(--blue);  border: 1px solid var(--blue-border); }\n        .ib-t { background: var(--amber-bg); color: var(--amber); border: 1px solid var(--amber-border); }\n\n        \/* === GRID === *\/\n        .grid-layout {\n            display: grid; grid-template-columns: 360px 1fr;\n            gap: 28px; padding: 28px 0 60px;\n        }\n\n        \/* === SIDEBAR === *\/\n        .sidebar { position: sticky; top: 24px; align-self: start; }\n\n        .card {\n            background: var(--card); border-radius: var(--radius);\n            border: 1px solid var(--border); box-shadow: var(--shadow);\n            margin-bottom: 16px; overflow: hidden;\n        }\n        .card-header {\n            padding: 14px 20px; border-bottom: 1px solid var(--border-light);\n            display: flex; align-items: center; gap: 10px;\n        }\n        .card-header-icon {\n            width: 28px; height: 28px; border-radius: 6px;\n            display: flex; align-items: center; justify-content: center;\n            font-size: 14px; flex-shrink: 0;\n        }\n        .card-header h2 {\n            margin: 0; font-size: 12px; font-weight: 700;\n            text-transform: uppercase; letter-spacing: 0.8px; color: var(--ink-soft);\n        }\n        .card-body { padding: 16px 20px 20px; }\n\n        .form-group { margin-bottom: 14px; }\n        .form-group:last-child { margin-bottom: 0; }\n        .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n\n        label {\n            display: block; font-size: 10px; font-weight: 700;\n            text-transform: uppercase; letter-spacing: 0.5px;\n            color: var(--text-muted); margin-bottom: 5px;\n        }\n        input, select, textarea {\n            width: 100%; padding: 9px 12px;\n            border: 1px solid var(--border); border-radius: var(--radius-sm);\n            font-family: inherit; font-size: 13px; color: var(--ink-soft);\n            background: #fff; outline: none; transition: border 0.2s, box-shadow 0.2s;\n        }\n        input[type=\"number\"] { font-family: 'JetBrains Mono', monospace; font-weight: 500; font-size: 13px; }\n        select { cursor: pointer; }\n\n        \/* Checkbox Options *\/\n        .options-section { margin-top: 4px; }\n        .options-label {\n            display: flex; align-items: center; gap: 6px;\n            font-size: 10px; font-weight: 700; text-transform: uppercase;\n            letter-spacing: 0.5px; color: var(--text-muted); margin-bottom: 8px; margin-top: 14px;\n        }\n        .options-label .dot {\n            width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;\n        }\n        .option-grid { display: flex; flex-direction: column; gap: 4px; }\n        .option-item {\n            display: flex; align-items: center; gap: 9px;\n            font-size: 12.5px; color: var(--text); cursor: pointer;\n            padding: 6px 8px; border-radius: var(--radius-sm); transition: background 0.15s;\n            line-height: 1.35;\n        }\n        .option-item:hover { background: var(--bg); }\n        .option-item input[type=\"checkbox\"] {\n            width: 15px; height: 15px; margin: 0; cursor: pointer;\n            accent-color: var(--gold); flex-shrink: 0;\n        }\n\n        \/* === MAIN CONTENT === *\/\n        .title-area { margin-bottom: 6px; }\n        .title-area h1 {\n            font-family: 'Poppins', sans-serif;\n            font-size: 28px; font-weight: 800; color: var(--ink);\n            margin: 0 0 4px 0; line-height: 1.2;\n            transition: opacity 0.3s ease;\n        }\n        .title-meta {\n            font-size: 12px; color: var(--text-muted);\n            text-transform: uppercase; letter-spacing: 1px; font-weight: 500;\n            transition: opacity 0.3s ease;\n        }\n\n        \/* KPI Strip *\/\n        .kpi-strip {\n            display: grid; grid-template-columns: repeat(4, 1fr);\n            gap: 14px; margin: 20px 0 24px;\n        }\n        .kpi {\n            background: var(--card); border: 1px solid var(--border);\n            border-radius: var(--radius); padding: 16px 18px;\n            position: relative; overflow: hidden;\n        }\n        .kpi::before {\n            content: ''; position: absolute; top: 0; left: 0; right: 0;\n            height: 3px; background: var(--gold);\n        }\n        .kpi-label {\n            font-size: 10px; font-weight: 700; text-transform: uppercase;\n            letter-spacing: 0.5px; color: var(--text-muted); margin-bottom: 6px;\n        }\n        .kpi-value {\n            font-family: 'JetBrains Mono', monospace;\n            font-size: 22px; font-weight: 700; color: var(--ink); line-height: 1;\n        }\n        .kpi-sub {\n            font-size: 11px; color: var(--text-faint); margin-top: 4px;\n        }\n        .kpi-signal {\n            display: inline-block; width: 8px; height: 8px;\n            border-radius: 50%; margin-right: 4px; vertical-align: middle;\n        }\n\n        \/* Assessment *\/\n        .assessment-card {\n            background: var(--card); border: 1px solid var(--border);\n            border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow);\n            margin-bottom: 28px;\n        }\n        .assessment-header {\n            padding: 16px 22px; border-bottom: 1px solid var(--border-light);\n            display: flex; align-items: center; gap: 10px;\n        }\n        .assessment-header h3 {\n            margin: 0; font-size: 13px; font-weight: 700;\n            text-transform: uppercase; letter-spacing: 0.5px; color: var(--ink-soft);\n        }\n        .assessment-body {\n            padding: 22px; font-size: 14px; line-height: 1.75; color: var(--text);\n        }\n        .assessment-body p { margin: 0 0 12px 0; }\n        .assessment-body p:last-child { margin: 0; }\n        .hl { background: var(--gold-light); padding: 1px 5px; border-radius: 3px; font-weight: 600; color: var(--gold-dark); }\n        .hl-warn { background: var(--red-bg); color: var(--red); }\n        .hl-good { background: var(--green-bg); color: var(--green); }\n\n        \/* === SWOT === *\/\n        .section-divider {\n            display: flex; align-items: center; gap: 14px;\n            margin: 36px 0 20px; padding-bottom: 12px;\n            border-bottom: 2px solid var(--ink);\n        }\n        .section-divider h2 {\n            margin: 0; font-family: 'Poppins', sans-serif;\n            font-size: 20px; font-weight: 800; color: var(--ink);\n        }\n        .section-divider .tag {\n            font-size: 10px; font-weight: 700; text-transform: uppercase;\n            letter-spacing: 1px; color: var(--text-muted);\n            background: var(--bg); padding: 4px 10px; border-radius: 4px;\n        }\n\n        .swot-controls {\n            background: var(--card); border: 1px solid var(--border);\n            border-radius: var(--radius); padding: 18px 20px;\n            box-shadow: var(--shadow); margin-bottom: 20px;\n            display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px;\n        }\n\n        .swot-matrix {\n            display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 28px;\n        }\n        .swot-card {\n            background: var(--card); border: 1px solid var(--border);\n            border-radius: var(--radius); overflow: hidden;\n            display: flex; flex-direction: column; min-height: 260px;\n        }\n        .swot-card-header {\n            padding: 14px 18px; display: flex; justify-content: space-between; align-items: center;\n        }\n        .swot-card-header h4 {\n            margin: 0; font-size: 13px; font-weight: 800;\n            text-transform: uppercase; letter-spacing: 0.8px;\n        }\n        .swot-card[data-type=\"strengths\"] .swot-card-header { background: var(--green-bg); border-bottom: 2px solid var(--green); }\n        .swot-card[data-type=\"strengths\"] .swot-card-header h4 { color: var(--green); }\n        .swot-card[data-type=\"weaknesses\"] .swot-card-header { background: var(--red-bg); border-bottom: 2px solid var(--red); }\n        .swot-card[data-type=\"weaknesses\"] .swot-card-header h4 { color: var(--red); }\n        .swot-card[data-type=\"opportunities\"] .swot-card-header { background: var(--blue-bg); border-bottom: 2px solid var(--blue); }\n        .swot-card[data-type=\"opportunities\"] .swot-card-header h4 { color: var(--blue); }\n        .swot-card[data-type=\"threats\"] .swot-card-header { background: var(--amber-bg); border-bottom: 2px solid var(--amber); }\n        .swot-card[data-type=\"threats\"] .swot-card-header h4 { color: var(--amber); }\n\n        .badge {\n            font-size: 9px; font-weight: 700; text-transform: uppercase;\n            letter-spacing: 0.8px; padding: 3px 8px; border-radius: 4px;\n        }\n        .badge-intern { background: rgba(0,0,0,0.06); color: var(--text-muted); }\n        .badge-extern { background: rgba(0,0,0,0.06); color: var(--text-muted); }\n\n        .swot-list {\n            list-style: none; padding: 12px 14px; margin: 0; flex-grow: 1;\n        }\n        .swot-item {\n            padding: 10px 12px; margin-bottom: 6px;\n            border-radius: var(--radius-sm); border: 1px solid var(--border-light);\n            background: #fdfdfe; transition: transform 0.2s ease, border 0.2s, box-shadow 0.2s;\n            display: flex; gap: 8px; align-items: flex-start;\n        }\n        .swot-item:hover { border-color: var(--border); }\n        .swot-item.auto { border-left: 3px solid var(--gold); background: #fffdf5; }\n\n        .swot-item-icon {\n            width: 20px; height: 20px; border-radius: 4px;\n            display: flex; align-items: center; justify-content: center;\n            font-size: 11px; flex-shrink: 0; margin-top: 1px;\n        }\n        .swot-card[data-type=\"strengths\"] .swot-item-icon { background: var(--green-bg); color: var(--green); }\n        .swot-card[data-type=\"weaknesses\"] .swot-item-icon { background: var(--red-bg); color: var(--red); }\n        .swot-card[data-type=\"opportunities\"] .swot-item-icon { background: var(--blue-bg); color: var(--blue); }\n        .swot-card[data-type=\"threats\"] .swot-item-icon { background: var(--amber-bg); color: var(--amber); }\n\n        .swot-input-text {\n            flex: 1; font-family: inherit; font-size: 12.5px; font-weight: 500;\n            border: none; background: transparent; padding: 2px 0;\n            resize: none; min-height: 20px; line-height: 1.4;\n            overflow: hidden; color: var(--text); outline: none;\n        }\n        .swot-input-text:focus { color: var(--ink); }\n        .swot-input-text.auto-gen { color: var(--gold-dark); font-weight: 600; }\n\n        .btn-add {\n            margin: 0 14px 14px; padding: 8px;\n            background: transparent; border: 1px dashed var(--border);\n            border-radius: var(--radius-sm); color: var(--text-muted);\n            font-family: inherit; font-size: 11px; font-weight: 600; cursor: pointer;\n            transition: all 0.25s ease;\n        }\n        .btn-add:hover { border-color: var(--gold); color: var(--gold-dark); background: var(--gold-light); }\n        .btn-del {\n            background: none; border: none; color: var(--text-faint);\n            cursor: pointer; font-size: 16px; line-height: 1; padding: 2px;\n            transition: color 0.15s, transform 0.15s; flex-shrink: 0;\n        }\n        .btn-del:hover { color: var(--red); transform: scale(1.2); }\n\n        .impact-select {\n            font-family: inherit; font-size: 10px; font-weight: 700;\n            padding: 2px 6px; border-radius: 3px; border: 1px solid var(--border);\n            background: #fff; color: var(--text-muted); cursor: pointer;\n            text-transform: uppercase; flex-shrink: 0; outline: none;\n        }\n        .impact-select:focus { border-color: var(--gold); }\n\n        \/* === VERDICT === *\/\n        .verdict-box {\n            border-radius: var(--radius); overflow: hidden;\n            box-shadow: var(--shadow-lg); border: 1px solid rgba(0,0,0,0.08);\n            margin-top: 8px;\n        }\n        .verdict-inner {\n            display: grid; grid-template-columns: 180px 1fr; gap: 0;\n        }\n        .verdict-score-area {\n            padding: 28px; display: flex; flex-direction: column;\n            align-items: center; justify-content: center; text-align: center;\n            border-right: 1px solid rgba(0,0,0,0.08);\n        }\n        .verdict-score-ring {\n            width: 90px; height: 90px; border-radius: 50%;\n            display: flex; align-items: center; justify-content: center;\n            font-family: 'JetBrains Mono', monospace; font-size: 26px; font-weight: 700;\n            margin-bottom: 8px; position: relative;\n        }\n        .verdict-score-label {\n            font-size: 10px; font-weight: 700; text-transform: uppercase;\n            letter-spacing: 1px; opacity: 0.7;\n        }\n        .verdict-content-area { padding: 28px; }\n        .verdict-content-area h3 {\n            margin: 0 0 10px 0; font-size: 16px; font-weight: 800;\n            text-transform: uppercase; letter-spacing: 0.5px;\n        }\n        .verdict-content-area p {\n            margin: 0; font-size: 13.5px; line-height: 1.6; opacity: 0.9;\n        }\n\n        .verdict-green { background: linear-gradient(135deg, #e8f7f0 0%, #f0faf5 100%); }\n        .verdict-green .verdict-score-area { border-right-color: var(--green-border); }\n        .verdict-green .verdict-score-ring { background: var(--green); color: #fff; box-shadow: 0 4px 20px rgba(26,143,92,0.25); }\n        .verdict-green h3, .verdict-green .verdict-score-label { color: var(--green); }\n        .verdict-green p { color: #1a5c3e; }\n\n        .verdict-yellow { background: linear-gradient(135deg, #fdf8e8 0%, #fefcf3 100%); }\n        .verdict-yellow .verdict-score-area { border-right-color: var(--amber-border); }\n        .verdict-yellow .verdict-score-ring { background: var(--amber); color: #fff; box-shadow: 0 4px 20px rgba(184,134,11,0.25); }\n        .verdict-yellow h3, .verdict-yellow .verdict-score-label { color: var(--amber); }\n        .verdict-yellow p { color: #5a4a0a; }\n\n        .verdict-red { background: linear-gradient(135deg, #fceaea 0%, #fef3f3 100%); }\n        .verdict-red .verdict-score-area { border-right-color: var(--red-border); }\n        .verdict-red .verdict-score-ring { background: var(--red); color: #fff; box-shadow: 0 4px 20px rgba(196,56,56,0.25); }\n        .verdict-red h3, .verdict-red .verdict-score-label { color: var(--red); }\n        .verdict-red p { color: #5c1a1a; }\n\n        .verdict-metrics {\n            display: flex; gap: 16px; margin-top: 14px; padding-top: 14px;\n            border-top: 1px solid rgba(0,0,0,0.06);\n        }\n        .verdict-metric {\n            font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 5px;\n        }\n        .vm-dot { width: 7px; height: 7px; border-radius: 50%; }\n\n        .footer-note {\n            text-align: center; padding: 20px 0 40px;\n            font-size: 11px; color: var(--text-faint);\n        }\n\n        \/* === EMPTY STATE === *\/\n        .empty-state {\n            text-align: center; padding: 40px 20px;\n            color: var(--text-faint); font-size: 13px;\n        }\n        .empty-state .empty-icon {\n            font-size: 32px; margin-bottom: 10px; opacity: 0.4;\n        }\n\n        \/* === PRINT \/ PDF === *\/\n        @media print {\n            @page {\n                margin: 4mm 6mm;\n                size: A4;\n            }\n            * { font-size-adjust: none; animation: none !important; transition: none !important; }\n            body { background: white; font-size: 6.5pt; line-height: 1.25; }\n\n            header, .footer-note, .sidebar, .no-print,\n            .btn, .btn-add, .btn-del, .swot-controls { display: none !important; }\n\n            .container { max-width: 100%; padding: 0; }\n            .grid-layout { display: block; padding: 0; }\n\n            .title-area { margin-bottom: 1px; }\n            .title-area h1 { font-size: 13pt; margin-bottom: 0; }\n            .title-meta { font-size: 6.5pt; letter-spacing: 0.3px; }\n\n            .kpi-strip { grid-template-columns: repeat(4, 1fr); gap: 4px; margin: 4px 0 6px; }\n            .kpi { padding: 5px 7px; border-radius: 3px; }\n            .kpi::before { height: 1.5px; }\n            .kpi-label { font-size: 5.5pt; margin-bottom: 1px; }\n            .kpi-value { font-size: 11pt; }\n            .kpi-sub { font-size: 5.5pt; margin-top: 1px; }\n\n            .assessment-card { margin-bottom: 6px; box-shadow: none !important; }\n            .assessment-header { padding: 4px 8px; }\n            .assessment-header h3 { font-size: 6.5pt; }\n            .assessment-body { padding: 5px 8px; font-size: 6.5pt; line-height: 1.35; }\n            .assessment-body p { margin: 0 0 2px 0; }\n\n            .section-divider { margin: 4px 0 3px; padding-bottom: 2px; border-bottom-width: 1px; }\n            .section-divider h2 { font-size: 10pt; }\n            .section-divider .tag { font-size: 5pt; padding: 1px 4px; }\n\n            .swot-matrix { grid-template-columns: 1fr 1fr !important; gap: 4px; margin-bottom: 6px; }\n            .swot-card { min-height: auto; border-radius: 3px; box-shadow: none !important; }\n            .swot-card-header { padding: 3px 6px; }\n            .swot-card-header h4 { font-size: 6pt; }\n            .badge { font-size: 4.5pt; padding: 1px 3px; }\n\n            .swot-list { padding: 2px 4px; }\n            .swot-item { padding: 2px 4px; margin-bottom: 1px; border-radius: 2px; gap: 3px; }\n            .swot-item.auto { border-left-width: 1.5px; }\n            .swot-item-icon { width: 10px; height: 10px; font-size: 5.5pt; border-radius: 1px; }\n            .swot-input-text, textarea { font-size: 5.5pt !important; line-height: 1.2 !important; min-height: 8px !important; }\n\n            .verdict-box { margin-top: 3px; box-shadow: none !important; border-radius: 3px; }\n            .verdict-inner { grid-template-columns: 70px 1fr; }\n            .verdict-score-area { padding: 6px; }\n            .verdict-score-ring { width: 36px; height: 36px; font-size: 12pt; margin-bottom: 2px; box-shadow: none !important; animation: none !important; }\n            .verdict-score-label { font-size: 4.5pt; }\n            .verdict-content-area { padding: 6px 10px; }\n            .verdict-content-area h3 { font-size: 8pt; margin-bottom: 2px; }\n            .verdict-content-area p { font-size: 6pt; line-height: 1.3; }\n            .verdict-metrics { gap: 5px; margin-top: 3px; padding-top: 3px; }\n            .verdict-metric { font-size: 5.5pt; }\n            .vm-dot { width: 4px; height: 4px; }\n\n            .card, .assessment-card, .swot-card, .verdict-box {\n                box-shadow: none !important; break-inside: avoid;\n            }\n            textarea { border: none !important; background: transparent !important; }\n        }\n\n        @media (max-width: 960px) {\n            .grid-layout { grid-template-columns: 1fr; }\n            .sidebar { position: static; }\n            .kpi-strip { grid-template-columns: repeat(2, 1fr); }\n            .swot-matrix, .verdict-inner { grid-template-columns: 1fr; }\n            .verdict-score-area { border-right: none; border-bottom: 1px solid rgba(0,0,0,0.08); }\n            .swot-controls { grid-template-columns: 1fr; }\n            .intro-card { grid-template-columns: 1fr; }\n            .intro-visual { min-height: 160px; }\n        }\n    <\/style>\n<\/head>\n<body>\n\n\n\n<div class=\"container\">\n\n    <!-- INTRO CARD -->\n    <div class=\"intro-card no-print\">\n        <div class=\"intro-visual\"><\/div>\n        <div class=\"intro-content\">\n            <h2>SWOT-Analyse Methodik<\/h2>\n            <p>\n                Diese Analyse dient der strukturierten Bewertung des Immobilien-Investments. Sie trennt strikt zwischen\n                objektbezogenen <strong>internen Faktoren<\/strong> (Zustand, Mietstruktur) und marktbedingten\n                <strong>externen Einfl\u00fcssen<\/strong> (Lage, Zins, Gesetze). Ziel ist es, nicht nur Risiken zu erkennen,\n                sondern eine klare Strategie (Kaufen, Entwickeln oder Absto\u00dfen) abzuleiten.\n            <\/p>\n            <div class=\"intro-badges\">\n                <div class=\"intro-badge ib-s\">Strengths (St\u00e4rken)<\/div>\n                <div class=\"intro-badge ib-w\">Weaknesses (Schw\u00e4chen)<\/div>\n                <div class=\"intro-badge ib-o\">Opportunities (Chancen)<\/div>\n                <div class=\"intro-badge ib-t\">Threats (Risiken)<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"grid-layout\">\n\n        <!-- SIDEBAR -->\n        <aside class=\"sidebar no-print\">\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <div class=\"card-header-icon\" style=\"background:var(--gold-light);color:var(--gold-dark);\">&#9632;<\/div>\n                    <h2>Objektdaten<\/h2>\n                <\/div>\n                <div class=\"card-body\">\n                    <div class=\"form-group\"><label>Projektname<\/label><input type=\"text\" id=\"name\" placeholder=\"z.B. Musterstra\u00dfe 12\" oninput=\"app.updateAll()\"><\/div>\n                    <div class=\"form-row\">\n                        <div class=\"form-group\"><label>Standort<\/label><input type=\"text\" id=\"city\" placeholder=\"Stadt\" oninput=\"app.updateAll()\"><\/div>\n                        <div class=\"form-group\"><label>Baujahr<\/label><input type=\"number\" id=\"year\" placeholder=\"1990\" oninput=\"app.updateAll()\"><\/div>\n                    <\/div>\n                    <div class=\"form-row\">\n                        <div class=\"form-group\">\n                            <label>Sanierungsstand<\/label>\n                            <select id=\"mod\" onchange=\"app.updateAll()\">\n                                <option value=\"\" selected disabled>Ausw\u00e4hlen...<\/option>\n                                <option value=\"kernsaniert\">Kernsaniert<\/option>\n                                <option value=\"gepflegt\">Gepflegt<\/option>\n                                <option value=\"teilweise\">Teilweise saniert<\/option>\n                                <option value=\"sanierungsbed\u00fcrftig\">Sanierungsbed\u00fcrftig<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label>Energieklasse<\/label>\n                            <select id=\"energy\" onchange=\"app.updateAll()\">\n                                <option value=\"\" selected disabled>Ausw\u00e4hlen...<\/option>\n                                <option value=\"A\">A \/ B (Top)<\/option>\n                                <option value=\"C\">C \/ D (Mittel)<\/option>\n                                <option value=\"E\">E \/ F (Schwach)<\/option>\n                                <option value=\"G\">G \/ H (Risiko)<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                    <div class=\"form-group\">\n                        <label>Einheiten (Wohn \/ Gewerbe)<\/label>\n                        <div class=\"form-row\">\n                            <input type=\"number\" id=\"units_wohn\" placeholder=\"Wohn\" oninput=\"app.updateAll()\">\n                            <input type=\"number\" id=\"units_gew\" placeholder=\"Gewerbe\" oninput=\"app.updateAll()\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <div class=\"card-header-icon\" style=\"background:#e8f0fe;color:#2563a8;\">&#8364;<\/div>\n                    <h2>Finanzkennzahlen<\/h2>\n                <\/div>\n                <div class=\"card-body\">\n                    <div class=\"form-group\"><label>Kaufpreis (&#8364;)<\/label><input type=\"number\" id=\"price\" placeholder=\"0\" oninput=\"app.updateAll()\"><\/div>\n                    <div class=\"form-group\"><label>JNKM Ist (&#8364;\/Jahr)<\/label><input type=\"number\" id=\"jnkm\" placeholder=\"0\" oninput=\"app.updateAll()\"><\/div>\n                    <div class=\"form-row\">\n                        <div class=\"form-group\"><label>Fl\u00e4che (m&#178;)<\/label><input type=\"number\" id=\"area\" placeholder=\"0\" oninput=\"app.updateAll()\"><\/div>\n                        <div class=\"form-group\"><label>Leerstand (%)<\/label><input type=\"number\" id=\"vacancy\" placeholder=\"0\" step=\"1\" min=\"0\" max=\"100\" oninput=\"app.updateAll()\"><\/div>\n                    <\/div>\n                    <div class=\"form-row\">\n                        <div class=\"form-group\"><label>Ist-Miete (&#8364;\/m&#178;)<\/label><input type=\"number\" id=\"rent_ist\" placeholder=\"0.00\" step=\"0.1\" oninput=\"app.updateAll()\"><\/div>\n                        <div class=\"form-group\"><label>Soll-Miete (&#8364;\/m&#178;)<\/label><input type=\"number\" id=\"rent_soll\" placeholder=\"0.00\" step=\"0.1\" oninput=\"app.updateAll()\"><\/div>\n                    <\/div>\n                    <div class=\"form-group\"><label>NK-Quote (% v. JNKM)<\/label><input type=\"number\" id=\"nk_quote\" placeholder=\"30\" step=\"1\" oninput=\"app.updateAll()\"><\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"card\">\n                <div class=\"card-header\">\n                    <div class=\"card-header-icon\" style=\"background:#f0e8fe;color:#7c3aed;\">&#9998;<\/div>\n                    <h2>Strategische Optionen<\/h2>\n                <\/div>\n                <div class=\"card-body\">\n                    <div class=\"options-section\">\n                        <div class=\"options-label\"><span class=\"dot\" style=\"background:var(--blue);\"><\/span> Potenziale (Upside)<\/div>\n                        <div class=\"option-grid\">\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_weg\" onchange=\"app.updateAll()\"> WEG-Aufteilung m\u00f6glich<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_dach\" onchange=\"app.updateAll()\"> Ausbaureserve (Dach\/Anbau)<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_moeb\" onchange=\"app.updateAll()\"> M\u00f6blierungspotenzial<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_idx\" onchange=\"app.updateAll()\"> Indexmiete-Umstellung<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_balkon\" onchange=\"app.updateAll()\"> Balkonanbau m\u00f6glich<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_stell\" onchange=\"app.updateAll()\"> Stellplatz-Nachverdichtung<\/label>\n                        <\/div>\n\n                        <div class=\"options-label\" style=\"margin-top:18px;\"><span class=\"dot\" style=\"background:var(--red);\"><\/span> Risiken \/ Auflagen<\/div>\n                        <div class=\"option-grid\">\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_msb\" onchange=\"app.updateAll()\"> Mietpreisbremse<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_geg\" onchange=\"app.updateAll()\"> GEG \/ Sanierungspflicht<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_milieu\" onchange=\"app.updateAll()\"> Milieuschutzgebiet<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_denkmal\" onchange=\"app.updateAll()\"> Denkmalschutz<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_erbpacht\" onchange=\"app.updateAll()\"> Erbpacht \/ Heimfall<\/label>\n                            <label class=\"option-item\"><input type=\"checkbox\" id=\"opt_gutachten\" onchange=\"app.updateAll()\"> Sondergutachten n\u00f6tig<\/label>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/aside>\n\n        <!-- MAIN -->\n        <main>\n            <div class=\"title-area\">\n                <h1 id=\"display-title\">Neue Bewertung<\/h1>\n                <div class=\"title-meta\" id=\"display-subtitle\">Daten eingeben, um die Analyse zu starten<\/div>\n            <\/div>\n\n            <div class=\"kpi-strip\">\n                <div class=\"kpi\">\n                    <div class=\"kpi-label\">Einkaufsfaktor<\/div>\n                    <div class=\"kpi-value\" id=\"res-factor\">&mdash;<\/div>\n                    <div class=\"kpi-sub\" id=\"res-factor-note\"><\/div>\n                <\/div>\n                <div class=\"kpi\">\n                    <div class=\"kpi-label\">Brutto-Rendite<\/div>\n                    <div class=\"kpi-value\" id=\"res-yield\">&mdash;<\/div>\n                    <div class=\"kpi-sub\" id=\"res-yield-note\"><\/div>\n                <\/div>\n                <div class=\"kpi\">\n                    <div class=\"kpi-label\">Mietpotenzial p.a.<\/div>\n                    <div class=\"kpi-value\" id=\"res-uplift\">&mdash;<\/div>\n                    <div class=\"kpi-sub\" id=\"res-uplift-note\"><\/div>\n                <\/div>\n                <div class=\"kpi\">\n                    <div class=\"kpi-label\">Preis \/ m&#178;<\/div>\n                    <div class=\"kpi-value\" id=\"res-ppm2\">&mdash;<\/div>\n                    <div class=\"kpi-sub\" id=\"res-ppm2-note\"><\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Assessment -->\n            <div class=\"assessment-card\">\n                <div class=\"assessment-header\">\n                    <span style=\"font-size:16px;\">&#128200;<\/span>\n                    <h3>Analytische Bewertung<\/h3>\n                <\/div>\n                <div class=\"assessment-body\" id=\"res-assessment\">\n                    <div class=\"empty-state\">\n                        <div class=\"empty-icon\">&#128203;<\/div>\n                        Objektdaten und Finanzkennzahlen eingeben, um die Analyse zu generieren.\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- SWOT -->\n            <div class=\"section-divider\">\n                <h2>SWOT Analyse<\/h2>\n                <span class=\"tag\">Investment Due Diligence<\/span>\n            <\/div>\n\n            <div class=\"swot-controls no-print\">\n                <div class=\"form-group\">\n                    <label>Strategie<\/label>\n                    <select id=\"strat-type\" onchange=\"app.updateAll()\">\n                        <option value=\"buyhold\" selected>Buy &amp; Hold<\/option>\n                        <option value=\"fixflip\">Fix &amp; Flip<\/option>\n                        <option value=\"develop\">Aufteilung \/ Entwicklung<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Fokus<\/label>\n                    <select id=\"strat-focus\" onchange=\"app.updateAll()\">\n                        <option value=\"cashflow\" selected>Cashflow<\/option>\n                        <option value=\"value\">Wertsteigerung<\/option>\n                        <option value=\"risk\">Risikominimierung<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"form-group\">\n                    <label>Haltedauer<\/label>\n                    <select id=\"strat-horizon\" onchange=\"app.updateAll()\">\n                        <option value=\"short\">1-3 Jahre<\/option>\n                        <option value=\"medium\" selected>3-7 Jahre<\/option>\n                        <option value=\"long\">7+ Jahre<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n\n            <div class=\"swot-matrix\">\n                <div class=\"swot-card\" data-type=\"strengths\">\n                    <div class=\"swot-card-header\">\n                        <h4>&#9650; St\u00e4rken<\/h4>\n                        <span class=\"badge badge-intern\">Intern<\/span>\n                    <\/div>\n                    <ul class=\"swot-list\" id=\"list-strengths\"><\/ul>\n                    <button class=\"btn-add no-print\" onclick=\"swotApp.addItem('strengths')\">+ Punkt hinzuf\u00fcgen<\/button>\n                <\/div>\n                <div class=\"swot-card\" data-type=\"weaknesses\">\n                    <div class=\"swot-card-header\">\n                        <h4>&#9660; Schw\u00e4chen<\/h4>\n                        <span class=\"badge badge-intern\">Intern<\/span>\n                    <\/div>\n                    <ul class=\"swot-list\" id=\"list-weaknesses\"><\/ul>\n                    <button class=\"btn-add no-print\" onclick=\"swotApp.addItem('weaknesses')\">+ Punkt hinzuf\u00fcgen<\/button>\n                <\/div>\n                <div class=\"swot-card\" data-type=\"opportunities\">\n                    <div class=\"swot-card-header\">\n                        <h4>&#9654; Chancen<\/h4>\n                        <span class=\"badge badge-extern\">Extern<\/span>\n                    <\/div>\n                    <ul class=\"swot-list\" id=\"list-opportunities\"><\/ul>\n                    <button class=\"btn-add no-print\" onclick=\"swotApp.addItem('opportunities')\">+ Punkt hinzuf\u00fcgen<\/button>\n                <\/div>\n                <div class=\"swot-card\" data-type=\"threats\">\n                    <div class=\"swot-card-header\">\n                        <h4>&#9888; Risiken<\/h4>\n                        <span class=\"badge badge-extern\">Extern<\/span>\n                    <\/div>\n                    <ul class=\"swot-list\" id=\"list-threats\"><\/ul>\n                    <button class=\"btn-add no-print\" onclick=\"swotApp.addItem('threats')\">+ Punkt hinzuf\u00fcgen<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- Verdict -->\n            <div class=\"verdict-box\" id=\"verdict-container\"><\/div>\n\n            <div class=\"footer-note\">\n                Lima Invest &#183; Rational Asset Evaluation &#183; Keine Anlageberatung\n            <\/div>\n        <\/main>\n    <\/div>\n<\/div>\n\n<script>\n\/* === CONFIG === *\/\nconst OPTION_MAP = {\n    opt_weg:      { type: 'opportunities', text: 'WEG-Aufteilung: Einzelprivatisierung erm\u00f6glicht deutliche Wertsteigerung je Einheit' },\n    opt_dach:     { type: 'opportunities', text: 'Nachverdichtung: Dachausbau oder Anbau schafft zus\u00e4tzliche Mietfl\u00e4che' },\n    opt_moeb:     { type: 'opportunities', text: 'M\u00f6blierung: Signifikanter Miet-Aufschlag bei geringem Invest m\u00f6glich' },\n    opt_idx:      { type: 'opportunities', text: 'Indexmieten: Automatischer Inflationsschutz durch Vertragsumstellung' },\n    opt_balkon:   { type: 'opportunities', text: 'Balkonanbau: Wohnwert- und Mietsteigerung bei \u00fcberschaubarem Capex' },\n    opt_stell:    { type: 'opportunities', text: 'Stellpl\u00e4tze: Zus\u00e4tzliche Ertragsquelle durch Nachverdichtung' },\n    opt_msb:      { type: 'threats', text: 'Mietpreisbremse: Limitiert Neuvermietungsmiete auf orts\u00fcbliches Niveau +10%' },\n    opt_geg:      { type: 'threats', text: 'GEG-Pflichten: Heizungstausch \/ D\u00e4mmung erzeugt substanziellen Capex-Bedarf' },\n    opt_milieu:   { type: 'threats', text: 'Milieuschutz: Modernisierung und Umwandlung erheblich eingeschr\u00e4nkt' },\n    opt_denkmal:  { type: 'threats', text: 'Denkmalschutz: Erh\u00f6hte Instandhaltungskosten, eingeschr\u00e4nkte Gestaltungsfreiheit' },\n    opt_erbpacht: { type: 'threats', text: 'Erbpacht: Laufender Zins und Heimfallrisiko belasten langfristigen Cashflow' },\n    opt_gutachten:{ type: 'threats', text: 'Sondergutachten: Unbekannte Risiken erfordern Kostenreserve vor Ankauf' }\n};\n\n\/* === APP === *\/\nconst app = (function() {\n    const fmtE = new Intl.NumberFormat('de-DE', { style:'currency', currency:'EUR', maximumFractionDigits:0 });\n    const fmtN = new Intl.NumberFormat('de-DE', { maximumFractionDigits:0 });\n    const v = id => parseFloat(document.getElementById(id).value) || 0;\n    const t = id => document.getElementById(id).value;\n    const c = id => document.getElementById(id).checked;\n\n    function hasData() {\n        return v('price') > 0 || v('jnkm') > 0 || t('name').trim() !== '';\n    }\n\n    function updateAll() {\n        const d = {\n            name: t('name'), city: t('city'), year: v('year'),\n            price: v('price'), jnkm: v('jnkm'), area: v('area'),\n            rent_ist: v('rent_ist'), rent_soll: v('rent_soll'),\n            mod: t('mod'), energy: t('energy'),\n            vacancy: v('vacancy'), nk_quote: v('nk_quote'),\n            units_wohn: v('units_wohn'), units_gew: v('units_gew'),\n            stratType: t('strat-type'), stratFocus: t('strat-focus'),\n            stratHorizon: t('strat-horizon')\n        };\n\n        const factor = d.jnkm > 0 ? d.price \/ d.jnkm : 0;\n        const yld = d.price > 0 ? (d.jnkm \/ d.price) * 100 : 0;\n        const uplift = Math.max(0, (d.rent_soll - d.rent_ist) * d.area * 12);\n        const ppm2 = d.area > 0 ? d.price \/ d.area : 0;\n        const nkm = d.jnkm * (1 - d.nk_quote \/ 100);\n        const netYld = d.price > 0 ? (nkm \/ d.price) * 100 : 0;\n\n        \/\/ Title\n        const titleEl = document.getElementById('display-title');\n        const subEl = document.getElementById('display-subtitle');\n        if (d.name.trim()) {\n            titleEl.innerText = d.name;\n            const parts = [];\n            if (d.city) parts.push(d.city);\n            if (d.year) parts.push(`Bj. ${d.year}`);\n            if (d.area) parts.push(`${fmtN.format(d.area)} m\\u00B2`);\n            if (d.units_wohn + d.units_gew > 0) parts.push(`${d.units_wohn + d.units_gew} Einheiten`);\n            subEl.innerText = parts.join(' | ') || 'Daten eingeben...';\n        } else {\n            titleEl.innerText = 'Neue Bewertung';\n            subEl.innerText = 'Daten eingeben, um die Analyse zu starten';\n        }\n\n        \/\/ KPIs with animation\n        const setKpi = (id, val) => {\n            const el = document.getElementById(id);\n            if (el.innerText !== val) {\n                el.innerText = val;\n                el.classList.remove('updating');\n                void el.offsetWidth;\n                el.classList.add('updating');\n            }\n        };\n\n        if (!hasData()) {\n            ['res-factor','res-yield','res-uplift','res-ppm2'].forEach(id =>\n                document.getElementById(id).innerText = '\\u2014');\n            ['res-factor-note','res-yield-note','res-uplift-note','res-ppm2-note'].forEach(id =>\n                document.getElementById(id).innerText = '');\n            document.getElementById('res-assessment').innerHTML = `\n                <div class=\"empty-state\">\n                    <div class=\"empty-icon\">&#128203;<\/div>\n                    Objektdaten und Finanzkennzahlen eingeben, um die Analyse zu generieren.\n                <\/div>`;\n            document.getElementById('verdict-container').innerHTML = '';\n            document.getElementById('verdict-container').className = 'verdict-box';\n            swotApp.syncOptions();\n            swotApp.syncAttributes(d, factor);\n            return;\n        }\n\n        setKpi('res-factor', factor > 0 ? factor.toFixed(1) + 'x' : '\\u2014');\n        setKpi('res-yield', yld > 0 ? yld.toFixed(1) + ' %' : '\\u2014');\n        setKpi('res-uplift', uplift > 0 ? fmtE.format(uplift) : '\\u2014');\n        setKpi('res-ppm2', ppm2 > 0 ? fmtE.format(Math.round(ppm2)) : '\\u2014');\n\n        \/\/ KPI sub-notes\n        const el = (id, val) => document.getElementById(id).innerText = val;\n        el('res-yield-note', netYld > 0 ? `Netto ca. ${netYld.toFixed(1)}% (NK ${d.nk_quote || 30}%)` : '');\n        el('res-uplift-note', uplift > 0 ? `+${((d.rent_soll\/d.rent_ist - 1)*100).toFixed(0)}% Mietsteigerung` : '');\n        el('res-ppm2-note', (d.units_wohn + d.units_gew) > 0 ? `${fmtE.format(Math.round(d.price \/ Math.max(1, d.units_wohn + d.units_gew)))} \/ Einheit` : '');\n\n        \/\/ Color notes\n        if (factor > 0) {\n            document.getElementById('res-factor-note').innerHTML =\n                factor < 16 ? '<span class=\"kpi-signal\" style=\"background:var(--green)\"><\/span>Unter Marktniveau'\n                : factor > 25 ? '<span class=\"kpi-signal\" style=\"background:var(--red)\"><\/span>Ambitioniert'\n                : '<span class=\"kpi-signal\" style=\"background:var(--amber)\"><\/span>Marktgerecht';\n        } else {\n            document.getElementById('res-factor-note').innerText = '';\n        }\n\n        \/\/ Sync SWOT\n        swotApp.syncOptions();\n        swotApp.syncAttributes(d, factor);\n\n        generateAssessment(d, factor, yld, uplift, ppm2, netYld);\n        generateVerdict(d, factor, yld, uplift, netYld);\n    }\n\n    function generateAssessment(d, factor, yld, uplift, ppm2, netYld) {\n        let html = '';\n\n        html += `<p>Das Investmentobjekt <span class=\"hl\">${d.name || 'Objekt'}<\/span> in ${d.city || '(Standort)'} wird zu einem Einkaufsfaktor von <strong>${factor.toFixed(1)}x<\/strong> angeboten (Brutto ${yld.toFixed(1)}%, Netto ca. ${netYld.toFixed(1)}%). `;\n        if (factor < 15) html += `Damit liegt der Preis <span class=\"hl-good\">deutlich unter dem Marktdurchschnitt<\/span> und signalisiert einen attraktiven Einstieg. `;\n        else if (factor > 25) html += `Der Faktor wirkt <span class=\"hl-warn\">ambitioniert<\/span>. Ohne substanzielles Upside ist der Preis schwer zu rechtfertigen. `;\n        else html += `Die Bewertung bewegt sich in einem marktgerechten Korridor. `;\n\n        const totalUnits = d.units_wohn + d.units_gew;\n        if (totalUnits > 0) {\n            html += `Der Quadratmeterpreis liegt bei ${fmtE.format(Math.round(ppm2))}, was bei ${totalUnits} Einheiten einem Durchschnitt von ${fmtE.format(Math.round(d.price \/ Math.max(1, totalUnits)))} pro Einheit entspricht.<\/p>`;\n        } else {\n            html += `Der Quadratmeterpreis liegt bei ${fmtE.format(Math.round(ppm2))}.<\/p>`;\n        }\n\n        html += `<p>`;\n        const age = new Date().getFullYear() - d.year;\n        if (d.energy === 'G' || c('opt_geg')) {\n            html += `<span class=\"hl-warn\">Kritisch:<\/span> Die energetische Substanz (Klasse ${d.energy || '?'}, Bj. ${d.year || '?'}, Alter ${age > 0 ? age + ' J.' : '?'}) erfordert zwingend Capex f\u00fcr Heizung\/D\u00e4mmung. Dieser Investitionsbedarf muss im Business Plan als Pflichtposition ber\u00fccksichtigt werden. `;\n        } else if (d.energy === 'A' || d.mod === 'kernsaniert') {\n            html += `Die Bausubstanz ist <span class=\"hl-good\">zukunftsf\u00e4hig<\/span> (${d.mod || '?'}, Klasse ${d.energy || '?'}). Das Instandhaltungsrisiko bleibt \u00fcberschaubar. `;\n        } else {\n            html += `Die Bausubstanz (${d.mod || '?'}, Klasse ${d.energy || '?'}${age > 0 ? ', ' + age + ' J.' : ''}) ist solide, erfordert aber mittelfristig Instandhaltungsma\u00dfnahmen. `;\n        }\n        if (d.vacancy > 10) html += `<span class=\"hl-warn\">Achtung:<\/span> Der Leerstand von ${d.vacancy}% reduziert den effektiven Cashflow und deutet auf Vermietungsprobleme hin. `;\n        html += `<\/p>`;\n\n        let ups = [];\n        if (c('opt_weg')) ups.push('WEG-Aufteilung (Einzelprivatisierung)');\n        if (c('opt_dach') || c('opt_balkon')) ups.push('bauliche Nachverdichtung');\n        if (uplift > 3000) ups.push(`Mietreserve von ${fmtE.format(uplift)}\/Jahr (+${((d.rent_soll\/d.rent_ist-1)*100).toFixed(0)}%)`);\n        if (c('opt_moeb')) ups.push('M\u00f6blierungsstrategie');\n\n        html += `<p>`;\n        if (ups.length > 0) {\n            html += `Das strategische Potenzial liegt in: <strong>${ups.join(', ')}<\/strong>. `;\n            if (d.stratType === 'fixflip' && c('opt_weg')) {\n                html += `F\u00fcr die Fix &amp; Flip Strategie ist die WEG-Aufteilung der zentrale Werttreiber. `;\n            }\n        } else {\n            html += `Wesentliche Wertsteigerungshebel sind aktuell <strong>nicht identifiziert<\/strong>. Der Fokus liegt auf stabiler Cashflow-Bewirtschaftung. `;\n        }\n        html += `<\/p>`;\n\n        document.getElementById('res-assessment').innerHTML = html;\n    }\n\n    function generateVerdict(d, factor, yld, uplift, netYld) {\n        let score = 50;\n        let notes = [];\n\n        if (factor > 0 && factor < 16) { score += 18; notes.push({t:'Attraktiver Faktor', c:'green'}); }\n        else if (factor > 0 && factor < 20) { score += 8; }\n        else if (factor > 26) { score -= 18; notes.push({t:'\u00dcberh\u00f6hter Faktor', c:'red'}); }\n\n        if (yld > 6) { score += 12; notes.push({t:'Starke Rendite', c:'green'}); }\n        else if (yld > 4.5) { score += 6; }\n        else if (yld > 0 && yld < 3) { score -= 14; notes.push({t:'Schwache Rendite', c:'red'}); }\n\n        if (netYld > 4) score += 5;\n        else if (netYld > 0 && netYld < 2) { score -= 8; }\n\n        if (d.energy === 'A') score += 10;\n        else if (d.energy === 'G') { score -= 14; notes.push({t:'Energetisches Risiko', c:'red'}); }\n        if (d.mod === 'kernsaniert') score += 8;\n        else if (d.mod === 'sanierungsbed\u00fcrftig') { score -= 10; }\n\n        if (d.vacancy > 20) { score -= 12; notes.push({t:'Hoher Leerstand', c:'red'}); }\n        else if (d.vacancy > 10) score -= 5;\n        else if (d.vacancy === 0) score += 3;\n\n        if (c('opt_geg')) score -= 10;\n        if (c('opt_erbpacht')) { score -= 14; notes.push({t:'Erbpacht-Risiko', c:'red'}); }\n        if (c('opt_milieu')) score -= 6;\n        if (c('opt_denkmal')) score -= 5;\n        if (c('opt_weg')) { score += 10; notes.push({t:'WEG-Upside', c:'green'}); }\n        if (c('opt_dach')) score += 5;\n        if (c('opt_moeb')) score += 3;\n\n        let stratWarn = '';\n        if (d.stratType === 'fixflip') {\n            if (uplift < 10000 && !c('opt_weg')) {\n                score -= 18;\n                stratWarn = 'Fix & Flip ohne kurzfristiges Wertsteigerungspotenzial (Miet-Uplift\/WEG) ist hochriskant.';\n            } else { score += 8; }\n        } else if (d.stratType === 'buyhold') {\n            if (d.stratFocus === 'cashflow' && yld > 0 && yld < 4) {\n                score -= 12;\n                stratWarn = 'Ist-Rendite zu niedrig f\u00fcr reine Cashflow-Strategie. Upside notwendig.';\n            }\n            if (d.stratHorizon === 'long' && (d.energy === 'G' || d.energy === 'E')) {\n                score -= 8;\n                stratWarn += ' Langfristiges Halten bei schwacher Energiebilanz birgt regulatorische Risiken.';\n            }\n        } else if (d.stratType === 'develop') {\n            if (!c('opt_weg') && !c('opt_dach')) {\n                score -= 15;\n                stratWarn = 'Entwicklungsstrategie ohne WEG-Option oder Ausbaurecht hat keinen klaren Hebel.';\n            } else { score += 8; }\n        }\n\n        score = Math.max(0, Math.min(100, Math.round(score)));\n\n        let rec, cls, detail;\n        if (score >= 65) {\n            rec = 'STRONG BUY';\n            cls = 'verdict-green';\n            detail = 'Die Fundamentaldaten \u00fcberzeugen. Das Rendite-Risiko-Verh\u00e4ltnis ist attraktiv.';\n        } else if (score >= 40) {\n            rec = 'VERHANDELN';\n            cls = 'verdict-yellow';\n            let discount = 0;\n            if (d.energy === 'G') discount += 150000;\n            if (c('opt_geg')) discount += 60000;\n            if (d.vacancy > 10) discount += 50000;\n            let target = Math.round((d.price - discount) \/ 10000) * 10000;\n            detail = `Potenzial vorhanden, aber zum aktuellen Preis risikobehaftet. Rationaler Zielpreis: ca. <strong>${fmtE.format(target)}<\/strong> (abzgl. Capex-Puffer und Risikoabschlag).`;\n        } else {\n            rec = 'PASS';\n            cls = 'verdict-red';\n            detail = 'Die Risiken \u00fcberwiegen die Chancen. Negativer Leverage-Effekt wahrscheinlich.';\n        }\n\n        if (stratWarn) {\n            detail += `<br><br><strong>Strategie-Check (${d.stratType}):<\/strong> ${stratWarn}`;\n        }\n\n        let metricsHtml = notes.slice(0, 4).map(n =>\n            `<div class=\"verdict-metric\"><span class=\"vm-dot\" style=\"background:var(--${n.c})\"><\/span>${n.t}<\/div>`\n        ).join('');\n\n        const container = document.getElementById('verdict-container');\n        container.innerHTML = `\n            <div class=\"verdict-inner\">\n                <div class=\"verdict-score-area\">\n                    <div class=\"verdict-score-ring\">${score}<\/div>\n                    <div class=\"verdict-score-label\">Investment Score<\/div>\n                <\/div>\n                <div class=\"verdict-content-area\">\n                    <h3>${rec}<\/h3>\n                    <p>${detail}<\/p>\n                    ${metricsHtml ? `<div class=\"verdict-metrics\">${metricsHtml}<\/div>` : ''}\n                <\/div>\n            <\/div>`;\n        container.className = `verdict-box ${cls}`;\n\n        container.classList.add('transitioning');\n        setTimeout(() => container.classList.remove('transitioning'), 500);\n    }\n\n    return { updateAll, isChecked: c, hasData };\n})();\n\n\/* === SWOT MODULE === *\/\nconst swotApp = (function() {\n    let items = [];\n\n    function toggleAuto(type, text, condition) {\n        const idx = items.findIndex(i => i.text === text && i.type === type && i.auto);\n        if (condition && idx === -1) {\n            items.push({ id: '_' + Math.random().toString(36).substr(2, 9), type, text, auto: true });\n            return true;\n        } else if (!condition && idx !== -1) {\n            items.splice(idx, 1);\n            return true;\n        }\n        return false;\n    }\n\n    function syncOptions() {\n        let ch = false;\n        Object.keys(OPTION_MAP).forEach(id => {\n            const m = OPTION_MAP[id];\n            if (toggleAuto(m.type, m.text, document.getElementById(id).checked)) ch = true;\n        });\n        if (ch) render();\n    }\n\n    function syncAttributes(d, factor) {\n        let ch = false;\n\n        if (toggleAuto('strengths', 'Exzellente Energieeffizienz (Klasse A\/B): Minimales regulatorisches Risiko, niedrige Nebenkosten', d.energy === 'A')) ch = true;\n        if (toggleAuto('weaknesses', 'Kritische Energiebilanz (Klasse G\/H): Hoher Sanierungsbedarf, GEG-Risiko, steigende NK', d.energy === 'G')) ch = true;\n        if (toggleAuto('weaknesses', 'Schwache Energiebilanz (Klasse E\/F): Mittelfristiger Sanierungsbedarf absehbar', d.energy === 'E')) ch = true;\n\n        if (toggleAuto('strengths', 'Neuwertiger Zustand (Kernsaniert): Geringe laufende Instandhaltungskosten', d.mod === 'kernsaniert')) ch = true;\n        if (toggleAuto('weaknesses', 'Sanierungsstau: Substanzieller Capex-Bedarf vor Wertsteigerung', d.mod === 'sanierungsbed\u00fcrftig')) ch = true;\n\n        if (toggleAuto('strengths', 'Attraktiver Einkaufsfaktor unter Marktniveau: Sicherheitsmarge beim Einstieg', factor > 0 && factor < 16)) ch = true;\n        if (toggleAuto('weaknesses', '\u00dcberh\u00f6hter Einkaufsfaktor (>26x): Minimale Fehlertoleranz bei der Bewirtschaftung', factor > 26)) ch = true;\n\n        const vac = parseFloat(document.getElementById('vacancy').value) || 0;\n        if (toggleAuto('weaknesses', 'Hoher Leerstand: Reduzierter Cashflow, m\u00f6glicherweise strukturelle Vermietungsprobleme', vac > 15)) ch = true;\n        if (toggleAuto('strengths', 'Vollvermietung: Stabiler, kalkulierbarer Cashflow', vac === 0 && app.hasData())) ch = true;\n\n        const rent_ist = parseFloat(document.getElementById('rent_ist').value) || 0;\n        const rent_soll = parseFloat(document.getElementById('rent_soll').value) || 0;\n        const upliftPct = rent_ist > 0 ? ((rent_soll \/ rent_ist - 1) * 100) : 0;\n        if (toggleAuto('strengths', 'Signifikante Mietreserve (>20%): Organisches Ertragssteigerungspotenzial', upliftPct > 20)) ch = true;\n\n        const age = new Date().getFullYear() - d.year;\n        if (toggleAuto('weaknesses', 'Geb\u00e4udealter >50 Jahre: Erh\u00f6htes Risiko f\u00fcr Instandhaltungsr\u00fcckstau', age > 50 && d.year > 0 && d.mod !== 'kernsaniert')) ch = true;\n\n        if (ch) render();\n    }\n\n    function addItem(type) {\n        const newItem = { id: '_' + Math.random().toString(36).substr(2, 9), type, text: '', auto: false };\n        items.push(newItem);\n        render(newItem.id);\n        setTimeout(() => {\n            const list = document.getElementById('list-' + type);\n            const lastTA = list.querySelectorAll('textarea');\n            if (lastTA.length) lastTA[lastTA.length - 1].focus();\n        }, 50);\n    }\n\n    function deleteItem(id) {\n        const itemEl = document.querySelector(`[data-item-id=\"${id}\"]`);\n        if (itemEl) {\n            itemEl.style.transition = 'opacity 0.2s ease, transform 0.2s ease';\n            itemEl.style.opacity = '0';\n            itemEl.style.transform = 'translateX(-10px)';\n            setTimeout(() => {\n                items = items.filter(i => i.id !== id);\n                render();\n            }, 200);\n        } else {\n            items = items.filter(i => i.id !== id);\n            render();\n        }\n    }\n\n    function updateItem(id, val) {\n        const item = items.find(i => i.id === id);\n        if (item) item.text = val;\n    }\n\n    function clearAll() {\n        items = [];\n        render();\n    }\n\n    function render(newItemId) {\n        ['strengths', 'weaknesses', 'opportunities', 'threats'].forEach(type => {\n            const el = document.getElementById('list-' + type);\n            el.innerHTML = '';\n            items.filter(i => i.type === type).forEach(item => {\n                const li = document.createElement('li');\n                li.className = 'swot-item' + (item.auto ? ' auto' : '');\n                if (item.id === newItemId) li.className += ' entering';\n                li.setAttribute('data-item-id', item.id);\n                const ro = item.auto ? 'readonly' : '';\n                const cls = item.auto ? 'swot-input-text auto-gen' : 'swot-input-text';\n                li.innerHTML = `\n                    <div class=\"swot-item-icon\">${type === 'strengths' ? '&#9650;' : type === 'weaknesses' ? '&#9660;' : type === 'opportunities' ? '&#9654;' : '&#9888;'}<\/div>\n                    <textarea class=\"${cls}\" ${ro} oninput=\"swotApp.updateItem('${item.id}', this.value); this.style.height='auto'; this.style.height=this.scrollHeight+'px'\">${item.text}<\/textarea>\n                    ${!item.auto ? `<button class=\"btn-del no-print\" onclick=\"swotApp.deleteItem('${item.id}')\">&times;<\/button>` : ''}\n                `;\n                el.appendChild(li);\n            });\n\n            el.querySelectorAll('textarea').forEach(ta => {\n                ta.style.height = 'auto';\n                ta.style.height = ta.scrollHeight + 'px';\n            });\n        });\n    }\n\n    return { syncOptions, syncAttributes, addItem, deleteItem, updateItem, clearAll, render };\n})();\n\nfunction resetAll() {\n    if (!confirm('Alle Eingaben zur\u00fccksetzen und neue Bewertung starten?')) return;\n\n    document.querySelectorAll('input[type=\"text\"], input[type=\"number\"]').forEach(el => el.value = '');\n\n    document.getElementById('mod').selectedIndex = 0;\n    document.getElementById('energy').selectedIndex = 0;\n    document.getElementById('strat-type').selectedIndex = 0;\n    document.getElementById('strat-focus').selectedIndex = 0;\n    document.getElementById('strat-horizon').selectedIndex = 1;\n\n    document.querySelectorAll('input[type=\"checkbox\"]').forEach(el => el.checked = false);\n\n    swotApp.clearAll();\n    app.updateAll();\n}\n\n\/\/ Init\napp.updateAll();\n<\/script>\n\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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a577e27 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a577e27\" 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-13bb583\" data-id=\"13bb583\" 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-10cedea elementor-widget elementor-widget-html\" data-id=\"10cedea\" 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<!-- ============================================================\n     Lima Invest \u2013 White-Label CTA Banner (Variante 3)\n     Breit, minimale H\u00f6he, w\u00e4rmerer Hintergrund mit verblasster\n     Skyline-Silhouette (eingebettetes SVG, keine externen Bilder).\n     Kopieren und unterhalb des Tools einf\u00fcgen (WordPress \"Custom HTML\"-Block).\n     Styles sind gescopt (.li-cta3), kollidiert nicht mit dem Theme.\n============================================================ -->\n\n<div class=\"li-cta3\">\n  <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@500;600;700&family=Poppins:wght@300;400;500;600&display=swap');\n\n    .li-cta3 * { margin: 0; padding: 0; box-sizing: border-box; }\n\n    .li-cta3 {\n      --gold: #bb9e1c;\n      --gold-light: #e6c83a;\n      container-type: inline-size;\n      font-family: 'Poppins', system-ui, -apple-system, sans-serif;\n      max-width: 1180px;          \/* breit *\/\n      margin: 32px auto;\n    }\n\n    .li-cta3__card {\n      position: relative;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 28px;\n      padding: 18px 34px;          \/* minimale H\u00f6he *\/\n      border-radius: 14px;\n      border: 1px solid rgba(187,158,28,0.30);\n      overflow: hidden;\n      \/* w\u00e4rmerer Hintergrund + goldener \"Dusk\"-Schimmer am unteren Rand *\/\n      background:\n        radial-gradient(90% 160% at 50% 130%, rgba(187,158,28,0.22) 0%, rgba(187,158,28,0) 55%),\n        linear-gradient(135deg, #1c1813 0%, #262129 55%, #1a1d24 100%);\n      box-shadow: 0 18px 44px -24px rgba(0,0,0,0.6);\n    }\n\n    \/* verblasste Skyline-Silhouette, am unteren Rand verankert *\/\n    .li-cta3__card::before {\n      content: \"\";\n      position: absolute;\n      left: 0; right: 0; bottom: 0;\n      height: 100%;\n      background-image: url(\"data:image\/svg+xml,%3Csvg%20xmlns='http:\/\/www.w3.org\/2000\/svg'%20width='1440'%20height='220'%20viewBox='0%200%201440%20220'%3E%3Cg%20fill='%23bb9e1c'%3E%3Crect%20x='0'%20y='100'%20width='90'%20height='120'\/%3E%3Crect%20x='90'%20y='50'%20width='70'%20height='170'\/%3E%3Crect%20x='160'%20y='125'%20width='110'%20height='95'\/%3E%3Crect%20x='270'%20y='20'%20width='80'%20height='200'\/%3E%3Crect%20x='350'%20y='80'%20width='95'%20height='140'\/%3E%3Crect%20x='445'%20y='35'%20width='120'%20height='185'\/%3E%3Crect%20x='565'%20y='110'%20width='85'%20height='110'\/%3E%3Crect%20x='650'%20y='15'%20width='130'%20height='205'\/%3E%3Crect%20x='780'%20y='70'%20width='90'%20height='150'\/%3E%3Crect%20x='870'%20y='30'%20width='110'%20height='190'\/%3E%3Crect%20x='980'%20y='95'%20width='95'%20height='125'\/%3E%3Crect%20x='1075'%20y='20'%20width='125'%20height='200'\/%3E%3Crect%20x='1200'%20y='60'%20width='90'%20height='160'\/%3E%3Crect%20x='1290'%20y='25'%20width='150'%20height='195'\/%3E%3C\/g%3E%3C\/svg%3E\");\n      background-repeat: no-repeat;\n      background-position: bottom center;\n      background-size: 100% auto;\n      opacity: 0.14;\n      \/* nach oben hin sanft ausblenden *\/\n      -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0,0,0,0.4) 55%, transparent 100%);\n              mask-image: linear-gradient(to top, #000 0%, rgba(0,0,0,0.4) 55%, transparent 100%);\n      pointer-events: none;\n    }\n\n    .li-cta3__text { position: relative; z-index: 1; }\n\n    .li-cta3__eyebrow {\n      display: block;\n      font-size: 11px;\n      font-weight: 500;\n      letter-spacing: 0.2em;\n      text-transform: uppercase;\n      color: var(--gold);\n      margin-bottom: 5px;\n    }\n\n    .li-cta3__title {\n      font-family: 'Cormorant Garamond', Georgia, serif;\n      font-weight: 600;\n      font-size: 24px;\n      line-height: 1.15;\n      color: #ffffff;\n    }\n    .li-cta3__title span { color: var(--gold); }\n\n    .li-cta3__btn {\n      position: relative;\n      z-index: 1;\n      flex-shrink: 0;\n      display: inline-flex;\n      align-items: center;\n      gap: 10px;\n      padding: 13px 28px;\n      border-radius: 9px;\n      background: var(--gold);\n      color: #1c1813;\n      font-family: 'Poppins', sans-serif;\n      font-size: 14px;\n      font-weight: 600;\n      text-decoration: none;\n      white-space: nowrap;\n      transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;\n      box-shadow: 0 10px 24px -12px rgba(187,158,28,0.6);\n    }\n    .li-cta3__btn svg {\n      width: 16px; height: 16px;\n      transition: transform 0.25s ease;\n    }\n    .li-cta3__btn:hover {\n      background: var(--gold-light);\n      transform: translateY(-2px);\n      box-shadow: 0 16px 30px -12px rgba(187,158,28,0.75);\n    }\n    .li-cta3__btn:hover svg { transform: translateX(4px); }\n\n    \/* schmale Container (Elementor-Spalten): sauber stapeln *\/\n    @container (max-width: 640px) {\n      .li-cta3__card {\n        flex-direction: column;\n        align-items: flex-start;\n        text-align: left;\n        gap: 16px;\n        padding: 22px 24px;\n      }\n      .li-cta3__btn { width: 100%; justify-content: center; }\n    }\n  <\/style>\n\n  <div class=\"li-cta3__card\">\n    <div class=\"li-cta3__text\">\n      <span class=\"li-cta3__eyebrow\">White-Label f\u00fcr Ihr Unternehmen<\/span>\n      <h3 class=\"li-cta3__title\">Dieses Tool mit <span>Ihrer eigenen Marke<\/span><\/h3>\n    <\/div>\n\n    <a class=\"li-cta3__btn\"\n       href=\"https:\/\/limainvestimmobilien.de\/shop-fuer-immobilienmakler-immobilienakteure-leadgeneratoren\/\"\n       target=\"_blank\" rel=\"noopener\">\n      Zum Shop\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\"\n           stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n        <path d=\"M5 12h14M13 6l6 6-6 6\"\/>\n      <\/svg>\n    <\/a>\n  <\/div>\n<\/div>\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>Lima Invest | Professional Asset Evaluation SWOT-Analyse Methodik Diese Analyse dient der strukturierten Bewertung des Immobilien-Investments. Sie trennt strikt zwischen objektbezogenen internen Faktoren (Zustand, Mietstruktur) und marktbedingten externen Einfl\u00fcssen (Lage, Zins, Gesetze). Ziel ist es, nicht nur Risiken zu erkennen, sondern eine klare Strategie (Kaufen, Entwickeln oder Absto\u00dfen) abzuleiten. Strengths (St\u00e4rken) Weaknesses (Schw\u00e4chen) Opportunities (Chancen)&#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-21340","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21340","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=21340"}],"version-history":[{"count":10,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21340\/revisions"}],"predecessor-version":[{"id":23404,"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/pages\/21340\/revisions\/23404"}],"wp:attachment":[{"href":"https:\/\/limainvestimmobilien.de\/en\/wp-json\/wp\/v2\/media?parent=21340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}