/* Automatisch erzeugt von werkzeuge/code-seiten-einbetten.py aus
   bestand/elementor/landing-ersparnisrechner-a.json.
   NICHT von Hand aendern — Aenderungen gehoeren in die Quelle. */
/* --- DESIGN SYSTEM (Mission Solar Styles) --- */
      /* Scoped Variables to avoid Elementor conflicts */
      #mse-calculator {
          --mse-primary: #f3702b;
          --mse-primary-dark: #c4561a; /* Dark Green for Heat */
          --mse-primary-light: #f9a07a; /* Light Green for Power */
          --mse-secondary: #f3702b;
          --mse-accent: #5436e1;
          --mse-bg-card: rgba(255, 255, 255, 0.9);
          --mse-text-dark: #2b2b2b;
          --mse-text-light: #a0a0a0;
          --mse-radius: 15px;
          --mse-shadow: 0 4px 20px rgba(0,0,0,0.03);
          --mse-glass-bg: rgba(255, 255, 255, 0.65);
          --mse-glass-border: rgba(255, 255, 255, 0.6);
          --mse-glass-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
          font-family: "Source Sans 3", sans-serif;
          background-color: #f5f5f4;
          margin: 0;
          padding: 24px;
          box-sizing: border-box; /* Critical for Elementor */
          max-width: 1200px;
          margin: 0 auto;
          min-height: 100dvh;
          position: relative;
          color: var(--mse-text-dark);
          overflow: hidden;
          border-radius: 0;
          box-shadow: none;
      }
      /* Reset for internal elements */
      #mse-calculator * {
          box-sizing: border-box;
      }
      .mse-main-titles {
          text-align: center;
          margin-bottom: 9px;
          border-bottom: 1px solid #f0f0f0;
          padding-top: 70px;
          padding-bottom: 16px;
          position: relative;
      }
      .mse-main-titles h1 {
          font-size: 4rem;
          font-weight: 800;
          margin: 0 0 16px 0;
          line-height: 1.2;
          background: linear-gradient(135deg, #f19229, #f3702b);
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
          background-clip: text;
      }
      .mse-main-titles p {
          font-size: 1.1rem;
          color: var(--mse-text-light);
          margin: 0;
          padding: 8px 0 28px 0;
          font-weight: 400;
      }
      /* --- ANIMATIONS --- */
      @keyframes mseFadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
      @keyframes mseSpin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
      /* --- STANDARD STEPS --- */
      /* Default state is hidden */
      .mse-step-container { display: none; animation: mseFadeIn 0.3s ease-out; padding: 8px 12px; }
      /* Active state shows block */
      .mse-step-container.active { display: block !important; }
      /* MODIFIED GRID SYSTEM (Flex for single row on desktop) */
      .mse-grid-3, .mse-grid-2 {
          display: flex;
          flex-wrap: wrap;
          gap: 16px;
          margin-top: 20px;
          width: 100%;
      }
      /* Desktop: alle Kacheln in einer Zeile */
      #mse-calculator.mse-w-wide .mse-grid-3,
      #mse-calculator.mse-w-wide .mse-grid-2 { flex-wrap: nowrap !important; }
      #mse-calculator.mse-w-wide .mse-grid-3 .mse-card,
      #mse-calculator.mse-w-wide .mse-grid-2 .mse-card { flex: 1 !important; }
      /* KACHEL-DESIGN */
      .mse-card {
          background:
              linear-gradient(135deg, rgba(255, 255, 255, 0.68), rgba(255, 255, 255, 0.22)),
              radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0) 58%);
          border-radius: 1.25rem; padding: 1.1rem;
          text-align: center; cursor: pointer; transition: all 0.2s ease;
          border: 1px solid rgba(255, 255, 255, 0.8);
          box-shadow:
              0 0 0 1px rgba(0, 0, 0, 0.14),
              0 8px 16px rgba(0,0,0,0.10),
              0 22px 52px rgba(0,0,0,0.26),
              inset 0 1px 0 rgba(255,255,255,0.95),
              inset 0 -1px 0 rgba(255,255,255,0.25);
          backdrop-filter: blur(36px) saturate(220%);
          -webkit-backdrop-filter: blur(36px) saturate(220%);
          position: relative;
          overflow: hidden;
          display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
          min-height: 21.75rem;
          flex: 1; /* Distribute space equally */
          height: auto; /* Allow growth */
          width: 100%; /* Ensure width fill in flex */
      }
      .mse-card.mse-card-no-icon {
          justify-content: center;
      }
      .mse-card::before {
          content: "";
          position: absolute;
          inset: 0;
          background:
              linear-gradient(120deg, rgba(255,255,255,0.95), rgba(255,255,255,0) 60%),
              linear-gradient(200deg, rgba(255,255,255,0.35), rgba(255,255,255,0) 70%);
          opacity: 0.9;
          z-index: 0;
          pointer-events: none;
      }
      .mse-card::after {
          content: "";
          position: absolute;
          inset: 0;
          background-image:
              radial-gradient(circle at 30% 25%, rgba(255,255,255,0.7), rgba(255,255,255,0) 60%),
              url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
          background-size: 150% 150%, 180px 180px;
          background-position: center, center;
          opacity: 0.35;
          mix-blend-mode: soft-light;
          z-index: 0;
          pointer-events: none;
      }
      .mse-card > * { position: relative; z-index: 1; }
      .mse-card:hover {
          transform: translateY(-4px);
          box-shadow:
              0 0 0 2px #1a5e5b,
              0 8px 16px rgba(26, 94, 91, 0.12),
              0 28px 60px rgba(0,0,0,0.22),
              inset 0 1px 0 rgba(255,255,255,0.95),
              inset 0 -1px 0 rgba(255,255,255,0.3);
          border-color: rgba(26, 94, 91, 0.25);
          background:
              linear-gradient(135deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.28)),
              radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 58%);
      }
      .mse-card:active { transform: scale(0.98); }
      .mse-card h3 { margin: 12px 0 8px 0; font-size: 1.2rem; font-weight: 700; color: rgba(18, 18, 18, 0.86); max-width: 14.75rem; }
      .mse-card p { font-size: 0.95rem; color: rgba(70, 70, 70, 0.75); margin: -0.25rem 0 0 0; line-height: 1.4; max-width: 12.875rem; }
      #mse-calculator h3 { font-size: 1.2rem; }
      #mse-calculator p { font-size: 0.8rem;  color: rgba(70, 70, 70, 0.75); margin: -0.25rem 0 0 0; line-height: 1.4; max-width: 12.875rem; }
      /* ICON STYLES */
      .mse-card-icon {
          max-height: 9.8125rem;
          height: auto;
          width: auto;
          max-width: 100%;
          object-fit: contain;
          margin-top: 25%;
          margin-bottom: 22.5%;
          display: block;
      }
      /* Larger icons for router step product cards */
      
#step-router .mse-grid-3 .mse-card-icon {
          max-height: 12rem;
          height: auto;
          width: auto;
          max-width: 100%;
          object-fit: contain;
          margin-top: 10%;
          margin-bottom: 10%;
          display: block;
      }
      /* --- INPUTS --- */
      #mse-calculator .mse-card-input {
          width: 85% !important; max-width: 240px !important; margin-top: 0px !important; padding: 10px 12px !important;
          border-radius: 12px !important; border: 1px solid var(--mse-glass-border) !important; background-color: var(--mse-glass-bg) !important;
          color: #1f1f1f !important; text-align: center !important; font-size: 0.95rem !important;
          line-height: 1.4 !important; display: inline-block !important; height: auto !important; min-height: 42px !important;
          box-shadow: var(--mse-glass-shadow) !important; transition: border-color 0.2s, box-shadow 0.2s;
          backdrop-filter: blur(12px) saturate(150%);
          -webkit-backdrop-filter: blur(12px) saturate(150%);
      }
      #mse-calculator .mse-card-input:focus { border-color: var(--mse-primary) !important; outline: none !important; box-shadow: 0 0 0 2px rgba(243, 112, 43, 0.25), var(--mse-glass-shadow) !important; }
      #mse-calculator .mse-btn-small {
          margin-top: 8px !important; padding: 7px 18px !important; font-size: 0.85rem !important;
          background: linear-gradient(135deg, #f19229, #f3702b) !important; color: white !important; border: none !important;
          border-radius: 8px !important; cursor: pointer !important; transition: filter 0.2s;
          display: inline-block !important; font-weight: 600 !important; text-transform: none !important;
      }
      #mse-calculator .mse-btn-small:hover { filter: brightness(0.88) !important; }
      /* Navigation */
      .mse-step-header { text-align: center; margin-bottom: 20px; }
      .mse-step-header h2 { font-size: 2rem; margin-bottom: 12px; color: var(--mse-text-dark); }
      .mse-nav { display: flex; justify-content: space-between; margin-top: 24px; padding-top: 16px; border-top: 1px solid #eee; }
      .mse-btn { padding: 12px 22px; border-radius: 8px; border: none; cursor: pointer; font-weight: 600; font-size: 1.05rem; transition: all 0.2s; }
      .mse-btn-back { background: #f0f0f0 !important; color: #aaa !important; border: 2px solid #e0e0e0 !important; border-radius: 8px; }
      .mse-btn-back:hover { background: #e8e8e8 !important; color: #888 !important; }
      .mse-btn-primary { background: linear-gradient(135deg, #f19229, #f3702b) !important; color: white !important; border-radius: 8px; transition: filter 0.2s; }
      .mse-btn-primary:hover { filter: brightness(0.88); background: linear-gradient(135deg, #f19229, #f3702b) !important; color: white !important; }
      .mse-btn:disabled { opacity: 0.5; cursor: not-allowed; }
      /* Reset Button (Results) */
      .mse-reset-map {
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          right: 24px;
          z-index: 6;
          background: #e5e5e5 !important;
          border: 1px solid #d0d0d0 !important;
          color: #333 !important;
          padding: 8px 14px;
          border-radius: 999px;
          font-size: 0.85rem;
          font-weight: 600;
          cursor: pointer;
          box-shadow: 0 10px 24px rgba(0,0,0,0.12);
          backdrop-filter: blur(10px) saturate(120%);
          -webkit-backdrop-filter: blur(10px) saturate(120%);
          transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
          text-transform: none !important;
      }
      .mse-reset-map:hover {
          transform: translateY(calc(-50% - 1px));
          box-shadow: 0 12px 22px rgba(0,0,0,0.14);
          background: #efefef !important;
      }
      #mse-calculator.mse-w-mobile .mse-reset-map:hover {
          transform: translateY(-1px);
      }
      #step-dashboard.blurred .mse-reset-map,
      #step-dashboard-kombi.blurred .mse-reset-map {
          opacity: 0;
          pointer-events: none;
      }
      /* Map Input */
      .mse-map-input-wrapper { position: relative; max-width: 900px; margin: 0 auto; display: flex; gap: 12px; align-items: center; }
      #mse-address-input { flex: 3; padding: 17px 18px; border: 1px solid var(--mse-glass-border); border-radius: 16px; font-size: 1.05rem; outline: none; transition: border-color 0.2s, box-shadow 0.2s; box-shadow: var(--mse-glass-shadow); background: var(--mse-glass-bg); backdrop-filter: blur(12px) saturate(150%); -webkit-backdrop-filter: blur(12px) saturate(150%); }
      #mse-address-input:focus { border-color: var(--mse-primary); }
      #mse-hausnummer-input { flex: 1; min-width: 120px; padding: 17px 14px; border: 1px solid var(--mse-glass-border); border-radius: 16px; font-size: 1.05rem; outline: none; transition: border-color 0.2s, box-shadow 0.2s; box-shadow: var(--mse-glass-shadow); text-align: center; background: var(--mse-glass-bg); backdrop-filter: blur(12px) saturate(150%); -webkit-backdrop-filter: blur(12px) saturate(150%); }
      #mse-hausnummer-input:focus { border-color: var(--mse-primary); }
      .mse-error-msg { color: #e74c3c; font-size: 0.9rem; margin-bottom: 15px; display: none; text-align: center; }
      /* Loader */
      #mse-loader {
          text-align: center;
          padding: 60px 20px;
          min-height: 280px; /* Ensure space is reserved */
      }
      #mse-loader h3 {
          font-size: 1.2rem;
          color: var(--mse-text-dark);
          margin-bottom: 25px;
      }
      /* SPINNER (115px) */
      #mse-calculator .mse-spinner {
          display: block !important;
          width: 80px !important;
          height: 80px !important;
          box-sizing: border-box !important;
          border: 8px solid #f3f3f3 !important;
          border-top-color: #f3702b !important;
          border-right-color: #f9a07a !important;
          border-bottom-color: #f3f3f3 !important;
          border-left-color: #f3f3f3 !important;
          border-radius: 50% !important;
          animation: mseSpin 1s linear infinite !important;
          margin: 0 auto !important;
      }
      /* --- DASHBOARD STYLES (SOLO MODI) --- */
      #step-dashboard { padding: 0; position: relative; transition: filter 0.5s ease; }
      #step-dashboard.blurred { filter: blur(8px); pointer-events: none; user-select: none; }
      /* 1. Hero Section */
      .mse-dash-hero {
          background: var(--mse-bg-card);
          border-radius: var(--mse-radius);
          overflow: hidden;
          display: grid;
          grid-template-columns: 1.2fr 1fr;
          margin-bottom: 30px;
          min-height: 260px;
          box-shadow: var(--mse-shadow);
      }
      .mse-hero-content { padding: 24px; display: flex; flex-direction: column; justify-content: center; }
      .mse-hero-content h3 { margin: 0 0 10px 0; font-size: 1.25rem; }
      .mse-hero-list { list-style: none; padding: 0; margin: 0 0 12px 0; font-size: 0.85rem; }
      .mse-hero-list li { display: flex; justify-content: space-between; margin-bottom: 8px; color: var(--mse-text-dark); }
      .mse-hero-list li.funding { color: #34E7A5; font-weight: 600; }
      .mse-hero-list li.discount { color: var(--mse-secondary); font-weight: 600; }
      .mse-hero-total {
          margin-top: auto; padding-top: 12px; border-top: 2px solid #ddd;
          display: flex; justify-content: space-between; align-items: center;
      }
      .mse-total-label { font-weight: 700; font-size: 1rem; }
      .mse-total-val {
          font-size: 1.4rem; font-weight: 800;
          background: linear-gradient(135deg, #f3702b 0%, #e05e1a 100%);
          -webkit-background-clip: text; -webkit-text-fill-color: transparent;
      }
      /* MAP AREA & BADGE */
      .mse-hero-map { position: relative; height: 100%; min-height: 240px; width: 100%; padding: 1rem; box-sizing: border-box; }
      .mse-map-container { width: 100%; height: 100%; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,0.1); background: #eee; }
      /* UPDATED BADGE */
      .mse-map-badge {
          background: #ffffff;
          backdrop-filter: blur(4px);
          padding: 6px 12px;
          border-radius: 18px;
          font-weight: 700;
          font-size: 0.8rem;
          margin-bottom: 18px;
          box-shadow: 0 4px 10px rgba(0,0,0,0.1);
          background-image: linear-gradient(to right, #f3702b, #f3702b); background-size: 100%;
          -webkit-background-clip: text; -moz-background-clip: text; -webkit-text-fill-color: transparent; -moz-text-fill-color: transparent;
          color: #f3702b; border: 1px solid rgba(255,255,255,0.5);
      }
      .mse-map-badge--invalid {
          background-image: none;
          color: #b00020;
          -webkit-text-fill-color: #b00020;
          border-color: rgba(176, 0, 32, 0.2);
          box-shadow: 0 4px 10px rgba(176, 0, 32, 0.12);
      }
      .mse-location-alert {
          display: none;
          margin-bottom: 14px;
          padding: 10px 14px;
          border-radius: 12px;
          background: rgba(176, 0, 32, 0.08);
          color: #b00020;
          border: 1px solid rgba(176, 0, 32, 0.2);
          text-align: center;
          font-weight: 600;
          font-size: 0.9rem;
      }
      /* 2. KPIs */
      .mse-dash-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
      .mse-stat-card { background: var(--mse-bg-card); padding: 16px; border-radius: var(--mse-radius); text-align: center; }
      .mse-stat-icon { font-size: 1.2rem; margin-bottom: 4px; display: block; }
      .mse-stat-val { font-size: 1.1rem; font-weight: 700; color: var(--mse-text-dark); display: block; }
      .mse-stat-label { font-size: 0.75rem; color: var(--mse-text-light); }
      /* 3. Charts Middle */
      .mse-charts-container { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
      .mse-chart-box {
          background: var(--mse-bg-card); border-radius: var(--mse-radius); padding: 16px;
          height: 260px; position: relative; box-shadow: var(--mse-shadow);
          overflow: hidden;
          display: flex;
          flex-direction: column;
      }
      .mse-chart-box h4 { margin: 0 0 12px 0; font-size: 1rem; text-align: center; }
      /* 4. WEALTH Chart */
      .mse-wealth-card {
          background: var(--mse-bg-card); border-radius: var(--mse-radius); padding: 16px 16px 12px;
          box-shadow: var(--mse-shadow); margin-bottom: 24px;
          overflow: hidden;
          display: flex;
          flex-direction: column;
      }
      .mse-wealth-card h4 { margin: 0 0 12px 0; font-size: 1rem; text-align: center; }
      .mse-wealth-footer { font-size: 0.75rem; color: #888; text-align: center; margin-top: 12px; padding-top: 8px; }
      /* 5. Amortization Bottom */
      .mse-amort-row {
          display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
      }
      .mse-amort-card {
          background: var(--mse-bg-card); border-radius: var(--mse-radius); padding: 28px 16px;
          box-shadow: var(--mse-shadow); text-align: center;
          display: flex; flex-direction: column; justify-content: center; align-items: center;
      }
      .mse-amort-val { font-size: 2.4rem !important; font-weight: 800; color: var(--mse-primary); margin-bottom: 8px; }
      .mse-amort-sub { font-size: 0.95rem; color: var(--mse-text-light); }
      /* Disclaimer Card */
      .mse-disclaimer-card {
          background: var(--mse-bg-card);
          border-radius: var(--mse-radius);
          padding: 16px 22px;
          margin-top: 24px;
          text-align: center;
          font-size: 0.95rem;
          color: var(--mse-text-light);
          box-shadow: var(--mse-shadow);
      }
      /* --- KOMBI DASHBOARD STYLES (UPDATED v3.9) --- */
      #step-dashboard-kombi { padding: 0; position: relative; transition: filter 0.5s ease; }
      #step-dashboard-kombi.blurred { filter: blur(8px); pointer-events: none; user-select: none; }
      /* Hero: 4-column grid - stat cards 1col each, map spans 2cols */
      .mse-kombi-hero {
          display: grid;
          grid-template-columns: repeat(4, 1fr);
          grid-template-rows: auto auto;
          gap: 16px;
          margin-bottom: 20px;
          background: transparent;
      }
      .mse-kombi-hero-left { display: contents; } /* Cards flow into parent grid */
      .mse-kombi-hero-grid { display: contents; } /* Cards flow into parent grid */
      /* Small cards GRAY - Increased Size */
      .mse-kombi-stat-card {
          background: var(--mse-bg-card); /* #f5f5f4 */
          padding: 16px; /* Reduced slightly for layout safety */
          border-radius: 12px; text-align: center;
          border: 1px solid transparent; transition: all 0.2s;
          box-shadow: var(--mse-shadow); /* Added Shadow back to cards */
          /* FIX: Center Content Vertically */
          display: flex;
          flex-direction: column;
          justify-content: center;
          height: 100%;
      }
      .mse-kombi-stat-card:hover { border-color: #ddd; }
      /* Map: explicitly place in cols 3-4, rows 1-2 */
      .mse-hero-map-kombi {
          grid-column: 3 / 5;
          grid-row: 1 / 3;
          min-height: 200px;
          border-radius: var(--mse-radius);
          overflow: hidden;
          box-shadow: var(--mse-shadow);
          position: relative;
      }
      #mse-final-map-kombi { width: 100%; height: 100%; border-radius: 0; }
      /* Details Grid (4 Cards) - same 4-col grid as hero */
      .mse-kombi-details-grid {
          display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px;
      }
      .mse-kombi-detail-card {
          padding: 20px; /* Larger Padding */
          min-height: 120px;
          border-radius: 12px; text-align: center;
          box-shadow: var(--mse-shadow);
          display: flex; flex-direction: column; justify-content: center;
          /* GRADIENT BORDER TRICK */
          background: linear-gradient(#f5f5f4, #f5f5f4) padding-box,
                      linear-gradient(to right, #f9a07a, #f3702b) border-box;
          border: 2px solid transparent;
      }
      .mse-detail-val { font-weight: 700; font-size: 1rem; color: var(--mse-text-dark); display: block; margin-bottom: 5px; }
      .mse-detail-label { font-size: 0.75rem; color: var(--mse-text-light); }
      /* Charts */
      .mse-kombi-split-charts {
          display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px;
      }
      .mse-kombi-cost-card {
          background: var(--mse-bg-card); border-radius: var(--mse-radius); padding: 16px;
          box-shadow: var(--mse-shadow); min-height: 260px;
          overflow: hidden;
          display: flex;
          flex-direction: column;
      }
      .mse-kombi-cost-card h4 { text-align: center; margin-bottom: 12px; font-size: 1rem; }
      .mse-kombi-total-chart {
          background: var(--mse-bg-card); border-radius: var(--mse-radius); padding: 20px;
          box-shadow: var(--mse-shadow); margin-bottom: 24px; text-align: center;
          overflow: hidden;
          display: flex;
          flex-direction: column;
      }
      .mse-kombi-total-chart h4 { margin-bottom: 14px; font-size: 1rem; }
      .mse-chart-area {
          position: relative;
          flex: 1 1 auto;
          min-height: 0;
      }
      .mse-chart-area--fixed-250 { height: 250px; flex: 0 0 auto; }
      .mse-chart-area--fixed-280 { height: 280px; flex: 0 0 auto; }
      .mse-chart-area canvas {
          width: 100% !important;
          height: 100% !important;
          display: block;
      }
      /* Invest Section */
      .mse-kombi-invest {
          display: grid; grid-template-columns: 1fr 1fr; gap: 0;
          background: var(--mse-bg-card); border-radius: var(--mse-radius);
          box-shadow: var(--mse-shadow); margin-bottom: 24px; overflow: hidden;
      }
      .mse-kombi-invest-col { padding: 22px; border-right: 1px solid #eee; display: flex; flex-direction: column; }
      .mse-kombi-invest-col:last-child { border-right: none; }
      .mse-kombi-invest-col h4 { color: var(--mse-text-light); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
      /* Updated Invest Styles */
      .mse-invest-original { font-size: 0.95rem; color: #999; text-decoration: line-through; display: block; margin-bottom: 5px; }
      .mse-invest-final-col { font-size: 1.4rem; font-weight: 800; color: var(--mse-text-dark); margin-bottom: 12px; display: block; }
      .mse-kombi-invest-list { list-style: none; padding: 0; margin: 0; font-size: 0.8rem; flex-grow: 1; display: flex; flex-direction: column; }
      .mse-kombi-invest-list li { display: flex; justify-content: space-between; margin-bottom: 6px; color: #666; }
      .mse-kombi-invest-list li.promo { color: var(--mse-secondary); font-weight: 700; margin-top: auto; border-top: 1px solid #eee; padding-top: 10px; }
      .mse-kombi-invest-list li.subtotal { color: #000; font-weight: 800; margin-top: 5px; }
      .mse-kombi-invest-footer {
          grid-column: 1 / -1; background: var(--mse-bg-card); /* Gray background */
          padding: 20px;
          border-top: 2px solid #ddd; display: flex; justify-content: space-between; align-items: center;
      }
      /* Lead Popup */
      #mse-lead-overlay {
          position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999;
          display: flex; align-items: center; justify-content: center;
          padding: 24px;
          opacity: 0; pointer-events: none; transition: opacity 0.5s ease; background: rgba(255,255,255,0.6); backdrop-filter: blur(2px);
      }
      #mse-lead-overlay.active { opacity: 1; pointer-events: all; }
      .mse-lead-modal {
          background: rgba(255, 255, 255, 0.9); padding: 28px; border-radius: 16px; box-shadow: 0 16px 40px rgba(0,0,0,0.12);
          width: 100%; max-width: 420px; text-align: center; border: 1px solid rgba(255,255,255,0.6);
          max-height: 90vh; overflow-y: auto;
      }
      .mse-lead-modal h3 { font-size: 1.4rem; margin-bottom: 8px; }
      .mse-lead-modal p { color: var(--mse-text-light); margin-bottom: 25px; }
      .mse-form-group { margin-bottom: 15px; text-align: left; }
      .mse-form-group label { display: block; font-size: 0.85rem; margin-bottom: 5px; font-weight: 600; }
      .mse-form-group input {
          width: 100%;
          padding: 12px;
          border: 1px solid var(--mse-glass-border);
          border-radius: 12px;
          font-size: 0.95rem;
          transition: border-color 0.2s, box-shadow 0.2s;
          background: var(--mse-glass-bg);
          box-shadow: var(--mse-glass-shadow);
          backdrop-filter: blur(12px) saturate(150%);
          -webkit-backdrop-filter: blur(12px) saturate(150%);
      }
      .mse-form-group input:focus { border-color: var(--mse-primary); outline: none; box-shadow: 0 0 0 2px rgba(243, 112, 43, 0.25), var(--mse-glass-shadow); }
      .mse-form-group input.mse-input-error { border-color: #e74c3c !important; box-shadow: 0 0 0 2px rgba(231, 76, 60, 0.2), var(--mse-glass-shadow) !important; }
      .mse-phone-hint { font-size: 0.75rem; color: var(--mse-text-light); margin-top: 4px; display: none; }
      .mse-phone-hint.visible { display: block; color: #e74c3c; }
      .mse-checkbox-group { display: flex; align-items: flex-start; gap: 12px; font-size: 0.85rem; text-align: left; margin-bottom: 22px; padding: 12px; background: rgba(255,255,255,0.7); border-radius: 12px; }
      .mse-checkbox-group input[type="checkbox"] {
          width: 32px; height: 32px; min-width: 32px; margin: 0; cursor: pointer;
          accent-color: var(--mse-primary);
      }
      .mse-checkbox-group label { cursor: pointer; padding-top: 5px; line-height: 1.4; }
      /* Custom Popup (replaces browser alerts) */
      #mse-popup-overlay {
          position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999;
          display: flex; align-items: center; justify-content: center;
          opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
          background: rgba(0,0,0,0.5); backdrop-filter: blur(4px);
      }
      #mse-popup-overlay.active { opacity: 1; pointer-events: all; }
      .mse-popup-box {
          background: white; padding: 60px 80px; border-radius: 30px;
          box-shadow: 0 30px 80px rgba(0,0,0,0.3);
          text-align: center; max-width: 700px; width: 90%;
          transform: scale(0.8); transition: transform 0.3s ease;
      }
      #mse-popup-overlay.active .mse-popup-box { transform: scale(1); }
      .mse-popup-box.error { border-top: 8px solid #f3702b; }
      .mse-popup-box.success { border-top: 8px solid #34E7A5; }
      .mse-popup-icon { font-size: 5rem; margin-bottom: 20px; }
      .mse-popup-box.error .mse-popup-icon { color: #f3702b; }
      .mse-popup-box.success .mse-popup-icon { color: #34E7A5; }
      .mse-popup-message { font-size: 2rem; font-weight: 600; color: #2b2b2b; margin-bottom: 40px; line-height: 1.4; }
      .mse-popup-btn {
          background: var(--mse-primary); color: white; border: none;
          padding: 20px 60px; font-size: 1.5rem; font-weight: 700;
          border-radius: 15px; cursor: pointer; transition: background 0.2s;
      }
      .mse-popup-btn:hover { background: #e05e1a !important; color: white !important; }
      /* Tablet (<=1024px) */
      #mse-calculator.mse-w-tablet .mse-grid-3,
      #mse-calculator.mse-w-tablet .mse-grid-2 { flex-wrap: wrap !important; }
      #mse-calculator.mse-w-tablet .mse-grid-3 .mse-card { flex: 0 0 calc(33.333% - 11px) !important; }
      #mse-calculator.mse-w-tablet .mse-grid-2 .mse-card { flex: 0 0 calc(50% - 8px) !important; }
      #mse-calculator.mse-w-tablet .mse-main-titles { padding-top: 40px; }
      #mse-calculator.mse-w-tablet .mse-main-titles h1 { font-size: 2.6rem; }
      #mse-calculator.mse-w-tablet .mse-main-titles p { font-size: 1rem; }
      #mse-calculator.mse-w-tablet .mse-dash-hero { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-tablet .mse-hero-map { height: 200px; min-height: 200px; order: -1; }
      #mse-calculator.mse-w-tablet .mse-amort-row { grid-template-columns: 1fr; gap: 12px; }
      #mse-calculator.mse-w-tablet .mse-amort-val { font-size: 2.1rem !important; }
      #mse-calculator.mse-w-tablet .mse-map-input-wrapper { flex-direction: column; align-items: stretch; }
      #mse-calculator.mse-w-tablet #mse-address-input,
      #mse-calculator.mse-w-tablet #mse-hausnummer-input { width: 100%; min-width: 0; }
      #mse-calculator.mse-w-tablet .mse-nav { flex-direction: column; gap: 10px; }
      #mse-calculator.mse-w-tablet .mse-btn { width: 100%; }
      #mse-calculator.mse-w-tablet .mse-nav .mse-btn-primary { order: 1; }
      #mse-calculator.mse-w-tablet .mse-nav .mse-btn-back { order: 2; }
      #mse-calculator.mse-w-tablet .mse-card { min-height: auto; }
      #mse-calculator.mse-w-tablet .mse-card-icon { margin-top: 0.5rem; margin-bottom: 0.75rem; max-height: 7rem; }
      /* Kombi Tablet */
      #mse-calculator.mse-w-tablet .mse-kombi-hero { grid-template-columns: 1fr 1fr; }
      #mse-calculator.mse-w-tablet .mse-hero-map-kombi { grid-column: 1 / 3; grid-row: auto; min-height: 260px; }
      #mse-calculator.mse-w-tablet .mse-kombi-details-grid { grid-template-columns: 1fr 1fr; }
      #mse-calculator.mse-w-tablet .mse-kombi-split-charts { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-tablet .mse-kombi-invest { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-tablet .mse-kombi-invest-col { border-right: none; border-bottom: 1px solid #eee; }
      /* Mobile (<=768px) */
      #mse-calculator.mse-w-mobile .mse-reset-map { position: static; transform: none; margin-left: auto; margin-right: 0; margin-top: 10px; display: block; }
      #mse-calculator.mse-w-mobile .mse-grid-3,
      #mse-calculator.mse-w-mobile .mse-grid-2 { flex-wrap: wrap !important; gap: 12px !important; }
      #mse-calculator.mse-w-mobile .mse-grid-3 .mse-card,
      #mse-calculator.mse-w-mobile .mse-grid-2 .mse-card { flex: 0 0 calc(50% - 6px) !important; width: calc(50% - 6px) !important; max-width: calc(50% - 6px) !important; }
      #mse-calculator.mse-w-mobile #step-router .mse-card:not(.mse-card-no-icon) {
          display: flex !important;
          flex-direction: column !important;
          align-items: center !important;
          justify-content: center !important;
          text-align: center !important;
      }
      #mse-calculator.mse-w-mobile #step-router .mse-card .mse-card-icon {
          grid-column: unset !important;
          grid-row: unset !important;
          max-height: 7rem !important;
          width: auto !important;
          margin: 8% auto !important;
          display: block !important;
          max-height: none; width: 85%; height: auto; margin: 0 auto; align-self: center;
      }
      #mse-calculator.mse-w-mobile .mse-card:not(.mse-card-no-icon) h3 {
          grid-column: 2; grid-row: 1; align-self: end; font-size: 1.5rem; margin: 0 0 3px; max-width: 100%;
      }
      #mse-calculator.mse-w-mobile .mse-card:not(.mse-card-no-icon) p {
          grid-column: 2; grid-row: 2; align-self: start; font-size: 0.78rem; margin: 0; max-width: 100%; line-height: 1.3;
      }
      #mse-calculator.mse-w-mobile .mse-card.mse-card-no-icon { min-height: auto; padding: 1.1rem; }
      #mse-calculator.mse-w-mobile .mse-card.mse-card-no-icon h3 { font-size: 0.9rem; }
      #mse-calculator.mse-w-mobile .mse-card.mse-card-no-icon p { font-size: 0.78rem; }
      #mse-calculator.mse-w-mobile .mse-card-input { width: 90% !important; padding: 7px 10px !important; font-size: 0.82rem !important; min-height: 34px !important; }
      #mse-calculator.mse-w-mobile .mse-dash-grid { grid-template-columns: 1fr 1fr; }
      #mse-calculator.mse-w-mobile .mse-charts-container { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-mobile .mse-chart-box { height: 220px; padding: 14px; }
      #mse-calculator.mse-w-mobile .mse-chart-area { height: 200px; }
      #mse-calculator.mse-w-mobile .mse-chart-area--fixed-250 { height: 200px; }
      #mse-calculator.mse-w-mobile .mse-chart-area--fixed-280 { height: 220px; }
      #mse-calculator.mse-w-mobile .mse-wealth-card { padding: 14px; }
      #mse-calculator.mse-w-mobile .mse-wealth-footer { font-size: 0.7rem; }
      #mse-calculator.mse-w-mobile .mse-kombi-cost-card { min-height: 220px; padding: 14px; }
      #mse-calculator.mse-w-mobile .mse-kombi-total-chart { padding: 16px; }
      #mse-calculator.mse-w-mobile .mse-kombi-total-chart h4 { font-size: 0.95rem; }
      #mse-calculator.mse-w-mobile .mse-hero-map { min-height: 200px; }
      /* Kleines Mobile (<=600px) */
      #mse-calculator.mse-w-small .mse-grid-3 .mse-card,
      #mse-calculator.mse-w-small .mse-grid-2 .mse-card { flex: 0 0 calc(50% - 5px) !important; width: calc(50% - 5px) !important; max-width: calc(50% - 5px) !important; }
      #mse-calculator.mse-w-small .mse-grid-3,
      #mse-calculator.mse-w-small .mse-grid-2 { gap: 10px !important; flex-wrap: wrap !important; }
      #mse-calculator.mse-w-small .mse-card:not(.mse-card-no-icon) { padding: 0.9rem; }
      #mse-calculator.mse-w-small .mse-card:not(.mse-card-no-icon) h3 { font-size: 0.82rem; }
      #mse-calculator.mse-w-small .mse-card:not(.mse-card-no-icon) p { font-size: 0.72rem; }
      #mse-calculator.mse-w-small .mse-dash-grid { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-small .mse-main-titles h1 { font-size: 2.2rem; }
      #mse-calculator.mse-w-small .mse-chart-box { height: 200px; padding: 12px; }
      #mse-calculator.mse-w-small .mse-chart-area { height: 180px; }
      #mse-calculator.mse-w-small .mse-chart-area--fixed-250 { height: 180px; }
      #mse-calculator.mse-w-small .mse-chart-area--fixed-280 { height: 200px; }
      #mse-calculator.mse-w-small .mse-hero-map { min-height: 180px; }
      #mse-calculator.mse-w-small .mse-kombi-hero { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-small .mse-hero-map-kombi { grid-column: 1 / 2; min-height: 200px; }
      #mse-calculator.mse-w-small .mse-kombi-details-grid { grid-template-columns: 1fr; }
      #mse-calculator.mse-w-small .mse-kombi-total-chart > div[style] { font-size: 1.6rem; }
      /* Sehr kleines Mobile (<=400px) */
      #mse-calculator.mse-w-tiny .mse-grid-3 .mse-card,
      #mse-calculator.mse-w-tiny .mse-grid-2 .mse-card { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; }
      #mse-calculator.mse-w-tiny .mse-card:not(.mse-card-no-icon) { padding: 0.8rem; }
      #mse-calculator.mse-w-tiny .mse-card:not(.mse-card-no-icon) h3 { font-size: 0.8rem; }
      #mse-calculator.mse-w-tiny .mse-card:not(.mse-card-no-icon) p { font-size: 0.7rem; }
      #mse-calculator.mse-w-tiny .mse-main-titles h1 { font-size: 1.8rem; }
      #mse-calculator.mse-w-tiny .mse-card-input { width: 95% !important; font-size: 0.8rem !important; }
      /* Hide Google autocomplete dropdown when address step is not visible */
      body:not(:has(#step-map.active)) .pac-container { display: none !important; }
      .pac-container { z-index: 10000 !important; border-radius: 8px !important; box-shadow: 0 4px 20px rgba(0,0,0,0.15) !important; border: 1px solid #e0e0e0 !important; margin-top: 2px; }

  

    
    .msf-header {
      position: sticky;
      top: 0;
      z-index: 100;
      background: #fff;
      border-bottom: 1px solid #e8e8e8;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 130px;
      padding: 0 16px;
    }
    .msf-header img {
      height: 120px;
      width: auto;
    }
    /* Mobile Font Sizes */
    #mse-calculator.mse-w-mobile .mse-card { min-height: 10rem !important; }
    #mse-calculator.mse-w-mobile .mse-main-titles h1,
    #mse-calculator.mse-w-small .mse-main-titles h1,
    #mse-calculator.mse-w-tiny .mse-main-titles h1 { font-size: 2.6rem !important; }
    #mse-calculator.mse-w-mobile .mse-step-header h2,
    #mse-calculator.mse-w-small .mse-step-header h2 { font-size: 1.3rem !important; }
    #mse-calculator.mse-w-mobile .mse-card h3,
    #mse-calculator.mse-w-small .mse-card h3 { font-size: 1.2rem !important; }
    #mse-calculator.mse-w-mobile .mse-card p,
    #mse-calculator.mse-w-small .mse-card p { font-size: 0.8rem !important; }
    #mse-calculator.mse-w-mobile h3,
    #mse-calculator.mse-w-small h3 { font-size: 1.2rem !important; }
    #mse-calculator.mse-w-mobile p,
    #mse-calculator.mse-w-small p { font-size: 0.8rem !important; }
    
    @media (max-width: 600px) {
      .msf-header { height: 96px !important; }
      .msf-header img { height: 80px !important; }
    }
    #mse-calculator {
      border-radius: 0 !important;
      box-shadow: none !important;
      padding: 16px !important;
    }
    @media (max-width: 600px) {
      #mse-calculator {
        padding: 12px !important;
      }
      .mse-main-titles {
        padding-top: 20px !important;
      }
      .mse-main-titles h1 {
        font-size: 1.6rem !important;
      }
    }
  

    html, html.admin-bar, html body, body.admin-bar {
      margin-top: 0 !important;
      padding-top: 0 !important;
    }
    #wpadminbar {
      display: none !important;
      height: 0 !important;
      overflow: hidden !important;
    }
    hr.e-divider-base,
    .e-con-boxed {
      display: none !important;
      height: 0 !important;
      overflow: hidden !important;
    }
    /* Hello Elementor theme adds padding-top: 5rem to div.elementor on live pages —
       override globally for all Elementor containers */
    div.elementor, .elementor {
      padding-top: 0 !important;
      padding: 0 !important;
    }
.mse-pill{display:inline-block;margin-left:8px;padding:0.1em 0.7em;border:1.5px solid var(--ms-orange);border-radius:var(--ms-radius-pill);background:var(--ms-light-orange);color:var(--ms-dark);-webkit-text-fill-color:var(--ms-dark);font-size:0.72em;font-weight:600;line-height:1.5;white-space:nowrap;vertical-align:middle}

