
    :root {
      --navy: #1c2f5d;
      --navy-dark: #132247;
      --green: #98c94a;
      --green-dark: #73aa24;
      --solar: #f4b400;
      --ink: #22272f;
      --muted: #5e6b7a;
      --line: #dfe6ef;
      --bg: #f6f9fc;
      --white: #ffffff;
      --shadow: 0 14px 34px rgba(23, 37, 74, 0.10);
      --radius: 20px;
      --max: 1180px;
    }

    * { box-sizing: border-box; }
    html { }
    body {
      margin: 0;
      font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
      color: var(--ink);
      background: var(--bg);
      line-height: 1.6;
    }
    img { max-width: 100%; display: block; }
    a { color: inherit; text-decoration: none; }
    .container { width: min(var(--max), calc(100% - 32px)); margin: 0 auto; }
    .section { padding: 82px 0; }
    .section-tight { padding: 64px 0; }
    .eyebrow {
      color: var(--green-dark);
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      font-size: .82rem;
      margin-bottom: 10px;
    }
    h1,h2,h3 { line-height: 1.1; margin: 0 0 16px; }
    h1 { font-size: clamp(2.3rem, 5vw, 4.7rem); }
    h2 { font-size: clamp(1.8rem, 3.3vw, 3rem); }
    h3 { font-size: clamp(1.15rem, 2.1vw, 1.45rem); }
    p { margin: 0 0 16px; color: var(--ink); }
    .lead { font-size: 1.15rem; color: var(--muted); }
    .muted { color: var(--muted); }

    .btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 52px;
      padding: 0 22px;
      border-radius: 999px;
      border: 0;
      cursor: pointer;
      font-weight: 800;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
      box-shadow: var(--shadow);
    }
    .btn:hover { transform: translateY(-1px); }
    .btn-primary { background: var(--green); color: #10200a; }
    .btn-primary:hover { background: #a7d55d; }
    .btn-secondary { background: var(--navy); color: var(--white); }
    .btn-secondary:hover { background: var(--navy-dark); }
    .btn-ghost {
      background: rgba(28, 47, 93, 0.06);
      color: var(--navy);
      box-shadow: none;
      border: 1px solid rgba(28, 47, 93, 0.08);
    }

    header {
      position: sticky;
      top: 0;
      z-index: 40;
      backdrop-filter: blur(12px);
      background: rgba(255,255,255,0.88);
      border-bottom: 1px solid rgba(28, 47, 93, 0.08);
    }
    .nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      min-height: 84px;
    }
    .brand {
      display: flex;
      align-items: center;
      gap: 16px;
      min-width: 0;
    }
    .brand img.logo { width: min(350px, 48vw); height: auto; }
    .brand img.slogan { width: 120px; border-radius: 10px; box-shadow: 0 8px 20px rgba(28,47,93,.14); }

    .nav-toggle {
      display: none;
      background: var(--navy);
      color: var(--white);
      border: 0;
      border-radius: 12px;
      padding: 10px 14px;
      font-weight: 800;
    }
    nav ul {
      display: flex;
      gap: 16px;
      padding: 0;
      margin: 0;
      list-style: none;
      align-items: center;
      flex-wrap: wrap;
      justify-content: flex-end;
    }
    nav a {
      color: var(--navy);
      font-weight: 700;
      font-size: .96rem;
      padding: 8px 4px;
      border-bottom: 2px solid transparent;
    }
    nav a:hover, nav a[aria-current="page"] { border-color: var(--green); }

    .hero {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 15% 15%, rgba(152,201,74,.22), transparent 30%),
        radial-gradient(circle at 85% 0%, rgba(244,180,0,.18), transparent 20%),
        linear-gradient(140deg, #f9fcff 0%, #edf4fb 50%, #f7fbff 100%);
      padding: 70px 0 52px;
    }
    .hero-grid {
      display: grid;
      grid-template-columns: 1.25fr .95fr;
      gap: 32px;
      align-items: center;
    }
    .hero-card {
      background: var(--white);
      border-radius: 28px;
      padding: 26px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28, 47, 93, 0.08);
    }
    .pill-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
    .pill {
      background: rgba(152,201,74,.14);
      color: #245212;
      border: 1px solid rgba(152,201,74,.28);
      padding: 8px 12px;
      border-radius: 999px;
      font-weight: 700;
      font-size: .92rem;
    }
    .price-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
      margin-top: 18px;
    }
    .price-box {
      border-radius: 18px;
      padding: 18px;
      background: linear-gradient(180deg, rgba(28,47,93,.04), rgba(28,47,93,.02));
      border: 1px solid rgba(28,47,93,.08);
    }
    .price-box strong { font-size: 1.45rem; color: var(--navy); }
    .price-note {
      margin-top: 14px;
      padding: 14px 16px;
      border-radius: 14px;
      background: rgba(152,201,74,.12);
      color: #244b10;
      font-weight: 700;
    }

    .stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 18px;
      margin-top: 30px;
    }
    .stat {
      background: var(--white);
      border-radius: 20px;
      padding: 22px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
    }
    .stat .num { font-size: 1.6rem; font-weight: 900; color: var(--navy); }
    .stat.price-stat .num { white-space: nowrap; font-size: clamp(1.55rem, 3vw, 2rem); letter-spacing: -.02em; }
    .stat.price-stat { border: 1px solid rgba(152,201,74,.55); background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.08)); box-shadow: 0 0 0 1px rgba(152,201,74,.14), var(--shadow); }
    .stat.price-stat .small { max-width: 18ch; }
    .offer-card.local.local-accent { border: 1px solid rgba(152,201,74,.55); box-shadow: 0 0 0 1px rgba(152,201,74,.18), var(--shadow); }
    .offer-card .small-subnote strong { color: var(--navy); }
    .bonus-card { display:flex; flex-direction:column; }
    .bonus-card p.muted { min-height: 116px; margin-bottom: 0; }
    .bonus-grid-inline { margin-top: 18px; }
    .footer-brandmark img { width:min(100%, 420px); height:auto; display:block; }
    .stat .small { color: var(--muted); }

    .offer-card .price + .small-subnote { color: var(--navy); }
    .offer-card.local .small-subnote strong { color: var(--navy); }
    .offer-card.local .price, .offer-card.public .price { line-height: 1.25; }
    .table-wrap table { table-layout: fixed; }
    .info-strip li { margin-bottom: 4px; }

    .grid-2 { display: grid; grid-template-columns: 1.05fr .95fr; gap: 28px; align-items: start; }
    .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }

    .card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 24px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
    }
    .feature-list, .check-list { display: grid; gap: 12px; padding: 0; margin: 18px 0 0; list-style: none; }
    .feature-list li, .check-list li {
      display: flex; gap: 12px; align-items: flex-start;
    }
    .icon {
      width: 34px; height: 34px; flex: 0 0 34px;
      border-radius: 12px;
      display: inline-flex; align-items: center; justify-content: center;
      font-size: 1rem; font-weight: 900;
      background: rgba(152,201,74,.15); color: #245212;
      margin-top: 1px;
    }
    .icon.navy { background: rgba(28,47,93,.09); color: var(--navy); }
    .icon.solar { background: rgba(244,180,0,.15); color: #8f6100; }

    .band {
      background: linear-gradient(135deg, var(--navy), var(--navy-dark));
      color: var(--white);
      border-radius: 30px;
      padding: 34px;
      box-shadow: var(--shadow);
    }
    .band h2, .band h3, .band strong, .band .visual-kicker { color: #fff; }
    .band p, .band .muted { color: rgba(255,255,255,.9); }
    .band .btn-ghost { background: rgba(255,255,255,.1); color: var(--white); border-color: rgba(255,255,255,.18); }

    .table-wrap { overflow-x: auto; }
    table {
      width: 100%;
      border-collapse: collapse;
      background: var(--white);
      border-radius: 18px;
      overflow: hidden;
      box-shadow: var(--shadow);
    }
    th, td {
      padding: 16px 18px;
      text-align: left;
      border-bottom: 1px solid var(--line);
      white-space: nowrap;
    }
    th { background: var(--navy); color: var(--white); font-size: .95rem; }
    tr:nth-child(even) td { background: #fbfdff; }
    .table-note {
      margin-top: 14px;
      font-size: .96rem;
      color: var(--muted);
    }

    .bonus-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
      margin-top: 22px;
    }
    .bonus-card {
      position: relative;
      background: var(--white);
      border-radius: 20px;
      padding: 22px;
      border: 1px solid rgba(28,47,93,.09);
      box-shadow: var(--shadow);
    }
    .bonus-card.highlight { outline: 2px solid rgba(152,201,74,.45); }
    .bonus-grid-inline { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 16px; }
    .bonus-col { display:grid; gap: 0; }
    .bonus-row { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding: 10px 0; border-top: 1px solid var(--line); }
    .bonus-label { color: var(--muted); font-weight: 700; }
    .bonus-value { font-weight: 900; color: var(--navy); min-width: 72px; text-align: right; }
    .badge {
      display: inline-flex;
      background: rgba(152,201,74,.14);
      color: #244b10;
      border-radius: 999px;
      padding: 6px 12px;
      font-size: .84rem;
      font-weight: 800;
      margin-bottom: 12px;
    }

    .split-card {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      align-items: stretch;
    }
    .visual-box {
      min-height: 240px;
      border-radius: 22px;
      padding: 24px;
      background:
        linear-gradient(135deg, rgba(28,47,93,.95), rgba(28,47,93,.78)),
        linear-gradient(135deg, rgba(152,201,74,.20), rgba(244,180,0,.16));
      color: var(--white);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      overflow: hidden;
      position: relative;
    }
    .visual-box::after {
      content: "";
      position: absolute;
      inset: auto -30px -30px auto;
      width: 180px;
      height: 180px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(152,201,74,.28), transparent 68%);
    }
    .visual-box.small { min-height: 220px; }
    .visual-kicker { color: rgba(255,255,255,.78); font-weight: 700; }
    .visual-big { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 900; line-height: 1; }

    .faq-wrap { display: grid; gap: 14px; margin-top: 20px; }
    details {
      background: var(--white);
      border-radius: 18px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
      overflow: hidden;
    }
    summary {
      list-style: none;
      cursor: pointer;
      padding: 18px 22px;
      font-weight: 800;
      color: var(--navy);
      position: relative;
      padding-right: 52px;
    }
    summary::-webkit-details-marker { display: none; }
    summary::after {
      content: "+";
      position: absolute;
      right: 20px;
      top: 50%;
      transform: translateY(-50%);
      font-size: 1.5rem;
      color: var(--green-dark);
    }
    details[open] summary::after { content: "–"; }
    .faq-content { padding: 0 22px 20px; color: var(--muted); }

    .contact-grid {
      display: grid;
      grid-template-columns: .95fr 1.05fr;
      gap: 28px;
    }
    .contact-list { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 12px; }
    .contact-list li { display: flex; gap: 12px; align-items: flex-start; }
    .map-card {
      min-height: 100%;
      background: linear-gradient(135deg, #fafdff, #eef4fb);
      border: 1px solid rgba(28,47,93,.08);
      border-radius: 24px;
      padding: 24px;
      box-shadow: var(--shadow);
    }
    .map-embed {
      margin-top: 18px;
      border-radius: 18px;
      overflow: hidden;
      border: 1px solid rgba(28,47,93,.08);
      min-height: 280px;
      background: linear-gradient(135deg, rgba(28,47,93,.08), rgba(152,201,74,.08));
      display: grid;
      place-items: center;
      text-align: center;
      padding: 24px;
    }

    .register-box {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 26px;
      align-items: start;
    }
    .toggle-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 18px;
    }
    .toggle-option {
      position: relative;
      background: var(--white);
      border: 1px solid rgba(28,47,93,.1);
      border-radius: 18px;
      padding: 16px;
      cursor: pointer;
      box-shadow: var(--shadow);
    }
    .toggle-option input {
      position: absolute;
      inset: 0;
      opacity: 0;
      cursor: pointer;
    }
    .toggle-option.active {
      outline: 2px solid rgba(152,201,74,.46);
      background: #fbfff5;
    }

    form {
      background: var(--white);
      border-radius: 24px;
      padding: 24px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
    }
    .form-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 14px;
    }
    .form-grid .full { grid-column: 1 / -1; }
    label {
      display: block;
      font-size: .92rem;
      color: var(--navy);
      font-weight: 700;
      margin-bottom: 8px;
    }
    input, select, textarea {
      width: 100%;
      min-height: 50px;
      border-radius: 14px;
      border: 1px solid #cfd9e7;
      padding: 12px 14px;
      font: inherit;
      color: var(--ink);
      background: #fff;
    }
    textarea { min-height: 120px; resize: vertical; }
    .checkboxes { display: grid; gap: 10px; margin-top: 4px; }
    .checkbox {
      display: flex; gap: 10px; align-items: flex-start;
      padding: 12px 14px;
      border: 1px solid rgba(28,47,93,.08);
      border-radius: 14px;
      background: #fbfdff;
    }
    .checkbox input { width: 18px; min-height: 18px; margin-top: 3px; }
    .disclaimer {
      margin-top: 16px;
      padding: 14px 16px;
      border-radius: 14px;
      background: rgba(244,180,0,.13);
      color: #6f4f00;
      font-size: .95rem;
    }
    .success {
      display: none;
      margin-top: 16px;
      padding: 14px 16px;
      border-radius: 14px;
      background: rgba(152,201,74,.16);
      color: #245212;
      font-weight: 700;
    }

    footer {
      background: var(--navy);
      color: var(--white);
      padding: 34px 0;
      margin-top: 40px;
    }
    .footer-grid {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 20px;
      align-items: start;
    }
    .footer-meta, footer .logo-note { color: rgba(255,255,255,.9); }

    .hide { display: none !important; }
    .visual-box p, .visual-box .btn-ghost { position: relative; z-index: 1; }
    .visual-box .btn-ghost.btn-on-dark { background: rgba(255,255,255,.14); color: #fff; border-color: rgba(255,255,255,.22); }
    .visual-box .btn-ghost.btn-on-dark:hover { background: rgba(255,255,255,.22); }
    .downloads-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; margin-top:14px; }
    .download-card { display:flex; align-items:center; min-height:68px; padding:16px 18px; border-radius:16px; background:#fff; border:1px solid rgba(28,47,93,.08); box-shadow: var(--shadow); color: var(--navy); font-weight:800; }
    .download-card:hover { transform: translateY(-1px); }
    .quantity-row { display:grid; grid-template-columns: 1fr 120px; gap:12px; align-items:end; margin: -2px 0 6px; }
    .quantity-row label { margin:0; }
    .footer-logo-box { display:inline-block; background: rgba(255,255,255,.98); padding: 10px 14px; border-radius: 16px; }
    .small-highlight { color: var(--navy); font-weight: 800; display: inline; padding-bottom: 1px; box-shadow: inset 0 -0.42em 0 rgba(152,201,74,.26); }
    .small-subnote { color: rgba(28,47,93,.78); font-size: .92rem; }
    .price-label-small { font-size: .72em; font-weight: 700; white-space: nowrap; }
    .price-amount-nowrap { white-space: nowrap; }

.promo-nowrap { white-space: nowrap; }

@media (max-width: 780px) {
  .promo-nowrap { white-space: normal; }
}



    .dual-offer {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
      margin-top: 20px;
      align-items: stretch;
    }
    .hero-card > h3.offer-overview-title {
      max-width: 29ch;
      line-height: 1.12;
      margin-bottom: 0;
    }
    .hero-card > h3.offer-overview-title .line2 { white-space: nowrap; }

    .offer-card {
      border-radius: 18px;
      padding: 18px 18px 14px;
      border: 1px solid rgba(28,47,93,.08);
      background: linear-gradient(180deg, rgba(28,47,93,.04), rgba(28,47,93,.02));
      min-width: 0;
      display: grid;
      grid-template-rows: auto minmax(5.8em, auto) auto auto 1fr;
      row-gap: 0;
    }
    .offer-card.public { background: linear-gradient(180deg, rgba(28,47,93,.05), rgba(28,47,93,.015)); }
    .offer-card.local { background: linear-gradient(180deg, rgba(152,201,74,.18), rgba(152,201,74,.08)); border-color: rgba(152,201,74,.35); }
    .card.local-only { background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.08)); border-color: rgba(152,201,74,.38); box-shadow: 0 0 0 1px rgba(152,201,74,.10), var(--shadow); }

    .offer-card .label {
      display: inline-flex;
      justify-self: start;
      max-width: 100%;
      margin-bottom: 12px;
      padding: 6px 12px;
      border-radius: 999px;
      font-size: .82rem;
      font-weight: 800;
      background: rgba(28,47,93,.08);
      color: var(--navy);
      white-space: nowrap;
    }
    .offer-card.local .label { background: rgba(152,201,74,.2); color: #245212; }

    .offer-card h3 { margin-bottom: 8px; }
    .offer-card .muted {
      min-height: 6.2em;
      margin-bottom: 0;
    }

    .offer-price-group {
      align-self: start;
      margin-top: 10px;
    }
    .offer-price-row,
    .offer-bonus-price-row {
      display: grid;
      grid-template-columns: 58px max-content 18px;
      column-gap: 6px;
      align-items: baseline;
      color: var(--navy);
      white-space: nowrap;
    }
    .offer-price-row {
      font-size: 1.55rem;
      font-weight: 900;
      line-height: 1.16;
    }
    .offer-price-row + .offer-price-row { margin-top: 2px; }

    .offer-code,
    .offer-amount-main,
    .offer-currency,
    .offer-bonus-amount { white-space: nowrap; }

    .offer-card strong.price {
      display: block;
      font-size: 1.55rem;
      color: var(--navy);
      margin: 0;
    }

    .offer-note-row {
      margin-top: 6px;
      font-size: .93rem;
      color: var(--navy);
      line-height: 1.25;
    }

    .offer-bonus-wrap {
      margin-top: 6px;
      color: var(--navy);
    }
    .offer-bonus-label {
      display: block;
      font-size: 1.06rem;
      font-weight: 800;
      color: var(--navy);
      line-height: 1.15;
      margin: 0 0 2px 0;
    }
    .offer-bonus-price-row {
      font-size: 1.55rem;
      font-weight: 900;
      line-height: 1.08;
    }
    .offer-bonus-price-row .offer-bonus-amount {
      grid-column: 2;
      justify-self: start;
      transform: translateX(-6px);
    }
    .offer-bonus-price-row .offer-currency {
      grid-column: 3;
      justify-self: start;
      transform: translateX(-6px);
    }

    .mini-note {
      margin-top: 10px;
      font-size: .93rem;
      color: var(--muted);
      align-self: end;
    }

    .section-index {
      display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 8px;
    }
    .section-index a {
      display:inline-flex; padding:10px 14px; border-radius:999px; background:#fff; border:1px solid rgba(28,47,93,.08);
      color: var(--navy); font-weight:700; box-shadow: var(--shadow);
    }
    .faq-group { margin-top: 34px; }
    .faq-group h3 { margin-bottom: 12px; color: var(--navy); }
    .info-strip {
      margin-top:16px; padding:14px 16px; border-radius:16px; background: rgba(28,47,93,.05); border:1px solid rgba(28,47,93,.08);
    }
    .info-strip ul { margin: 8px 0 0; padding-left: 22px; }
    .info-strip li + li { margin-top: 8px; }
    .info-strip.local-only {
      background: rgba(152,201,74,.12);
      border-color: rgba(152,201,74,.3);
    }
@media (max-width: 1060px) {
      .hero-grid, .grid-2, .contact-grid, .register-box, .split-card, .footer-grid { grid-template-columns: 1fr; }
      .grid-3 { grid-template-columns: repeat(2, 1fr); }
      .grid-4, .stats, .bonus-cards { grid-template-columns: repeat(2, 1fr); }
      .brand img.slogan { display: none; }
      nav ul { gap: 12px; }
    }

    @media (max-width: 980px) {
      .hero-card > h3.offer-overview-title { max-width: none; }
      .offer-card .muted { min-height: 0; }
      .offer-card { grid-template-rows: auto auto auto auto auto; }
      .offer-price-group { margin-top: 8px; }
    }

    @media (max-width: 780px) {
      .nav { min-height: 76px; }
      .nav-toggle { display: inline-flex; }
      nav {
        position: absolute;
        top: calc(100% + 8px);
        left: 16px;
        right: 16px;
        background: rgba(255,255,255,.98);
        border-radius: 18px;
        box-shadow: var(--shadow);
        border: 1px solid rgba(28,47,93,.08);
        padding: 14px;
        display: none;
      }
      nav.open { display: block; }
      nav ul { flex-direction: column; align-items: flex-start; }
      .hero { padding-top: 46px; }
      .price-grid, .toggle-row, .form-grid, .grid-3, .grid-4, .stats, .bonus-cards, .dual-offer, .downloads-grid, .quantity-row { grid-template-columns: 1fr; }
      .section { padding: 64px 0; }
      .hero-card, .card, .band, form { padding: 20px; }
      .brand img.logo { width: min(250px, 62vw); }
      th, td { white-space: normal; }
      .bonus-value { min-width: 0; }
    }
    @media (max-width: 680px) { .bonus-grid-inline { grid-template-columns: 1fr; gap: 8px; } .price-box strong, .offer-card .price, .stat.price-stat .num { font-size: 1.9rem; } }

/* Final tweaks */
.local-inline-note{margin-top:12px;font-weight:800;color:var(--navy)}
.contract-card{display:block}
.contract-card.hide{display:none}
.download-note{margin-top:8px;color:var(--muted)}
.legal-links-list{display:grid;gap:14px}
@media (max-width: 860px){
  .legal-links-list{grid-template-columns:1fr}
}



/* Nur im Kasten "Ohne Registrierung": Öffentlich / laden zweizeilig */


/* Text im Registrierungs-Kasten sauber innerhalb der Box halten */
.offer-card > div {
  min-width: 0;
}
.offer-card.local p.muted {
  max-width: 100%;
  overflow-wrap: break-word;
}


/* --- FINAL overrides --- */
body{overflow-x:hidden;}
.container{width:min(var(--max), calc(100% - 32px)); max-width:100%; margin:0 auto;}
.keep-nowrap{white-space:nowrap;}
.sync-title{max-width:12ch; line-height:1.08; white-space:normal;}
.offer-card.local.local-accent h3,
.offer-card.local.local-accent .price,
.offer-card.local.local-accent .offer-note-row,
.offer-card.local.local-accent .offer-bonus-label,
.offer-card.local.local-accent .offer-bonus-price-row{color:#245212;}
.local-only-block{background:linear-gradient(180deg, rgba(152,201,74,.18), rgba(152,201,74,.08)); border-color:rgba(152,201,74,.35);}
.local-only-block h3{color:#245212;}
.green-card{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.10)); border-color:rgba(152,201,74,.38); box-shadow:0 0 0 1px rgba(152,201,74,.10), var(--shadow);}
.neutral-strip{background:#fff; border-color:rgba(28,47,93,.08);}
.strip-list{list-style:none; padding:0; margin:14px 0 0;}
.strip-list li{display:flex; gap:12px; align-items:flex-start; margin:0 0 12px 0;}
.public-note{align-self:flex-start; min-height:unset;}
.solar-info-equal{height:100%;}
.price-table-wrap{overflow:visible; display:block;}
.price-table-wrap table{table-layout:auto;}
.price-table-wrap td,.price-table-wrap th{white-space:normal;}
.dc-multi-row td:last-child > div + div{margin-top:4px;}
.section-index.sticky-index{position:sticky; top:84px; z-index:35; background:var(--bg); padding:10px 0 8px; margin-top:18px;}
.rent-grid-list{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.rent-grid-list ul{margin:0; padding-left:22px;}
.equal-two{grid-template-columns:repeat(2, 1fr)!important;}
.hero .pill-row .pill:first-child,
.hero .pill-row .pill:last-child{background:rgba(28,47,93,.08); color:var(--navy); border-color:rgba(28,47,93,.12);}
#home .stats .stat .num{line-height:1.05;}
#home .stats .stat.price-stat .small{max-width:none;}
#home .hero-card .info-strip{margin-bottom:16px;}
.footer-logo-box{display:inline-block; max-width:100%;}
table tr td, table tr th{vertical-align:middle;}
.price-table-wrap tbody tr{height:64px;}
.price-table-wrap tbody tr.dc-multi-row{height:64px;}
.price-table-wrap tbody tr.dc-multi-row td:last-child{display:flex; flex-direction:column; justify-content:center;}
#faq .faq-group{scroll-margin-top:160px;}
#faq .section-index a.current{border-color:var(--green); box-shadow:0 0 0 2px rgba(152,201,74,.22), var(--shadow);}
.hero-card .feature-list{margin-top:0;}

@media (max-width:1060px){
  .equal-two{grid-template-columns:1fr!important;}
}
@media (max-width:780px){
  body, p, h1, h2, h3, .lead, .muted, .footer-meta{text-align:left;}
  .hero-grid > div:first-child, .hero-card, .stats .stat, .price-stat, footer .footer-grid > div{justify-self:stretch;}
  .hero-card, .stat, .card, .band, form, .map-card{margin-left:0; margin-right:0;}
  .stats{grid-template-columns:1fr!important;}
  .hero-card .dual-offer{grid-template-columns:1fr;}
  .hero-card > h3.offer-overview-title .line2{white-space:normal;}
  .section-index.sticky-index{top:76px;}
  .footer-grid, .contact-grid, .register-box, .split-card, .hero-grid, .grid-2{grid-template-columns:1fr!important;}
  .footer-logo-box{margin:0 auto 0 0;}
  .rent-grid-list{grid-template-columns:1fr;}
  #home .btns, #kontakt .btns, .band .btns{justify-content:flex-start!important;}
  .offer-card.public h3.sync-title{max-width:12ch;}
}


/* --- FINAL round overrides --- */
.hero .pill-row .pill{background:rgba(28,47,93,.08); color:var(--navy); border-color:rgba(28,47,93,.16);}
.hero .pill-row .pill.pill-green{background:rgba(152,201,74,.18); color:#245212; border-color:rgba(152,201,74,.35);}
.hero .pill-row .pill.pill-blue{background:rgba(28,47,93,.08); color:var(--navy); border-color:rgba(28,47,93,.16);}
.stat.price-stat .small{max-width:none!important;}
#home .stats .stat.price-stat .small .small-highlight,
#home .stats .stat.price-stat .small .small-subnote{display:inline; white-space:normal;}
#home .stats .stat.price-stat .small .small-subnote{display:block; margin-top:2px;}
#home .hero-card .info-strip.local-only{background:linear-gradient(180deg, rgba(152,201,74,.18), rgba(152,201,74,.08)); border-color:rgba(152,201,74,.35);}
#laden article.offer-card.local .btn-pill-green{display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border-radius:999px; background:rgba(152,201,74,.18); color:#245212; border:1px solid rgba(152,201,74,.35); font-weight:700; font-size:.96rem; box-shadow:none;}
#laden article.offer-card.local .btn-pill-green:hover{background:rgba(152,201,74,.28);}
#laden article.offer-card.local h3.local-title{max-width:none!important; white-space:normal;}
.vat-note{font-size:.96rem!important; font-weight:800!important; color:var(--ink)!important;}
.local-wrap table{background:rgba(152,201,74,.12)!important; border:1px solid rgba(115,170,36,.28);}
.local-wrap th{background:#a7d55d!important; color:#245212!important;}
.local-wrap td{background:transparent!important;}
.local-wrap tr:nth-child(even) td{background:rgba(152,201,74,.06)!important;}
.local-wrap{border-radius:18px; overflow:hidden; box-shadow:0 0 0 1px rgba(115,170,36,.22), var(--shadow);}
#preise .bonus-cards{grid-template-columns:1fr!important;}
#preise .bonus-card{min-height:300px;}
.rent-grid-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;}
#vermietung .equal-two{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
#faq .section-index.sticky-index{position:sticky; top:84px; z-index:45; background:var(--bg); padding:10px 0 8px; margin:18px 0 8px;}
#faq .section-index a.current{border-color:var(--green); box-shadow:0 0 0 2px rgba(152,201,74,.22), var(--shadow);}
#faq .faq-group{scroll-margin-top:180px;}
.faq-subhead{display:inline-block; color:#6b7280; font-weight:800;}
@media (max-width:780px){
  nav{background:var(--navy)!important; border-color:rgba(255,255,255,.16)!important;}
  nav a{color:#fff!important;}
  nav ul{align-items:flex-start;}
  #faq .section-index.sticky-index{top:76px;}
  #faq .faq-group{scroll-margin-top:220px;}
  .rent-grid-list{grid-template-columns:1fr 1fr;}
  #vermietung .equal-two{grid-template-columns:1fr!important;}
  .footer-logo-box{max-width:min(100%, 260px); padding:8px 12px;}
  .footer-logo-box img{width:100%; height:auto;}
}
@media (min-width:781px){
  .green-card{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.10))!important; border-color:rgba(152,201,74,.38)!important; box-shadow:0 0 0 1px rgba(152,201,74,.10), var(--shadow)!important;}
  .hero .pill-row{justify-content:flex-start;}
}


/* --- FINAL D overrides --- */
header{z-index:1000;}
.hero{padding-top:52px;}
.hero .pill-row{margin-bottom:14px;}
.hero .pill{background:rgba(152,201,74,.14); color:#245212; border-color:rgba(152,201,74,.28);}
.hero .pill-1,.hero .pill-3{background:rgba(28,47,93,.08)!important; color:var(--navy)!important; border-color:rgba(28,47,93,.12)!important;}
.hero .pill-2{background:rgba(152,201,74,.18)!important; color:#245212!important; border-color:rgba(152,201,74,.35)!important;}
#home .price-stat .small,
#home .price-stat .stat-local-copy{max-width:none!important; white-space:normal!important;}
#home .price-stat .small br{display:none;}
#home .price-stat .small .small-highlight,
#home .price-stat .small .small-subnote{display:inline;}
.hero-solar-strip{background:rgba(152,201,74,.14)!important; border-color:rgba(152,201,74,.32)!important;}
.sync-title{max-width:none!important; white-space:normal!important;}
#laden .dual-offer article{display:flex; flex-direction:column;}
#laden .dual-offer article p{margin-bottom:0;}
#laden .dual-offer article .btns{margin-top:auto; padding-top:18px;}
.btn-pill-green{display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 22px; border-radius:999px; background:rgba(152,201,74,.20); color:#245212; border:1px solid rgba(152,201,74,.35); font-weight:700; font-size:.96rem; box-shadow:none;}
.btn-pill-green:hover{background:rgba(152,201,74,.28);}
.offer-actions .btn-pill-green{width:auto;}
.offer-card.local .label{color:#22272f;}
.offer-card.local .btns{justify-content:flex-start;}
.offer-card.local.local-only-block .label{color:#22272f!important;}
.vat-note{font-size:.98rem!important; font-weight:800!important; color:var(--muted)!important; margin-top:8px;}
.preise-top{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:28px; align-items:start;}
.preise-top-cards{display:grid; gap:18px;}
.preise-top-cards .card h3{margin-bottom:10px;}
.price-stack{display:grid; gap:22px; margin-top:26px;}
.price-block{display:grid; gap:16px;}
.price-table-wrap{overflow:visible!important;}
.price-table-wrap table{width:100%; table-layout:fixed;}
.price-table-wrap th,.price-table-wrap td{white-space:normal!important; overflow-wrap:anywhere;}
.public-wrap th{background:var(--navy);}
.local-wrap table{background:linear-gradient(180deg, rgba(152,201,74,.24), rgba(152,201,74,.14))!important; border:1px solid rgba(115,170,36,.35); box-shadow:0 0 0 1px rgba(115,170,36,.08), var(--shadow);}
.local-wrap th{background:#b8d96b!important; color:#244b10!important;}
.public-note,.local-note{height:auto!important;}
.public-wrap tbody tr{height:auto;}
.public-wrap tbody tr td:last-child div+div{margin-top:4px;}
.green-card{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.12))!important; border-color:rgba(115,170,36,.32)!important; box-shadow:0 0 0 1px rgba(115,170,36,.10), var(--shadow)!important;}
.bonus-stack-card{margin-top:22px; background:var(--white); border-radius:20px; border:1px solid rgba(28,47,93,.09); box-shadow:var(--shadow); overflow:hidden;}
.bonus-stack-segment{padding:22px;}
.bonus-stack-segment + .bonus-stack-segment{border-top:1px solid var(--line);}
.bonus-stack-segment .muted{min-height:116px;}
.rent-top-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:28px; align-items:start;}
.rent-side-cards{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.rent-side-cards .card{height:100%;}
.rent-grid-list{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.rent-grid-list ul{margin:0; padding-left:22px;}
.rent-grid-list li+li{margin-top:4px;}
.rent-full-card{display:block;}
.faq-nav-index{display:flex; flex-wrap:nowrap; overflow-x:auto; gap:10px; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.faq-nav-index::-webkit-scrollbar{display:none;}
.faq-nav-index a{white-space:nowrap; flex:0 0 auto;}
.section-index.sticky-index{position:sticky; top:84px; z-index:30; background:var(--bg); padding:10px 0 8px; margin:18px 0 8px;}
#faq .section-index a.current{border-color:var(--green)!important; box-shadow:0 0 0 2px rgba(152,201,74,.24), var(--shadow)!important;}
#faq .faq-group{scroll-margin-top:180px;}
.faq-subhead{display:inline-block; color:#6c7785; font-weight:800;}
#kontakt .container{max-width:860px;}
#kontakt .btns{justify-content:flex-start;}
.footer-logo-box{display:inline-block; max-width:min(100%,320px); width:100%;}
.footer-logo-box img{width:100%; max-width:100%; height:auto;}
#laden .grid-2.equal-two,.equal-two{grid-template-columns:repeat(2,minmax(0,1fr));}
.offer-card.public h3.sync-title, #laden .offer-card.public h3.sync-title{max-width:none!important;}
.local-only-block .label{color:#22272f!important;}
nav.open{z-index:1200;}
.nav-overlay{position:fixed;top:var(--header-height,76px);left:0;right:0;bottom:0;z-index:1199;}
@media (max-width:1060px){
  .preise-top,.rent-top-grid,.rent-side-cards,.equal-two{grid-template-columns:1fr!important;}
}
@media (max-width:780px){
  nav{background:var(--navy)!important; color:#fff!important; border-color:rgba(255,255,255,.12)!important; max-height:calc(100vh - 96px); overflow:auto; z-index:1200;}
  nav a{color:#fff!important; border-color:transparent!important;}
  nav ul{display:grid; grid-template-columns:1fr; gap:0; width:100%;}
  nav li{width:100%; border-top:1px solid rgba(255,255,255,.12);}
  nav li:first-child{border-top:0;}
  nav a{display:block; width:100%; padding:14px 10px;}
  nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--green);}
  .section-index.sticky-index{top:76px;}
  #faq .faq-group{scroll-margin-top:220px;}
  .offer-card.local .label{color:#22272f!important;}
}
@media (max-width:780px) and (orientation:landscape){
  nav ul{grid-template-columns:1fr 1fr; column-gap:14px;}
}

.stat-local-copy .small-subnote{margin-left:.3em;}
/* --- FINAL E fixes --- */
.hero{padding-top:38px!important;}
.hero .pill-row{margin-bottom:8px!important;}
.hero .pill-1,.hero .pill-3{background:rgba(28,47,93,.10)!important;color:var(--navy)!important;border-color:rgba(28,47,93,.16)!important;}
.hero .pill-2{background:rgba(152,201,74,.22)!important;color:#245212!important;border-color:rgba(152,201,74,.40)!important;}
.hero .stats .stat.price-stat .small{max-width:none!important;width:100%!important;}
.hero .stats .stat.price-stat .small-highlight,.hero .stats .stat.price-stat .small-subnote{display:inline;white-space:normal!important;}
.hero .stats .stat.price-stat .small br{display:none!important;}
.hero-solar-strip{background:linear-gradient(180deg, rgba(152,201,74,.22), rgba(152,201,74,.14))!important;border-color:rgba(115,170,36,.35)!important;}
#laden .dual-offer{align-items:stretch;}
#laden .dual-offer .offer-card{display:flex!important;flex-direction:column;min-height:100%;padding-bottom:18px;}
#laden .dual-offer .offer-card h3{margin-bottom:10px;}
#laden .dual-offer .offer-card p{margin-bottom:0;}
#laden .dual-offer .offer-card .btns{margin-top:auto;}
#laden .dual-offer .offer-card.public h3.sync-title,#laden .dual-offer .offer-card.local h3.local-title{max-width:none!important;white-space:normal!important;}
#laden .dual-offer .offer-card .label{margin-bottom:16px;}
#laden .dual-offer .offer-card .btn{min-height:54px;}
.btn-pill-green{display:inline-flex!important;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:999px;background:rgba(152,201,74,.28)!important;color:#245212!important;border:1px solid rgba(115,170,36,.42)!important;font-size:.96rem!important;font-weight:800!important;box-shadow:none!important;}
#laden .offer-actions .btn-pill-green{min-width:214px;justify-content:center;}
#laden .dual-offer .offer-card .btns.offer-actions{margin-top:auto;}
.vat-note{font-size:.90rem!important;font-weight:800!important;color:#5e6b7a!important;line-height:1.45!important;}
#preise .price-split{grid-template-columns:1fr 1fr!important;align-items:start;}
#preise .local-wrap{border:1px solid rgba(115,170,36,.32)!important;box-shadow:0 0 0 1px rgba(115,170,36,.10), var(--shadow)!important;border-radius:18px;overflow:hidden;background:linear-gradient(180deg, rgba(152,201,74,.24), rgba(152,201,74,.14))!important;}
#preise .local-wrap table{width:100%;table-layout:fixed!important;background:transparent!important;border:none!important;box-shadow:none!important;}
#preise .local-wrap thead th{background:#b8d96b!important;color:#244b10!important;}
#preise .local-wrap tbody td{background:transparent!important;}
#preise .local-wrap tbody tr:nth-child(even) td{background:rgba(152,201,74,.07)!important;}
#preise .public-wrap table,#preise .local-wrap table{table-layout:fixed!important;}
#preise .public-wrap table th,#preise .public-wrap table td,#preise .local-wrap table th,#preise .local-wrap table td{white-space:normal!important;overflow-wrap:anywhere;}
#preise .public-wrap .dc-multi-row td:last-child div+div{margin-top:4px;}
#preise .bonus-cards-restored{grid-template-columns:repeat(3,1fr)!important;}
#preise .bonus-cards-restored .bonus-card{height:100%;display:flex;flex-direction:column;}
#preise .bonus-cards-restored .bonus-card p.muted{min-height:116px;}
#preise .green-card{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.12))!important;border-color:rgba(152,201,74,.38)!important;box-shadow:0 0 0 1px rgba(152,201,74,.10), var(--shadow)!important;}
#faq .section-index.sticky-index{z-index:20!important;}
header, nav.open{z-index:60!important;}
#vermietung .rent-top{grid-template-columns:1.1fr .9fr!important;align-items:start;}
#vermietung .rent-right-stack{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
#vermietung .rent-right-stack .card{height:100%;}
#vermietung .rent-wide-card{margin-top:24px;}
#vermietung .rent-grid-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 30px;}
#vermietung .rent-grid-list ul{margin:0;padding-left:22px;}
#vermietung .rent-grid-list li{margin:0 0 8px 0;}
.local-only-block .label{color:#111827!important;}
@media (max-width:1060px){
  #preise .price-split{grid-template-columns:1fr!important;}
  #preise .bonus-cards-restored{grid-template-columns:1fr!important;}
  #vermietung .rent-top{grid-template-columns:1fr!important;}
  #vermietung .rent-right-stack{grid-template-columns:1fr 1fr!important;}
}
@media (max-width:780px){
  .hero{padding-top:28px!important;}
  .hero .pill-row{margin-bottom:10px!important;}
  #vermietung .rent-right-stack{grid-template-columns:1fr!important;}
  #vermietung .rent-grid-list{grid-template-columns:1fr 1fr!important;}
}


/* --- CLEAN FINAL CONSISTENCY FIXES --- */
:root{
  --pill-blue-bg: rgba(28,47,93,.10);
  --pill-blue-border: rgba(28,47,93,.16);
  --pill-blue-text: #1c2f5d;
  --pill-green-bg: rgba(152,201,74,.26);
  --pill-green-border: rgba(115,170,36,.42);
  --pill-green-text: #245212;
  --local-soft-bg: #dce8d1;
  --local-soft-border: #b7cf97;
  --local-head-bg: #b6d568;
  --local-head-text: #234910;
  --dark-gray: #4e5968;
}
.hero{
  padding-top: 6px !important;
}
.hero .pill-row{
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
.hero .pill.pill-blue{
  background: var(--pill-blue-bg) !important;
  border-color: var(--pill-blue-border) !important;
  color: var(--pill-blue-text) !important;
}
.hero .pill.pill-green{
  background: var(--pill-green-bg) !important;
  border-color: var(--pill-green-border) !important;
  color: var(--pill-green-text) !important;
}
.hero .stats .stat.price-stat .small,
.hero .stats .stat.price-stat .stat-local-copy{
  max-width: none !important;
  width: 100% !important;
  font-size: .96rem !important;
  line-height: 1.42 !important;
}
.hero .stats .stat.price-stat .small-highlight,
.hero .stats .stat.price-stat .small-subnote{
  white-space: normal !important;
  display: inline !important;
}
.hero .stats .stat.price-stat .small-highlight{
  box-shadow: none !important;
  font-weight: 800 !important;
}
.hero .stats .stat.price-stat .small-subnote{
  color: var(--muted) !important;
}
.hero-solar-strip{
  background: linear-gradient(180deg, rgba(152,201,74,.24), rgba(152,201,74,.16)) !important;
  border-color: rgba(115,170,36,.35) !important;
}
#home .hero-card .dual-offer .offer-card{
  align-content: start !important;
}
#home .hero-card .dual-offer .offer-card.public h3,
#home .hero-card .dual-offer .offer-card.local h3{
  max-width: none !important;
  white-space: normal !important;
}
#home .hero-card .dual-offer .offer-card > div:first-of-type{
  min-height: 7.6em !important;
}
#home .hero-card .dual-offer .offer-card > div:first-of-type p{
  margin-bottom: 0 !important;
}
#laden .dual-offer{
  align-items: stretch !important;
}
#laden .dual-offer .offer-card{
  display: grid !important;
  grid-template-rows: auto auto minmax(6.4em, auto) auto !important;
  align-content: start !important;
  min-height: 100% !important;
}
#laden .dual-offer .offer-card .label{
  margin-bottom: 16px !important;
}
#laden .dual-offer .offer-card h3{
  margin-bottom: 8px !important;
  max-width: none !important;
  white-space: normal !important;
}
#laden .dual-offer .offer-card p{
  margin: 0 !important;
}
#laden .dual-offer .offer-card .btns{
  margin-top: 18px !important;
}
.btn-pill-green{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  background: var(--pill-green-bg) !important;
  border: 1px solid var(--pill-green-border) !important;
  color: var(--pill-green-text) !important;
  font-weight: 800 !important;
  font-size: .96rem !important;
  box-shadow: none !important;
}
.btn-pill-green:hover{
  background: rgba(152,201,74,.34) !important;
}
.vat-note{
  font-size: .94rem !important;
  line-height: 1.45 !important;
  font-weight: 800 !important;
  color: var(--dark-gray) !important;
  margin-top: 10px !important;
}
#preise .price-split{
  grid-template-columns: 1fr 1fr !important;
  align-items: start !important;
}
#preise .public-wrap,
#preise .local-wrap{
  overflow: visible !important;
}
#preise .public-wrap table,
#preise .local-wrap table{
  table-layout: auto !important;
  width: 100% !important;
}
#preise .public-wrap th,
#preise .public-wrap td,
#preise .local-wrap th,
#preise .local-wrap td{
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
#preise .local-wrap{
  border: 1px solid var(--local-soft-border) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: var(--local-soft-bg) !important;
  box-shadow: 0 0 0 1px rgba(115,170,36,.12), var(--shadow) !important;
}
#preise .local-tarif-table{
  background: transparent !important;
  box-shadow: none !important;
}
#preise .local-tarif-table thead th{
  background: var(--local-head-bg) !important;
  color: var(--local-head-text) !important;
  font-weight: 800 !important;
}
#preise .local-tarif-table tbody td{
  background: transparent !important;
}
#preise .local-tarif-table tbody tr:nth-child(even) td{
  background: rgba(255,255,255,.08) !important;
}
#preise .bonus-cards-restored{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
#preise .bonus-cards-restored .bonus-card{
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
}
#preise .bonus-cards-restored .bonus-card p.muted{
  min-height: 116px !important;
}
#preise .green-card{
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.12)) !important;
  border-color: rgba(152,201,74,.40) !important;
  box-shadow: 0 0 0 1px rgba(152,201,74,.10), var(--shadow) !important;
}
#vermietung .rent-top{
  grid-template-columns: 1.05fr .95fr !important;
  align-items: start !important;
}
#vermietung .rent-right-stack{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px !important;
}
#vermietung .rent-right-stack .card{
  height: 100% !important;
}
#vermietung .rent-wide-card{
  margin-top: 24px !important;
}
#vermietung .rent-grid-list{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: 10px 28px !important;
}
#vermietung .rent-grid-list ul{
  margin: 0 !important;
  padding-left: 22px !important;
}
#vermietung .rent-grid-list li{
  margin-bottom: 8px !important;
}
#faq .faq-nav-index{
  position: sticky !important;
  top: 84px !important;
  z-index: 25 !important;
  background: var(--bg) !important;
  padding: 12px 0 10px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  scrollbar-width: none;
}
#faq .faq-nav-index::-webkit-scrollbar{display:none;}
#faq .faq-nav-index a{
  flex: 0 0 auto !important;
}
#faq .faq-nav-index a.current{
  border-color: var(--green) !important;
  box-shadow: 0 0 0 2px rgba(152,201,74,.22), var(--shadow) !important;
}
header{ z-index: 80 !important; }
nav{ z-index: 90 !important; }
nav.open{ z-index: 95 !important; }
#faq .faq-group{
  scroll-margin-top: 150px !important;
}
#laden .local-only-block .label{
  color: #22272f !important;
}
#preise .price-split .table-wrap th,
#preise .price-split .table-wrap td{
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}
.footer-logo-box{
  max-width: 100% !important;
}
.footer-logo-box img{
  max-width: 100% !important;
  height: auto !important;
}
@media (max-width: 1060px){
  #preise .price-split{
    grid-template-columns: 1fr !important;
  }
  #preise .bonus-cards-restored{
    grid-template-columns: 1fr !important;
  }
  #vermietung .rent-top{
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 780px){
  body, p, h1, h2, h3, .lead, .muted, .footer-meta{
    text-align: left !important;
  }
  .hero{
    padding-top: 6px !important;
  }
  .hero .pill-row{
    margin-bottom: 10px !important;
  }
  #faq .faq-nav-index{
    top: 76px !important;
  }
  #vermietung .rent-right-stack{
    grid-template-columns: 1fr !important;
  }
  #vermietung .rent-grid-list{
    grid-template-columns: 1fr 1fr !important;
  }
}

/* --- SCROLL/NAV HOTFIX --- */
html, body { overflow-x: hidden !important; }
body { min-height: 100%; }
header { z-index: 200 !important; }
#siteNav { z-index: 210 !important; }
#siteNav.open { z-index: 220 !important; }
#faq .faq-nav-index, #faq .section-index.sticky-index { z-index: 20 !important; }
#faq .faq-nav-index { pointer-events: auto; }
@media (max-width: 780px) {
  #siteNav { max-height: calc(100vh - 90px); overflow-y: auto !important; }
}


/* === FINAL G CONSISTENCY FIXES === */
:root{
  --hero-blue-bg: rgba(28,47,93,.10);
  --hero-blue-border: rgba(28,47,93,.16);
  --hero-blue-text: #1c2f5d;
  --hero-green-bg: rgba(152,201,74,.22);
  --hero-green-border: rgba(115,170,36,.40);
  --hero-green-text: #245212;
  --dark-gray: #4b5563;
}
.hero{padding-top:28px!important;}
.hero .pill-row{margin:0 0 10px 0!important;}
.hero .pill-row .pill{font-weight:700!important;}
.hero .pill-row .pill.pill-blue{
  background:var(--hero-blue-bg)!important;
  border:1px solid var(--hero-blue-border)!important;
  color:var(--hero-blue-text)!important;
}
.hero .pill-row .pill.pill-green{
  background:var(--hero-green-bg)!important;
  border:1px solid var(--hero-green-border)!important;
  color:var(--hero-green-text)!important;
}
.hero .stats .stat.price-stat .small{
  max-width:none!important;
  width:auto!important;
}
.hero .stats .stat.price-stat .small br{display:none!important;}
.hero .stats .stat.price-stat .small-highlight,
.hero .stats .stat.price-stat .small-subnote{
  display:inline!important;
  white-space:normal!important;
}
.hero .stats .stat.price-stat .small-subnote::before{content:" ";}

.vat-note{
  font-size:.94rem!important;
  font-weight:800!important;
  color:var(--dark-gray)!important;
  line-height:1.45!important;
}

#laden .dual-offer{
  align-items:stretch!important;
}
#laden .offer-card{
  display:grid!important;
  grid-template-rows:auto auto 1fr auto!important;
}
#laden .offer-card.public h3.sync-title,
#laden .offer-card.local h3.local-title,
#laden .offer-card.local h3{
  max-width:none!important;
  white-space:normal!important;
}
#laden .offer-card .muted{
  min-height:0!important;
}
#laden .offer-actions{
  margin-top:16px!important;
  align-self:end!important;
}
.btn-pill-green,
#laden .offer-actions .btn-pill-green{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:52px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  background:var(--hero-green-bg)!important;
  color:var(--hero-green-text)!important;
  border:1px solid var(--hero-green-border)!important;
  font-size:.96rem!important;
  font-weight:700!important;
  box-shadow:none!important;
}
.btn-pill-green:hover{background:rgba(152,201,74,.30)!important;}

#preise .local-wrap{
  background:rgba(152,201,74,.12)!important;
  border:1px solid rgba(115,170,36,.32)!important;
  box-shadow:0 0 0 1px rgba(115,170,36,.12), var(--shadow)!important;
}
#preise .local-tarif-table thead th{
  background:#8fbe41!important;
  color:#10200a!important;
}
#preise .local-tarif-table tbody td{
  background:transparent!important;
}
#preise .public-wrap table,
#preise .local-wrap table{
  width:100%!important;
  table-layout:auto!important;
}
#preise .public-wrap th, #preise .public-wrap td,
#preise .local-wrap th, #preise .local-wrap td{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

@media (min-width: 781px){
  .hero .pill-row{justify-content:flex-start!important;}
  #preise .price-split{
    grid-template-columns:1fr 1fr!important;
  }
}
@media (max-width: 780px){
  .hero .pill-row{justify-content:flex-start!important;}
}



/* === FINAL I ALIGNMENT TWEAKS === */
#home .hero-card .dual-offer,
#laden .dual-offer{
  align-items:stretch !important;
}
#home .hero-card .offer-card.public,
#home .hero-card .offer-card.local{
  display:grid !important;
  grid-template-rows:auto minmax(5.8em, auto) auto auto 1fr !important;
}
#laden .offer-card.public,
#laden .offer-card.local{
  display:grid !important;
  grid-template-rows:auto auto minmax(6.2em, auto) auto !important;
  align-items:start !important;
}
#laden .offer-card.public .offer-text,
#laden .offer-card.local .offer-text{
  min-height:6.2em !important;
  margin-bottom:0 !important;
}
#laden .offer-card.public .btns,
#laden .offer-card.local .offer-actions{
  margin-top:18px !important;
  align-self:end !important;
}
#home .hero-card .offer-card.public .public-bottom{
  margin-top:auto !important;
  align-self:end !important;
}
#home .hero-card .offer-card.public .offer-price-group,
#home .hero-card .offer-card.public .offer-note-row{
  margin-top:10px !important;
}
#home .hero-card .offer-card.public .mini-note{
  margin-top:10px !important;
}


/* === FINAL J FAQ BUTTON FIX === */
.faq-end{
  width:min(var(--max), calc(100% - 32px));
  margin:32px auto 0 auto;
  text-align:left;
}
.faq-end .btn{
  display:inline-flex;
}


/* FORCE REMOVE stray decorative shapes */
.faq-section::before,
.faq-section::after,
.section::before,
.section::after,
.decor,
.decor-circle,
.bg-circle,
.shape,
.circle,
[class*="circle"],
[class*="decor"]{
  display:none !important;
  content:none !important;
}


/* FINAL FAQ BUTTON CLEAN */
.faq-end-final{
  width:min(var(--max), calc(100% - 32px));
  margin:32px auto 0 auto;
  display:flex;
  justify-content:flex-start;
  align-items:center;
}
.faq-end-final .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:256px;
}



/* === multipage additions === */
.page-shell { min-height: 100vh; display: flex; flex-direction: column; }
.page-main { flex: 1 0 auto; }
.quick-links { padding: 0 0 82px; }
.quick-links .links-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:18px; }
.quick-links .link-card {
  background: var(--white);
  border-radius: 20px;
  padding: 22px;
  box-shadow: var(--shadow);
  border: 1px solid rgba(28,47,93,.08);
  display:block;
}
.quick-links .link-card strong { color: var(--navy); display:block; margin-bottom:6px; }
.quick-links .link-card span { color: var(--muted); }
.current-page-link { pointer-events:none; opacity:.75; }
@media (max-width: 900px){
  .quick-links .links-grid { grid-template-columns: 1fr; }
}


/* === Multipage legal + sticky header update === */
header{
  position: sticky !important;
  top: 0 !important;
  z-index: 1400 !important;
}
.page-shell{overflow: visible !important;}
.page-main{overflow: visible !important;}
.legal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start;}
.legal-card{background:var(--white);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid rgba(28,47,93,.08);}
.legal-card h2{font-size:clamp(1.35rem,2.5vw,2rem);margin-bottom:14px;color:var(--navy);}
.legal-card h3{font-size:1.1rem;margin-top:22px;color:var(--navy);}
.legal-card p, .legal-card li{color:var(--ink);}
.legal-card ul{padding-left:22px;margin:10px 0 16px;}
.legal-note{background:rgba(28,47,93,.05);border:1px solid rgba(28,47,93,.08);border-radius:16px;padding:16px;}
.legal-meta{display:grid;gap:14px;}
.legal-meta strong{color:var(--navy);}
.legal-placeholder{background:rgba(244,180,0,.12);border:1px solid rgba(244,180,0,.35);border-radius:14px;padding:12px 14px;color:#6f4f00;font-weight:700;}
.legal-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
@media (max-width: 980px){.legal-layout{grid-template-columns:1fr;}}


/* === MULTIPAGE V3 FINAL UPDATES === */
header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:2000 !important;
}
.page-main{
  padding-top:84px !important;
}
.quick-links{
  padding:24px 0 82px !important;
  background:linear-gradient(180deg, rgba(28,47,93,.05), rgba(28,47,93,.08));
  border-top:1px solid rgba(28,47,93,.06);
}
.quick-links .container{
  background:transparent;
}
.quick-links h2{
  margin-bottom:18px;
}
@media (max-width: 780px){
  .page-main{padding-top:76px !important;}
  .quick-links{padding:20px 0 64px !important;}
}





/* === FAQ sticky shell final fix v5 === */
.page-main.page-faq{
  --faq-shell-height: 150px;
  --faq-anchor-offset: calc(var(--header-height, 84px) + var(--faq-shell-height) + 8px);
}
.page-faq #faq .container{
  position:relative;
  padding-top: calc(var(--faq-shell-height) + 8px);
}
.page-faq #faq .faq-sticky-shell{
  position:fixed;
  top: var(--header-height, 84px);
  left:50%;
  transform:translateX(-50%);
  width:min(var(--max), calc(100% - 32px));
  z-index:1200;
  background:var(--bg);
  padding-top:2px;
  padding-bottom:8px;
  margin:0;
  border-bottom:1px solid rgba(28,47,93,.06);
}
.page-faq #faq .faq-sticky-shell .eyebrow{
  margin-bottom:6px;
}
.page-faq #faq .faq-sticky-shell h2{
  margin:0 0 12px;
}
.page-faq #faq .faq-sticky-shell .section-index{
  margin:0;
}
.page-faq #faq .faq-nav-index{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  gap:10px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.page-faq #faq .faq-nav-index::-webkit-scrollbar{display:none;}
.page-faq #faq .faq-nav-index a{
  white-space:nowrap;
  flex:0 0 auto;
}
.page-faq #faq .faq-group{
  scroll-margin-top: var(--faq-anchor-offset);
}
.page-faq #faq .section-index.sticky-index,
.page-faq #faq .sticky-index{
  position:static !important;
  top:auto !important;
  z-index:auto !important;
  background:transparent !important;
  padding:0 !important;
}
.page-faq #faq .section-index a.current{
  border-color:var(--green) !important;
  box-shadow:0 0 0 2px rgba(152,201,74,.24), var(--shadow) !important;
}
@media (max-width: 780px){
  .page-faq{
    --header-height: 76px;
  }
  .page-faq #faq .faq-sticky-shell{
    top: var(--header-height, 76px);
    padding-bottom:6px;
  }
}


/* === V6 FAQ top alignment fix === */
.page-faq .faq-page-section{
  padding-top: 0 !important;
}
.page-faq #faq .container{
  position: relative;
  padding-top: calc(var(--faq-shell-height) + 2px) !important;
}
.page-faq #faq .faq-sticky-shell{
  top: var(--header-height, 84px);
  padding-top: 0 !important;
  padding-bottom: 6px !important;
  margin: 0 !important;
}
.page-faq #faq .faq-sticky-shell .eyebrow{
  margin: 0 0 4px !important;
}
.page-faq #faq .faq-sticky-shell h2{
  margin: 0 0 10px !important;
}
.page-faq #faq .faq-group:first-of-type{
  margin-top: 0 !important;
}
.page-faq #faq .faq-group{
  scroll-margin-top: calc(var(--faq-anchor-offset) - 8px) !important;
}




/* Standard pages remain as currently corrected */
.page-main:not(.page-faq) > .section:first-of-type{
  padding-top: 34px !important;
}

/* FAQ page: green "FAQ" directly below fixed header, with the sticky shell below it */
.page-main.page-faq > .section:first-of-type{
  padding-top: 20px !important;
}
.page-faq #faq .container{
  padding-top: calc(var(--faq-shell-height) + 38px) !important;
}
.page-faq #faq .faq-sticky-shell{
  top: var(--header-height, 84px) !important;
}
.page-faq #faq .faq-sticky-shell .eyebrow{
  margin-top: 0 !important;
}


/* === V9 first-section spacing and FAQ exact header offset === */
.page-main:not(.page-faq) > .section:first-of-type{
  padding-top: 34px !important;
}
.page-main.page-faq{
  --header-height: 84px;
  --faq-shell-height: 150px;
}
.page-main.page-faq > .section:first-of-type{
  padding-top: 0 !important;
}
.page-faq #faq{
  padding-top: 0 !important;
}
.page-faq #faq .container{
  position: relative;
  padding-top: calc(var(--faq-shell-height) + 4px) !important;
}
.page-faq #faq .faq-sticky-shell{
  position: fixed;
  top: var(--header-height) !important;
  left: 50%;
  transform: translateX(-50%);
  width: min(var(--max), calc(100% - 32px));
  z-index: 1200;
  background: var(--bg);
  padding-top: 0 !important;
  padding-bottom: 6px !important;
  margin: 0 !important;
  border-bottom: 1px solid rgba(28,47,93,.06);
}
.page-faq #faq .faq-sticky-shell .eyebrow{
  margin: 0 0 4px !important;
}
.page-faq #faq .faq-sticky-shell h2{
  margin: 0 0 10px !important;
}
.page-faq #faq .faq-group{
  scroll-margin-top: calc(var(--header-height) + var(--faq-shell-height) + 8px) !important;
}
@media (max-width:780px){
  .page-faq{
    --header-height: 76px;
  }
}






/* === Schritt 3.2c fixes === */
.hero-cta-row {
  align-items: center;
}
.hero-route-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.page-faq #faq .faq-group[id]{
  scroll-margin-top: calc(var(--header-height, 84px) + var(--faq-shell-height, 120px) + 10px);
}
.page-registrieren .register-box{
  display:grid;
  grid-template-columns: minmax(320px,.92fr) minmax(420px,1.08fr);
  gap:26px;
  align-items:start;
}
.page-registrieren .register-intro{
  display:block;
}
.page-registrieren .register-downloads-block{
  margin-top:20px;
}
.page-registrieren .register-downloads-block .card{
  margin-top:0;
}
.page-registrieren .register-downloads-block .downloads-grid{
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width:1060px){
  .page-registrieren .register-box{
    grid-template-columns:1fr;
  }
  .page-registrieren .register-intro{
    display:flex;
    flex-direction:column;
  }
  .page-registrieren form#registerForm{
    order:2;
  }
  .page-registrieren .register-downloads-block{
    order:3;
  }
}


/* === Schritt 3.2d fixes === */
@media (max-width:1060px){
  .page-registrieren .register-box{
    display:grid;
    grid-template-columns:1fr;
  }
  .page-registrieren .register-intro{
    order:1;
  }
  .page-registrieren form#registerForm{
    order:2 !important;
  }
  .page-registrieren .register-downloads-block{
    order:3 !important;
  }
  .page-registrieren .quick-links{
    order:4;
  }
}


/* === Schritt 3.2e registrieren rebuild === */
.page-registrieren .register-layout{
  display:grid;
  grid-template-columns: minmax(320px,.92fr) minmax(420px,1.08fr);
  grid-template-areas:
    "intro form"
    "downloads form";
  gap:26px;
  align-items:start;
}
.page-registrieren .register-intro-block{
  grid-area:intro;
  min-width:0;
}
.page-registrieren form#registerForm{
  grid-area:form;
}
.page-registrieren .register-downloads-block{
  grid-area:downloads;
  min-width:0;
}
.page-registrieren .register-downloads-block .card{
  margin-top:0;
}
.page-registrieren .register-downloads-block .downloads-grid{
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width:1060px){
  .page-registrieren .register-layout{
    grid-template-columns:1fr;
    grid-template-areas:
      "intro"
      "form"
      "downloads";
  }
}


/* === Schritt 3.2f quick-links positioning === */
.page-registrieren .register-layout{
  grid-template-areas:
    "intro form"
    "downloads form"
    "quick form";
}

.page-registrieren .quick-links{
  grid-area: quick;
}

@media (max-width:1060px){
  .page-registrieren .register-layout{
    grid-template-areas:
      "intro"
      "form"
      "downloads"
      "quick";
  }
}


/* === Schritt 4: laden.html neu aufgebaut === */
.page-laden .laden-visual-box{
  min-height: 100%;
}


/* === Schritt 4.2 laden Feinschliff === */
.page-laden .laden-bottom-grid{
  align-items: stretch;
}
.page-laden .laden-bottom-grid > .card{
  height: 100%;
}


/* === Schritt 4.4 laden Kartenhöhe final === */
.page-laden .laden-bottom-grid{
  align-items: stretch;
}
.page-laden .laden-bottom-grid > .card{
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}


/* === Schritt 4.4b laden innere Ausrichtung === */
.page-laden .laden-align-card.right-align .check-list{
  display:grid;
  grid-template-rows: repeat(3, minmax(72px, auto));
  align-content:start;
}
.page-laden .laden-align-card .check-list > li{
  margin:0;
}


/* === Schritt 6: lounge.html Feinschliff === */
.page-lounge .visual-box .btn-on-dark{
  background: rgba(255,255,255,.10);
  color: var(--white);
  border: 1px solid rgba(255,255,255,.18);
}
.page-lounge .visual-box .btn-on-dark:hover{
  background: rgba(255,255,255,.18);
}


/* Updated style for subtle bottom text (larger size) */
.subtle-note {
  color: #7a8696;
  font-size: 1.05rem;
  line-height: 1.5;
  display: block;
}


.footer-route-btn{
  min-height: 44px;
  padding: 0 18px;
  margin-top: 4px;
}
footer .footer-route-btn{
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.10);
}
footer .footer-route-btn:hover{
  background: rgba(255,255,255,.18);
}


/* Footer compact refinement */
.footer-grid{
  grid-template-columns: 1.1fr 1fr;
  gap: 16px;
}
footer{
  padding: 24px 0;
}
.footer-meta{
  line-height: 1.45;
}
.footer-route-inline{
  display: inline-flex;
  align-items: center;
  margin-left: 10px;
  min-height: 38px;
  padding: 0 14px;
  vertical-align: middle;
}
footer .footer-route-inline{
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.10);
}
footer .footer-route-inline:hover{
  background: rgba(255,255,255,.18);
}
@media (max-width: 900px){
  footer{
    padding: 22px 0;
  }
  .footer-grid{
    gap: 14px;
  }
  .footer-route-inline{
    margin-left: 0;
    margin-top: 10px;
  }
}


/* Laden-Seite Button-Feinschliff */
.page-laden .laden-price-btn{
  color: #245212;
}
.page-laden .laden-price-btn:hover{
  background: rgba(28, 47, 93, 0.10);
}
.page-laden .laden-visual-actions{
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  align-items:center;
}
.page-laden .laden-visual-actions .btn{
  flex:0 0 auto;
}
@media (max-width: 900px){
  .page-laden .laden-visual-actions{
    flex-wrap:wrap;
  }
}

.page-laden .laden-info-btn{
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#preisstufen{
  scroll-margin-top: 132px;
}





/* Laden: Vergleichskarten sauberer Reset */
.page-laden .dual-offer{
  align-items: stretch;
}

.page-laden .laden-offer-card{
  display: flex;
  flex-direction: column;
  height: 100%;
}

.page-laden .laden-offer-card > .muted{
  margin-bottom: 8px;
  min-height: 0 !important;
}

.page-laden .laden-offer-card > .check-list.compact-checks{
  margin-top: 6px;
}

.page-laden .laden-offer-card > .check-list.compact-checks li .icon{
  margin-top: 0;
}

.page-laden .laden-offer-card > .laden-offer-cta{
  margin-top: auto;
  padding-top: 10px;
}

.page-laden .laden-info-btn{
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-laden .laden-price-btn{
  color: #245212;
}

.page-laden .laden-visual-actions{
  display: flex;
  flex-wrap: nowrap;
  gap: 14px;
  align-items: center;
}

.page-laden .laden-visual-actions .btn{
  flex: 0 0 auto;
}

#preisstufen{
  scroll-margin-top: 132px;
}

@media (max-width: 900px){
  .page-laden .laden-visual-actions{
    flex-wrap: wrap;
  }
}


/* FINAL Abschlussfix: Laden-Vergleichskarten */
.page-laden .dual-offer > .laden-offer-card{
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.page-laden .dual-offer > .laden-offer-card > h3{
  margin-bottom: 8px !important;
}

.page-laden .dual-offer > .laden-offer-card > p.muted{
  min-height: 0 !important;
  margin: 0 0 6px !important;
}

.page-laden .dual-offer > .laden-offer-card > ul.check-list.compact-checks{
  margin: 0 !important;
}

.page-laden .dual-offer > .laden-offer-card > .btns,
.page-laden .dual-offer > .laden-offer-card > .laden-offer-cta{
  margin-top: auto !important;
  padding-top: 12px !important;
}

.page-laden .dual-offer > .laden-offer-card .laden-info-btn{
  min-height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}


/* === Bereinigte Anpassungen: Footer + Farben/Textstruktur (ohne Layoutänderung) === */
.lead{
  color:#5b6c82;
}
.muted,
.subtle-note,
.table-note,
.quick-links .link-card span,
.faq-content{
  color:#5f7188;
}
.page-registrieren .register-intro-block > p.lead:first-of-type{
  color:var(--navy);
  font-weight:700;
}
.page-registrieren .register-intro-block > p.lead:first-of-type strong{
  color:inherit;
}
.page-registrieren .register-intro-block > p.lead:nth-of-type(2){
  color:#4f6178;
  font-weight:500;
}
.page-registrieren .register-intro-block > p:nth-of-type(3){
  color:var(--ink);
}
.page-registrieren .register-intro-block > p:nth-of-type(4){
  color:#667a92;
}
.page-registrieren .toggle-option .muted,
.page-registrieren .check-list .muted,
.page-registrieren .wc-proof .muted{
  color:#5f7188;
}

footer{
  padding:14px 0;
}
footer .container.footer-compact{
  max-width:860px;
  display:grid;
  justify-items:center;
  gap:10px;
  text-align:center;
}
footer .footer-address{
  max-width:720px;
  line-height:1.4;
  margin:0;
}
footer .footer-contact{
  margin:0;
}
footer .footer-links{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}
footer .footer-link-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 16px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}
footer .footer-link-pill:hover{
  background:rgba(255,255,255,.18);
}
@media (max-width:900px){
  footer{
    padding:16px 0;
  }
  footer .container.footer-compact{
    gap:12px;
  }
  footer .footer-links{
    gap:8px;
  }
}


/* Pizza status notice – isolated to lounge pizza card */
.pizza-status-card .pizza-muted{
  color: rgba(34,39,47,.48);
  margin-bottom: 14px;
}

.pizza-status-card .pizza-status-bar{
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  margin: 0 0 14px;
  border-radius: 12px;
  background: var(--navy);
  color: #fff;
  font-weight: 800;
  line-height: 1.15;
}

.pizza-status-card .pizza-more{
  margin-top: 4px;
}

.pizza-status-card .pizza-more summary{
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  position: relative;
  min-height: 44px;
  padding: 0 50px 0 18px;
  border-radius: 999px;
  background: rgba(28, 47, 93, 0.06);
  color: var(--navy);
  border: 1px solid rgba(28, 47, 93, 0.08);
  font-weight: 800;
}

.pizza-status-card .pizza-more summary::-webkit-details-marker{
  display: none;
}

.pizza-status-card .pizza-more summary::after{
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--green-dark);
  font-size: 1.15rem;
  font-weight: 900;
  line-height: 1;
}

.pizza-status-card .pizza-more[open] summary::after{
  content: "–";
}

.pizza-status-card .pizza-more-content{
  margin-top: 14px;
  padding: 18px 18px 2px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(28,47,93,.08);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}

.pizza-status-card .pizza-more-content p{
  margin: 0 0 14px;
  color: var(--ink);
  overflow-wrap: break-word;
}

.pizza-status-card .pizza-more-content p:last-child{
  margin-bottom: 0;
}

@media (max-width: 780px){
  .pizza-status-card .pizza-status-bar{
    max-width: 100%;
  }

  .pizza-status-card .pizza-more summary{
    max-width: 100%;
  }

  .pizza-status-card .pizza-more-content{
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* === Final mobile symmetry + SPA page-class fixes === */
.page-shell,
.page-main,
.page-main > section,
.page-main .container,
.hero-grid,
.stats,
.dual-offer,
.register-layout,
.toggle-row,
.form-grid,
.downloads-grid,
.links-grid,
.grid-2,
.grid-3,
.grid-4,
.split-card,
.contact-grid,
.footer-grid {
  min-width: 0;
}

.hero-grid > *,
.stats > *,
.dual-offer > *,
.register-layout > *,
.toggle-row > *,
.form-grid > *,
.downloads-grid > *,
.links-grid > *,
.grid-2 > *,
.grid-3 > *,
.grid-4 > *,
.split-card > *,
.contact-grid > *,
.footer-grid > * {
  min-width: 0;
}

.page-registrieren .register-intro-block,
.page-registrieren form#registerForm,
.page-registrieren .register-downloads-block,
.page-registrieren .toggle-option,
.page-registrieren .download-card,
.page-registrieren .checkbox span,
.page-registrieren .register-intro-block p,
.page-registrieren .register-intro-block h2 {
  min-width: 0;
}

.page-registrieren .toggle-option strong,
.page-registrieren .toggle-option .muted {
  display: block;
}


@media (max-width: 780px) {
  .hero-grid,
  .stats,
  .dual-offer,
  .register-layout,
  .toggle-row,
  .form-grid,
  .downloads-grid,
  .links-grid,
  .grid-2,
  .grid-3,
  .grid-4,
  .split-card,
  .contact-grid,
  .footer-grid,
  .quantity-row {
    grid-template-columns: 1fr !important;
  }

  .hero-card,
  .stat,
  .card,
  form,
  .toggle-option,
  .download-card,
  .quick-links .link-card {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .page-registrieren .register-downloads-block .downloads-grid {
    grid-template-columns: 1fr !important;
  }

  .page-registrieren .quick-links {
    padding-top: 20px !important;
  }
}


/* === Registrieren mobile edge-spacing fix === */
@media (max-width: 780px) {
  .page-registrieren #registrieren > .container.register-layout {
    width: min(var(--max), calc(100% - 32px));
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    gap: 20px;
  }

  .page-registrieren .register-intro-block,
  .page-registrieren form#registerForm,
  .page-registrieren .register-downloads-block {
    width: auto;
    max-width: 100%;
    min-width: 0;
  }

  .page-registrieren .register-intro-block h2,
  .page-registrieren .register-intro-block p,
  .page-registrieren .register-intro-block .subtle-note,
  .page-registrieren .toggle-option,
  .page-registrieren .toggle-option strong,
  .page-registrieren .toggle-option .muted,
  .page-registrieren .check-list li > div,
  .page-registrieren .checkbox span,
  .page-registrieren .download-card {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
  }

  .page-registrieren .register-intro-block > .card,
  .page-registrieren .register-downloads-block > .card,
  .page-registrieren .toggle-option {
    width: auto;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

/* === Inline styles migrated from preise.html === */
    h1, h2, h3 { line-height: 1.1; margin: 0 0 16px; }
    h2 { font-size: clamp(1.8rem, 3.3vw, 3rem); color: var(--ink); }
    h3 { font-size: clamp(1.15rem, 2.1vw, 1.45rem); color: var(--ink); }
    p { margin: 0 0 16px; color: var(--ink); }
    .lead { font-size: 1.15rem; color: var(--muted); }

    .btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 52px;
      padding: 0 22px;
      border-radius: 999px;
      border: 0;
      cursor: pointer;
      font-weight: 800;
      transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
      box-shadow: var(--shadow);
      text-decoration: none;
    }
    .btn:hover { transform: translateY(-1px); }
    .btn-primary { background: var(--green); color: #10200a; }
    .btn-primary:hover { background: #a7d55d; }
    .btn-ghost {
      background: rgba(28, 47, 93, 0.06);
      color: var(--ink);
      box-shadow: none;
      border: 1px solid rgba(28, 47, 93, 0.08);
    }
    .btn-on-dark {
      background: rgba(255,255,255,.14);
      color: #fff;
      border-color: rgba(255,255,255,.22);
    }
    .btn-on-dark:hover { background: rgba(255,255,255,.22); }

    .grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 22px;
      align-items: start;
    }

    .price-compare-grid {
      align-items: start;
    }

    .card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 24px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
      height: 100%;
    }

    .check-list {
      display: grid;
      gap: 12px;
      padding: 0;
      margin: 18px 0 0;
      list-style: none;
    }
    .check-list li {
      display: flex;
      gap: 12px;
      align-items: flex-start;
    }

    .icon {
      width: 34px;
      height: 34px;
      flex: 0 0 34px;
      border-radius: 12px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      font-weight: 900;
      background: rgba(152,201,74,.15);
      color: #245212;
      margin-top: 1px;
    }
    .icon.navy { background: rgba(28,47,93,.09); color: var(--ink); }
    .icon.solar { background: rgba(244,180,0,.15); color: #8f6100; }

    .table-wrap {
      overflow: hidden;
      border-radius: 22px;
      box-shadow: var(--shadow);
      border: 1px solid rgba(28,47,93,.08);
      background: var(--white);
    }

    table {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed;
    }

    th, td {
      padding: 16px 18px;
      text-align: left;
      border-bottom: 1px solid var(--line);
      vertical-align: middle;
    }

    #preise .table-wrap td:last-child {
      vertical-align: top;
    }

    #preise .table-wrap tbody td {
      white-space: normal;
      overflow-wrap: anywhere;
    }

    #preise .table-wrap tbody td:last-child {
      padding-top: 14px;
    }

    #preise .table-wrap tbody tr:last-child td {
      border-bottom: 0;
    }

    th {
      color: #fff;
      font-size: 1rem;
      font-weight: 800;
    }

    .public-table th { background: var(--navy); }
    .local-table th { background: #a9cf64; color: #243d10; }

    td:first-child { width: 42%; }
    td:last-child {
      color: var(--ink);
      font-weight: 900;
    }

    .public-table tr:nth-child(odd) td { background: #ffffff; }
    .public-table tr:nth-child(even) td { background: #f8faff; }
    .local-table tr:nth-child(odd) td { background: rgba(152,201,74,.15); }
    .local-table tr:nth-child(even) td { background: rgba(152,201,74,.10); }

    .sub-value {
      display: block;
      color: var(--ink);
      font-weight: 400;
      margin-top: 4px;
      line-height: 1.3;
    }

    .price-stack {
      display: grid;
      gap: 10px;
    }

    .price-entry {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 2px;
      max-width: 100%;
    }

    .price-main {
      display: block;
      font-weight: 900;
      line-height: 1.2;
      white-space: normal;
      overflow-wrap: anywhere;
    }

    .price-sub {
      display: block;
      font-weight: 400;
      line-height: 1.3;
      white-space: normal;
      overflow-wrap: anywhere;
    }

    .info-strip {
      padding: 18px 20px;
      border-radius: 18px;
      background: rgba(28,47,93,.05);
      border: 1px solid rgba(28,47,93,.08);
      box-shadow: var(--shadow);
    }

    .info-strip.local-only {
      background: rgba(152,201,74,.12);
      border-color: rgba(152,201,74,.30);
    }

    .info-strip strong {
      display: block;
      color: var(--ink);
      margin-bottom: 6px;
    }

    .info-strip ul {
      margin: 10px 0 0;
      padding-left: 20px;
    }
    .info-strip li + li { margin-top: 8px; }

    .best-price-note {
      margin-top: 18px;
      padding: 18px 20px;
      border-radius: 18px;
      background: rgba(152,201,74,.12);
      border: 1px solid rgba(152,201,74,.30);
      box-shadow: var(--shadow);
    }

    .best-price-note strong {
      display: block;
      color: var(--ink);
      margin-bottom: 10px;
    }

    .best-price-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    .best-price-col {
      display: grid;
      gap: 8px;
    }

    .best-price-item {
      display: grid;
      grid-template-columns: 64px max-content;
      column-gap: 12px;
      align-items: baseline;
      color: var(--ink);
      line-height: 1.35;
    }

    .best-price-label {
      font-weight: 400;
      color: var(--ink);
      white-space: nowrap;
    }

    .best-price-value {
      font-weight: 700;
      color: var(--ink);
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
      justify-self: start;
    }

    .no-wrap { white-space: nowrap; }

    .stages-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
      margin-top: 4px;
    }

    .stage-card {
      position: relative;
      background: var(--white);
      border-radius: 20px;
      padding: 22px;
      border: 1px solid rgba(28,47,93,.09);
      box-shadow: var(--shadow);
      display: grid;
      grid-template-rows: auto auto auto 1fr;
      min-height: 100%;
    }

    .stage-card.highlight {
      outline: 2px solid rgba(152,201,74,.45);
      background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.06));
    }

    .badge {
      display: inline-flex;
      background: rgba(152,201,74,.14);
      color: #244b10;
      border-radius: 999px;
      padding: 6px 12px;
      font-size: .84rem;
      font-weight: 800;
      margin-bottom: 12px;
      line-height: 1.15;
      width: max-content;
      max-width: 100%;
    }

    .stage-card .muted {
      min-height: 118px;
      margin-bottom: 18px;
      color: var(--muted);
    }

    .stage-prices {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      margin-top: auto;
    }

    .price-col {
      display: grid;
      gap: 0;
    }

    .price-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 14px;
      padding: 10px 0;
      border-top: 1px solid var(--line);
      flex-wrap: wrap;
    }

    .price-label {
      color: var(--muted);
      font-weight: 700;
      white-space: nowrap;
    }

    .price-value {
      font-weight: 900;
      color: var(--ink);
      white-space: nowrap;
    }

    .info-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-top: 22px;
    }

    .visual-box {
      min-height: 100%;
      border-radius: 22px;
      padding: 24px;
      background:
        linear-gradient(135deg, rgba(28,47,93,.95), rgba(28,47,93,.78)),
        linear-gradient(135deg, rgba(152,201,74,.20), rgba(244,180,0,.16));
      color: var(--white);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      overflow: hidden;
      position: relative;
      box-shadow: var(--shadow);
    }

    .visual-box::after {
      content: "";
      position: absolute;
      inset: auto -30px -30px auto;
      width: 180px;
      height: 180px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(152,201,74,.28), transparent 68%);
    }

    .visual-kicker {
      color: rgba(255,255,255,.78);
      font-weight: 700;
      position: relative;
      z-index: 1;
    }

    .visual-big {
      font-size: clamp(2rem, 5vw, 3.4rem);
      font-weight: 900;
      line-height: 1;
      position: relative;
      z-index: 1;
    }

    .visual-box p, .visual-box .btns {
      position: relative;
      z-index: 1;
    }

    .vat-note {
      font-size: 0.85rem;
      font-weight: 600;
      margin-top: 26px;
      color: #2c3e50;
    }

    @media (max-width: 1120px) {
      .stages-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 1040px) {
      .price-compare-grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 860px) {
      .section { padding: 64px 0; }
      .grid-2,
      .info-grid,
      .stages-grid,
      .stage-prices,
      .best-price-grid {
        grid-template-columns: 1fr;
      }
      .stage-card .muted { min-height: 0; }
      td:last-child { white-space: normal; }
      .best-price-item { grid-template-columns: 70px max-content; }
      .no-wrap { white-space: normal; }
      .vat-note {
        font-size: 0.8rem;
        margin-top: 20px;
      }
    }

/* === FINAL PREISE TABLE OVERRIDES === */
#preise .price-compare-grid{grid-template-columns:0.88fr 1.12fr;align-items:stretch;}
#preise .compare-col{display:flex;flex-direction:column;}
#preise .compare-col>.table-wrap{height:100%;}
#preise .table-wrap{overflow:hidden;}
#preise .public-table table,#preise .local-table table{width:100%;height:100%;table-layout:fixed;}
#preise .public-table col.c1{width:44%} #preise .public-table col.c2{width:56%}
#preise .public-table thead .head-top th{background:var(--navy);color:#fff;}
#preise .public-table thead .subhead th{background:#eef4fb;color:var(--muted);font-weight:500;height:62px;padding:10px 12px;}
#preise .public-table tbody td{height:72px;white-space:normal;overflow-wrap:normal;}
#preise .public-table tbody td:first-child{font-weight:400;}
#preise .public-table tbody td:last-child{padding-left:10px;padding-right:14px;font-weight:400;}
#preise .public-table .price-main{font-weight:800;white-space:nowrap;overflow-wrap:normal;}
#preise .public-table .price-sub{white-space:normal;overflow-wrap:normal;}

#preise .local-table{background:transparent;border-color:rgba(115,170,36,.24);box-shadow:0 0 0 1px rgba(115,170,36,.10), var(--shadow);}
#preise .local-table table{background:transparent;}
#preise .local-table thead .head-top th{background:#b6d568!important;color:#234910!important;}
#preise .local-table thead .matrix-head th{background:#b6d568!important;color:var(--muted)!important;font-weight:500;height:62px;padding:8px 10px;vertical-align:middle;border-bottom:1px solid rgba(28,47,93,.10);}
#preise .local-table thead .matrix-head th:first-child{width:29%;}
#preise .local-table thead .matrix-head th.unit-head{width:7%;text-align:center;padding-left:4px;padding-right:4px;}
#preise .local-table thead .matrix-head th.stage-head{width:16%;text-align:center;}
#preise .local-table thead .matrix-head th.split-col{border-left:2px solid #9dbd57;}
#preise .local-table .stage-title{display:block;font-weight:800;color:var(--ink);line-height:1.02;}
#preise .local-table .stage-meta{display:block;color:var(--ink);font-size:.79rem;line-height:1.02;}
#preise .local-table tbody tr:nth-child(odd) td{background:#dce8d1!important;}
#preise .local-table tbody tr:nth-child(even) td{background:#e8f1df!important;}
#preise .local-table tbody td{height:72px;padding:12px 10px;line-height:1.3;white-space:nowrap;overflow-wrap:normal;border-bottom:1px solid rgba(28,47,93,.08);}
#preise .local-table tbody td.label{width:29%;font-weight:400;padding-right:8px;}
#preise .local-table tbody td.unit{width:7%;color:var(--muted);text-align:center;font-weight:400;padding-left:3px;padding-right:3px;}
#preise .local-table tbody td.price{width:16%;text-align:center;font-weight:800;padding-left:6px;padding-right:6px;}
#preise .local-table tbody td.price.split-col{border-left:2px solid #9dbd57;}
#preise .local-table tbody td.merge-label{font-weight:400;white-space:nowrap;}
#preise .local-table tbody td.merge-price{text-align:center;font-weight:800;white-space:normal;}
#preise .local-table tbody td.merge-price .sub{display:block;margin-top:2px;font-weight:400;}
#preise .best-price-note{min-height:196px;}
#preise .best-price-note ul{margin:10px 0 0;padding-left:20px;}
#preise .best-price-note li+li{margin-top:8px;}
#preise .stage-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px;}
#preise .stage-info-card{position:relative;background:var(--white);border-radius:20px;padding:22px;border:1px solid rgba(28,47,93,.09);box-shadow:var(--shadow);min-height:100%;}
#preise .stage-info-card.highlight{outline:2px solid rgba(152,201,74,.45);background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(152,201,74,.06));}
#preise .stage-info-card p{color:var(--muted);margin:0;}
#preise .bottom-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:stretch;margin-top:28px;}
#preise .bottom-grid .btns{justify-content:flex-start;}
@media (max-width:1100px){#preise .price-compare-grid,#preise .stage-info-grid,#preise .bottom-grid{grid-template-columns:1fr;}}

/* === FINAL TABLE V2 TWEAKS === */
#preise .local-table thead .matrix-head th{
  background:#dce8d1 !important;
}
#preise .local-table thead .matrix-head th:nth-child(odd){
  background:#dce8d1 !important;
}
#preise .local-table thead .matrix-head th:nth-child(even){
  background:#e8f1df !important;
}
#preise .local-table thead .matrix-head th:first-child{
  background:#b6d568 !important;
}
#preise .local-table tbody tr:nth-child(odd) td{
  background:#e8f1df !important;
}
#preise .local-table tbody tr:nth-child(even) td{
  background:#dce8d1 !important;
}
#preise .local-table tbody td,
#preise .public-table tbody td{
  padding-top:9px !important;
  padding-bottom:9px !important;
}
#preise .local-table tbody td{
  height:58px !important;
}
#preise .public-table tbody td{
  height:58px !important;
}
#preise .local-table tbody td.merge-price{
  text-align:center !important;
}
#preise .local-table tbody td.merge-price .main{
  display:block;
  text-align:center;
  font-weight:400;
}
#preise .local-table tbody td.merge-price .sub{
  display:block;
  margin-top:2px;
  font-weight:800 !important;
  text-align:center;
}
#preise .public-table .price-sub strong,
#preise .public-table td strong{
  font-weight:800 !important;
}
#preise .bottom-grid{
  grid-template-columns:1.12fr .88fr !important;
}
#preise .visual-box .btns{
  flex-wrap:nowrap !important;
}
@media (max-width:1200px){
  #preise .visual-box .btns{flex-wrap:wrap !important;}
}

/* === FINAL VISUAL FIXES V3 === */

/* outer border green */
#preise .local-table{
  border: 2px solid #9dbd57 !important;
  border-radius: 18px;
  overflow: hidden;
}
#preise .public-table{
  border-radius: 18px;
  overflow: hidden;
}

/* fix bottom radius bug */
#preise .table-wrap{
  overflow: hidden;
  border-radius: 18px;
}

/* header row color */
#preise .local-table thead .matrix-head th{
  background:#dce8d1 !important;
}

/* align "keine" center vertically */
#preise td{
  vertical-align: middle !important;
}

/* remove bold in blockiergebühr rows */
#preise .merge-price,
#preise .merge-price .sub,
#preise .price-sub strong{
  font-weight:400 !important;
}

/* === USER FIXES FINAL === */
#preise .local-table{
  border:0 !important;
  box-shadow:var(--shadow) !important;
  border-radius:18px;
  overflow:hidden;
}
#preise .local-table .local-table-title{
  color:#000 !important;
}
#preise .public-table .block-fee-public .price-main,
#preise .public-table .block-fee-public .price-sub,
#preise .public-table .block-fee-public-single{
  font-weight:400 !important;
}
#preise .local-table thead .matrix-head th,
#preise .local-table thead .matrix-head th:first-child,
#preise .local-table thead .matrix-head th:nth-child(odd),
#preise .local-table thead .matrix-head th:nth-child(even){
  background:#dce8d1 !important;
}
#preise .local-table tbody td.merge-price{
  position:relative;
  text-align:left !important;
  font-weight:400 !important;
}
#preise .local-table tbody td.merge-price .merge-center-axis{
  position:absolute;
  left:25%;
  top:50%;
  transform:translate(-50%,-50%);
  width:max-content;
  text-align:center;
  line-height:1.25;
  font-weight:400 !important;
}
#preise .local-table tbody td.merge-price .main,
#preise .local-table tbody td.merge-price .sub,
#preise .local-table tbody td.merge-price .merge-center-axis{
  font-weight:400 !important;
}
#preise .local-table tbody td.merge-price .sub{
  margin-top:2px;
}

/* === v7.1 minimal only === */
#preise .local-table{
  position:relative;
  box-shadow: inset -1px 0 0 #dce8d1, var(--shadow) !important;
}
#preise .local-table tbody tr:last-child td.merge-price{
  border-top:1px solid rgba(28,47,93,.08) !important;
}
#preise .public-table tbody tr:last-child td:first-child{
  border-bottom-left-radius:18px;
}

/* === MOBILE / HALF-DESKTOP ONLY: gezielte Korrekturen Preise === */
@media (max-width: 1100px){
  #preise .bottom-grid{
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px){
  #preise .local-table thead .matrix-head th,
  #preise .local-table tbody td{
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto;
  }

  #preise .local-table thead .matrix-head th{
    height: auto !important;
    padding: 10px 6px !important;
    font-size: .8rem !important;
    line-height: 1.15 !important;
    vertical-align: top !important;
  }

  #preise .local-table thead .matrix-head th:first-child,
  #preise .local-table tbody td.label,
  #preise .local-table tbody td.merge-label{
    width: 34% !important;
  }

  #preise .local-table thead .matrix-head th.unit-head,
  #preise .local-table tbody td.unit{
    width: 10% !important;
    font-size: .76rem !important;
    line-height: 1.1 !important;
  }

  #preise .local-table thead .matrix-head th.stage-head,
  #preise .local-table tbody td.price{
    width: 14% !important;
  }

  #preise .local-table .stage-title{
    font-size: .72rem !important;
    line-height: 1.05 !important;
  }

  #preise .local-table .stage-meta{
    font-size: .68rem !important;
    line-height: 1.05 !important;
  }

  #preise .local-table tbody td{
    height: auto !important;
    min-height: 58px;
    padding: 10px 6px !important;
    font-size: .8rem !important;
    line-height: 1.18 !important;
    vertical-align: middle !important;
  }

  #preise .local-table tbody td.price,
  #preise .local-table tbody td.merge-price{
    text-align: center !important;
    font-size: .78rem !important;
  }

  #preise .local-table tbody td.merge-price .merge-center-axis{
    position: static !important;
    transform: none !important;
    width: auto !important;
    text-align: center !important;
  }
}



/* === CTA width fix for all viewports === */
#preise .bottom-grid{
  grid-template-columns: .98fr 1.02fr !important;
}
#preise .visual-box{
  min-width: 0;
}
#preise .visual-box .btns{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:14px;
}
#preise .visual-box .btn{
  white-space: nowrap;
  flex: 0 0 auto;
}
@media (max-width: 1320px){
  #preise .visual-box .btns{
    gap:12px;
  }
  #preise .visual-box .btn{
    padding-left:18px;
    padding-right:18px;
    font-size:.96rem;
  }
}
@media (max-width: 1180px){
  #preise .bottom-grid{
    grid-template-columns: 1fr !important;
  }
  #preise .visual-box .btns{
    flex-wrap:wrap !important;
  }
}
@media (max-width: 640px){
  #preise .visual-box .btns{
    gap:10px;
  }
  #preise .visual-box .btn{
    width:100%;
    justify-content:center;
    font-size:.92rem;
    padding-left:16px;
    padding-right:16px;
  }
}


/* Active navigation state */
nav a[aria-current="page"] {
  border-bottom-color: var(--green) !important;
}



/* === Final UX fixes: Registrieren + Hero-Preisbox === */
.page-registrieren .toggle-option{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:0;
}
.page-registrieren .toggle-option strong{
  display:block;
  margin:0;
  line-height:1.15;
}
.page-registrieren .toggle-option .muted{
  display:block;
  margin-top:6px;
  line-height:1.28;
}
.page-registrieren .register-quick-links{
  grid-area:quick;
  min-width:0;
}
.page-registrieren .register-quick-links h2{
  margin-bottom:14px;
}
.page-registrieren .register-quick-links .links-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
.page-registrieren .register-quick-links .link-card{
  background:#fff;
  border-radius:16px;
  padding:18px 18px;
  border:1px solid rgba(28,47,93,.08);
  box-shadow:var(--shadow);
  display:block;
}
.page-registrieren .register-quick-links .link-card strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
}
.page-registrieren .register-layout{
  grid-template-columns:minmax(320px,.95fr) minmax(470px,1.05fr) !important;
  grid-template-areas:
    "intro form"
    "downloads form"
    "quick form" !important;
  align-items:start;
}
@media (max-width:1060px){
  .page-registrieren .register-layout{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "intro"
      "form"
      "downloads"
      "quick" !important;
  }
}

#home .stats{
  grid-template-columns:repeat(3, minmax(0,1fr)) minmax(190px,1.32fr);
}
#home .stats .stat.price-stat{
  min-width:0;
  padding-right:26px;
}
#home .stats .stat.price-stat .num{
  font-size:clamp(1.7rem, 2.9vw, 2.35rem);
  line-height:1.02;
  white-space:nowrap;
}
#home .stats .stat.price-stat .small{
  max-width:none !important;
}
@media (max-width:980px){
  #home .stats{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width:780px){
  #home .stats{
    grid-template-columns:1fr !important;
  }
}



/* === Final Feinschliff Desktop-Preisbox + Dashboard Coming Soon === */
@media (min-width: 1101px){
  #home .stats .stat.price-stat .num{
    font-size: clamp(1.35rem, 2.15vw, 1.95rem) !important;
    letter-spacing: -0.015em !important;
  }
}

.coming-soon-pill{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 52px;
  margin-top: 18px;
  padding: 10px 22px;
  border-radius: 16px;
  background: var(--navy);
  color: var(--white);
  font-weight: 800;
  font-size: .98rem;
  line-height: 1.15;
  text-align: center;
  box-shadow: var(--shadow);
}


/* Fix: Aufzählungspunkte im Preise-Bereich brechen sauber um */
@media (max-width: 780px) {
  .page-preise .info-strip ul {
    padding-right: 8px;
  }
  .page-preise .info-strip li {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

/* === FINAL CLEAN PRICE TABLE RHYTHM 2026-05 ===
   Both public and local price tables use the same fixed horizontal rhythm.
   JS height syncing is disabled in script.js for this section. */
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table{
  height: 420px !important;
  min-height: 420px !important;
  max-height: 420px !important;
  overflow: hidden !important;
  border-radius: 18px !important;
}

#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height: 420px !important;
  min-height: 420px !important;
  max-height: 420px !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  box-shadow: var(--shadow) !important;
}

/* Header heights identical */
#preise .public-table thead .head-top,
#preise .local-table thead .head-top{
  height: 58px !important;
}
#preise .public-table thead .subhead,
#preise .local-table thead .matrix-head{
  height: 72px !important;
}

/* Body heights: 116 + 116 + 55 + 55 = 342; header 58 + 72 = 130; total 472? 
   Adjusted via explicit table row heights below and padding compression for visual compactness. */
#preise .public-table tbody tr.public-ac-row,
#preise .public-table tbody tr.public-dc-row{
  height: 102px !important;
}
#preise .local-table tbody tr.energy-row{
  height: 51px !important;
}
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-block-row{
  height: 50px !important;
}

/* Make cells obey row heights and remove excessive padding */
#preise .public-table th,
#preise .public-table td,
#preise .local-table th,
#preise .local-table td{
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  vertical-align: middle !important;
  line-height: 1.16 !important;
}

/* AC/DC grouping colors across full local table row groups */
#preise .local-table tbody tr.energy-row:nth-child(1) td,
#preise .local-table tbody tr.energy-row:nth-child(2) td{
  background:#edf5e6 !important;
}
#preise .local-table tbody tr.energy-row:nth-child(3) td,
#preise .local-table tbody tr.energy-row:nth-child(4) td{
  background:#dfead5 !important;
}

/* Local rowspanned labels vertically centered and same background through the group */
#preise .local-table tbody td.group-label{
  vertical-align: middle !important;
  font-weight:400 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  padding-left:10px !important;
  padding-right:8px !important;
}

/* PV-/Netzstrom closer to Basis column, as requested */
#preise .local-table tbody td.energy-type{
  text-align:right !important;
  padding-left:2px !important;
  padding-right:6px !important;
  white-space:nowrap !important;
}
#preise .local-table tbody td.unit{
  text-align:left !important;
  padding-left:6px !important;
  padding-right:2px !important;
  white-space:nowrap !important;
}

/* Compact price block in public table */
#preise .public-table .price-stack{
  gap:10px !important;
}
#preise .public-table .price-entry{
  line-height:1.15 !important;
}

/* Move right block-fee text block left, visually under/near the green split line */
#preise .local-table tbody td.merge-price{
  text-align:left !important;
  padding-left: 24px !important;
  padding-right: 0 !important;
}
#preise .local-table tbody td.merge-price .merge-center-axis{
  position: static !important;
  transform: none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:auto !important;
  height:100% !important;
  text-align:left !important;
  line-height:1.15 !important;
}

/* Keep vertical split line clean */
#preise .local-table .split-col{
  border-left:2px solid rgba(115,170,36,.72) !important;
}

/* Prevent block fee second line from being clipped */
#preise .local-table .merge-center-axis .sub{
  display:block !important;
  margin-top:2px !important;
}

/* If viewport is narrow, allow natural height instead of clipping */
@media (max-width: 1040px){
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
}


/* === FINAL FIX 2026-05: compact, no clipping, all rows visible === */
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table{
  height:397px !important;
  min-height:397px !important;
  max-height:397px !important;
  overflow:hidden !important;
}

#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height:397px !important;
  min-height:397px !important;
  max-height:397px !important;
  table-layout:fixed !important;
}

/* table header: title unchanged, Ladeart/Preis/Einheit row flatter */
#preise .public-table thead .head-top,
#preise .local-table thead .head-top{
  height:58px !important;
}
#preise .public-table thead .subhead,
#preise .local-table thead .matrix-head{
  height:55px !important;
}

/* body rhythm: AC/DC groups same height left and right */
#preise .public-table tbody tr.public-ac-row,
#preise .public-table tbody tr.public-dc-row{
  height:92px !important;
}
#preise .local-table tbody tr.energy-row{
  height:46px !important;
}
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-block-row{
  height:50px !important;
}

/* compress padding so text fits in compact height */
#preise .public-table th,
#preise .public-table td,
#preise .local-table th,
#preise .local-table td{
  padding-top:6px !important;
  padding-bottom:6px !important;
  vertical-align:middle !important;
  line-height:1.12 !important;
}

/* local PV/Netz labels slightly closer to Basis column */
#preise .local-table tbody td.energy-type{
  text-align:right !important;
  padding-left:2px !important;
  padding-right:5px !important;
  white-space:nowrap !important;
}
#preise .local-table tbody td.unit{
  padding-left:5px !important;
  padding-right:2px !important;
  white-space:nowrap !important;
}

/* group colors stay across complete double rows */
#preise .local-table tbody tr.energy-row:nth-child(1) td,
#preise .local-table tbody tr.energy-row:nth-child(2) td{
  background:#edf5e6 !important;
}
#preise .local-table tbody tr.energy-row:nth-child(3) td,
#preise .local-table tbody tr.energy-row:nth-child(4) td{
  background:#dfead5 !important;
}

/* DC blockiergebühr text block: a bit further left */
#preise .local-table tbody td.merge-price{
  text-align:left !important;
  padding-left:10px !important;
  padding-right:0 !important;
}
#preise .local-table tbody td.merge-price .merge-center-axis{
  position:static !important;
  transform:none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:auto !important;
  height:100% !important;
  text-align:left !important;
  line-height:1.1 !important;
}
#preise .local-table .merge-center-axis .sub{
  display:block !important;
  margin-top:1px !important;
}

/* avoid clipping of bottom row */
#preise .local-table tbody tr.local-block-row:last-child,
#preise .public-table tbody tr.public-ac-block-row{
  border-bottom:0 !important;
}

/* mobile: natural height */
@media (max-width:1040px){
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
}


/* === ABSOLUTE FINAL FIX: Preisvergleichstabellen nicht abschneiden === */

/* Keine feste Gesamthöhe mehr: Tabellen wachsen sauber bis zur AC-Blockiergebühr */
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table,
#preise .table-wrap.public-table,
#preise .table-wrap.local-table{
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Tabellen selbst ebenfalls nicht fest begrenzen */
#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table,
#preise .table-wrap.public-table table,
#preise .table-wrap.local-table table{
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  table-layout: fixed !important;
}

/* Kompakte, gleiche Zeilenlogik links/rechts */
#preise .public-table thead .head-top,
#preise .local-table thead .head-top{
  height: 54px !important;
}

#preise .public-table thead .subhead,
#preise .local-table thead .matrix-head{
  height: 52px !important;
}

/* Links: AC/DC jeweils so hoch wie zwei Einzelzeilen rechts */
#preise .public-table tbody tr.public-ac-row,
#preise .public-table tbody tr.public-dc-row{
  height: 92px !important;
}

/* Rechts: PV/Netz je halbe Höhe */
#preise .local-table tbody tr.energy-row{
  height: 46px !important;
}

/* Blockiergebühren auf beiden Seiten gleich hoch */
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-block-row{
  height: 50px !important;
}

/* Zellen kompakt halten */
#preise .public-table th,
#preise .public-table td,
#preise .local-table th,
#preise .local-table td{
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  vertical-align: middle !important;
  line-height: 1.12 !important;
}

/* AC-Gruppe hellgrün, DC-Gruppe dunkler grün */
#preise .local-table tbody tr.energy-row:nth-child(1) td,
#preise .local-table tbody tr.energy-row:nth-child(2) td{
  background: #edf5e6 !important;
}

#preise .local-table tbody tr.energy-row:nth-child(3) td,
#preise .local-table tbody tr.energy-row:nth-child(4) td{
  background: #dfead5 !important;
}

/* Zusammengefasste Ladeart-Zellen mittig */
#preise .local-table tbody td.group-label{
  vertical-align: middle !important;
  font-weight: 400 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
}

/* PV-Strom / Netzstrom näher an Basis-Spalte */
#preise .local-table tbody td.energy-type{
  text-align: right !important;
  padding-left: 2px !important;
  padding-right: 5px !important;
  white-space: nowrap !important;
}

/* Einheit kompakt daneben */
#preise .local-table tbody td.unit{
  padding-left: 5px !important;
  padding-right: 2px !important;
  white-space: nowrap !important;
}

/* DC-Blockiergebühr-Textblock rechts nach links unter die Preisachse schieben */
#preise .local-table tbody td.merge-price{
  text-align: left !important;
  padding-left: 4px !important;
  padding-right: 0 !important;
  vertical-align: middle !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis{
  position: static !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  width: auto !important;
  height: 100% !important;
  text-align: left !important;
  line-height: 1.1 !important;
}

#preise .local-table .merge-center-axis .sub{
  display: block !important;
  margin-top: 1px !important;
}

/* Preisspalten-Trennlinie beibehalten */
#preise .local-table .split-col{
  border-left: 2px solid rgba(115,170,36,.72) !important;
}

/* Öffentliche DC-Blockiergebühr sauber zweizeilig */
#preise .public-table .block-fee-public{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  line-height: 1.12 !important;
}


/* === FINAL AXIS FIX: Preis-Spalten + Blockiergebühren-Zentrierung === */

/* Obere Preis-Spalten minimal vom rechten Rand wegziehen */
#preise .local-table thead th.stage-head,
#preise .local-table tbody td.price{
  text-align: center !important;
  padding-left: 4px !important;
  padding-right: 14px !important;
}

/* "PS 3 ... Monat" etwas mehr Luft rechts geben */
#preise .local-table thead th.stage-head:last-child,
#preise .local-table tbody td.price:last-child{
  padding-right: 20px !important;
}

/* Blockiergebühren wieder mittig über der rechten Preisfläche zentrieren */
#preise .local-table tbody td.merge-price{
  text-align: center !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  vertical-align: middle !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis{
  position: static !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  text-align: center !important;
  line-height: 1.12 !important;
}

#preise .local-table .merge-center-axis .sub{
  display: block !important;
  margin-top: 1px !important;
}


/* === FINAL AXIS + SPACING FIX === */

/* 1) Price columns: give right breathing room (do NOT move the split line) */
#preise .local-table td.price{
  padding-left: 0 !important;
  padding-right: 10px !important;
}
#preise .local-table th.stage-head{
  padding-right: 12px !important;
}
#preise .local-table th.stage-head:last-child,
#preise .local-table td.price:last-child{
  padding-right: 18px !important;
}

/* Ensure split line stays as the visual axis */
#preise .local-table .split-col{
  border-left: 2px solid rgba(115,170,36,.72) !important;
}

/* 2) Block fee: center EXACTLY on the vertical split line (axis) */
#preise .local-table td.merge-price{
  position: relative !important;
  text-align: center !important;
  padding: 0 !important;
}
#preise .local-table td.merge-price .merge-center-axis{
  position: absolute !important;
  left: 50% !important;                /* center of right price area */
  transform: translateX(-50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: max-content !important;
  text-align: center !important;
  line-height: 1.12 !important;
}
#preise .local-table .merge-center-axis .sub{
  display:block !important;
  margin-top: 2px !important;
}


/* === USER-FINAL: Blockiergebühr / keine pauschal nach links setzen === */
/* Nur diese beiden Inhalte in der rechten PV-ÖkoPlus-Tabelle verschieben. */
#preise .local-table tbody td.merge-price{
  position: relative !important;
  text-align: left !important;
  padding: 0 !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left{
  position: relative !important;
  left: -110px !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: max-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  line-height: 1.12 !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .sub{
  display: block !important;
  margin-top: 2px !important;
}


/* === FINAL FIX: verschobener Blockiergebühr-Text ohne kaputten Umbruch === */
#preise .local-table tbody tr.local-block-row,
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row{
  height: 56px !important;
}

#preise .local-table tbody td.merge-price{
  position: relative !important;
  padding: 0 !important;
  overflow: visible !important;
  vertical-align: middle !important;
}

/* Text bleibt nach links verschoben, aber als stabiler Block mit sauberer Breite */
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left{
  position: relative !important;
  left: -110px !important;
  top: 0 !important;
  transform: none !important;
  display: block !important;
  width: 190px !important;
  min-width: 190px !important;
  max-width: 190px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  line-height: 1.12 !important;
  white-space: normal !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .main,
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .sub{
  display: block !important;
  white-space: nowrap !important;
}

#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .sub{
  margin-top: 2px !important;
}

/* === KORREKTUR 2026-05-02: Preisstaffel-Ausrichtung === */
/* Blockiergebühr-Texte in der Zeilenhöhe exakt mittig ausrichten */
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  min-height: 56px !important;
  top: 0 !important;
}

/* PV-Strom / Netzstrom + Einheit nach rechts ziehen und an "Einheit" ausrichten */
#preise .local-table thead .matrix-head th.energy-head,
#preise .local-table tbody td.energy-type{
  text-align: right !important;
  padding-left: 0 !important;
  padding-right: 2px !important;
}
#preise .local-table thead .matrix-head th.unit-head,
#preise .local-table tbody td.unit{
  text-align: right !important;
  padding-left: 0 !important;
  padding-right: 8px !important;
}

/* Grünen Trennstrich minimal nach links setzen, ohne die Spaltenbreiten zu verändern */
#preise .local-table .split-col{
  border-left: 0 !important;
  position: relative !important;
}
#preise .local-table .split-col::before{
  content: "";
  position: absolute;
  left: -5px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: rgba(115,170,36,.72);
  pointer-events: none;
}


/* === KORREKTUR 2026-05-02: Rahmenlinien + gleiche Tabellenhöhe === */
/* Saubere horizontale Zeilenlinien in der kompletten PV-ÖkoPlus-Tabelle. */
#preise .local-table table.local-grouped-price-table{
  border-collapse: collapse !important;
}
#preise .local-table table.local-grouped-price-table th,
#preise .local-table table.local-grouped-price-table td{
  border-bottom: 1px solid rgba(28,47,93,.12) !important;
}
#preise .local-table table.local-grouped-price-table tbody tr:last-child td{
  border-bottom: 0 !important;
}
/* Bei zusammengefassten Ladeart-Zellen die Mitte der Doppellinie sichtbar machen. */
#preise .local-table table.local-grouped-price-table td.group-label[rowspan="2"]{
  position: relative !important;
}
#preise .local-table table.local-grouped-price-table td.group-label[rowspan="2"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  background:rgba(28,47,93,.12);
  pointer-events:none;
}
/* Der grüne Vertikalstrich darf die grauen Zeilenlinien nicht überdecken. */
#preise .local-table .split-col::before{
  z-index: 0 !important;
}
#preise .local-table .split-col > *{
  position: relative;
  z-index: 1;
}
/* Kleiner grauer Querstrich an den Schnittpunkten, damit die Zeilenlinien optisch durchlaufen. */
#preise .local-table tbody td.split-col::after,
#preise .local-table thead th.split-col::after{
  content:"";
  position:absolute;
  left:-8px;
  right:0;
  bottom:-1px;
  height:1px;
  background:rgba(28,47,93,.12);
  pointer-events:none;
  z-index:2;
}
#preise .local-table tbody tr:last-child td.split-col::after{
  display:none;
}
/* Tabellenhöhe wird per JS synchronisiert; Inhalt bleibt vertikal mittig. */
#preise .price-compare-grid{
  align-items:start !important;
}
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table{
  overflow:hidden !important;
}
#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height:100%;
}
@media (max-width:1040px){
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}

/* === KORREKTUR 2026-05-02 v3: PV-ÖkoPlus Linien sauber neu aufgebaut + gleiche Tabellenhöhe === */
#preise .price-compare-grid{
  align-items: start !important;
}

#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table{
  border-radius: 18px !important;
  overflow: hidden !important;
  box-shadow: var(--shadow) !important;
  background: var(--white) !important;
}

#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height: 402px !important;
  min-height: 402px !important;
  max-height: 402px !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  table-layout: fixed !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

#preise .public-table thead .head-top,
#preise .local-table thead .head-top{ height:54px !important; }
#preise .public-table thead .subhead,
#preise .local-table thead .matrix-head{ height:52px !important; }
#preise .public-table tbody tr.public-ac-row,
#preise .public-table tbody tr.public-dc-row{ height:92px !important; }
#preise .local-table tbody tr.energy-row{ height:46px !important; }
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-block-row{ height:56px !important; }

/* Alte, uneinheitliche Linien der rechten Tabelle komplett neutralisieren. */
#preise .local-table table.local-grouped-price-table th,
#preise .local-table table.local-grouped-price-table td{
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: inset 0 -1px rgba(28,47,93,.12) !important;
}

/* Letzte Zeile ohne untere Innenlinie, damit der Kasten außen sauber bleibt. */
#preise .local-table table.local-grouped-price-table tbody tr:last-child td{
  box-shadow: none !important;
}

/* Die Zwischenlinie in den zusammengefassten Ladeart-Zellen exakt neu zeichnen. */
#preise .local-table table.local-grouped-price-table td.group-label[rowspan="2"]::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:50% !important;
  height:1px !important;
  background:rgba(28,47,93,.12) !important;
  pointer-events:none !important;
  z-index:3 !important;
}

/* Doppelte/kurze Zusatzlinien am grünen Trennstrich entfernen. */
#preise .local-table tbody td.split-col::after,
#preise .local-table thead th.split-col::after{
  content:none !important;
  display:none !important;
}

/* Grüner Strich bleibt minimal links gesetzt, läuft aber ohne extra Rahmenartefakte. */
#preise .local-table .split-col{
  border-left:0 !important;
  position:relative !important;
}
#preise .local-table .split-col::before{
  content:"" !important;
  position:absolute !important;
  left:-5px !important;
  top:0 !important;
  bottom:0 !important;
  width:2px !important;
  background:rgba(115,170,36,.72) !important;
  pointer-events:none !important;
  z-index:2 !important;
}
#preise .local-table .split-col > *{ position:relative !important; z-index:4 !important; }

/* Linke Tabelle: Linienrhythmus und AC-Zeile auf denselben Höhen wie rechts fixieren. */
#preise .public-table table th,
#preise .public-table table td{
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow: inset 0 -1px rgba(28,47,93,.12) !important;
}
#preise .public-table table tbody tr:last-child td{
  box-shadow:none !important;
}
#preise .public-table tbody tr.public-ac-row td{
  height:92px !important;
}

@media (max-width:1040px){
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}

/* === KORREKTUR 2026-05-02 v4: Tabellenlinien komplett bereinigt === */
/* Ursache der unruhigen Linien war eine Mischung aus alten border-bottom-Regeln,
   inset-box-shadow-Linien und einer zusätzlich gezeichneten ::after-Linie in den
   zusammengefassten AC/DC-Zellen. Ab hier werden die Linien einmal sauber neu gesetzt. */
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table{
  height:402px !important;
  min-height:402px !important;
  max-height:402px !important;
  border-radius:18px !important;
  overflow:hidden !important;
  box-shadow:var(--shadow) !important;
}

#preise .price-compare-grid .table-wrap.local-table{
  background:#dfead5 !important; /* verhindert die helle/weiße Kante ganz rechts */
}
#preise .price-compare-grid .table-wrap.public-table{
  background:var(--white) !important;
}

#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height:402px !important;
  min-height:402px !important;
  max-height:402px !important;
  width:100% !important;
  border-collapse:collapse !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  box-shadow:none !important;
  border:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
}

/* Erst ALLE alten horizontalen Linien/Schattierungen entfernen. */
#preise .public-table table th,
#preise .public-table table td,
#preise .local-table table.local-grouped-price-table th,
#preise .local-table table.local-grouped-price-table td{
  border-top:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

/* Dann horizontale Linien EINMAL neu zeichnen. */
#preise .public-table table thead tr:not(:last-child) th,
#preise .public-table table thead tr:last-child th,
#preise .public-table table tbody tr:not(:last-child) td{
  border-bottom:1px solid rgba(28,47,93,.12) !important;
}

#preise .local-table table.local-grouped-price-table thead tr:not(:last-child) th,
#preise .local-table table.local-grouped-price-table thead tr:last-child th,
#preise .local-table table.local-grouped-price-table tbody tr:not(:last-child) td{
  border-bottom:1px solid rgba(28,47,93,.12) !important;
}

/* Keine Linie mitten durch die zusammengefassten Ladeart-Zellen. */
#preise .local-table table.local-grouped-price-table td.group-label[rowspan="2"]{
  border-bottom:1px solid rgba(28,47,93,.12) !important;
  position:relative !important;
}
#preise .local-table table.local-grouped-price-table td.group-label[rowspan="2"]::after{
  content:none !important;
  display:none !important;
}

/* Letzte Tabellenzeile ohne zusätzliche Innenlinie. */
#preise .public-table table tbody tr:last-child td,
#preise .local-table table.local-grouped-price-table tbody tr:last-child td{
  border-bottom:0 !important;
}

/* Fixe Zeilenhöhen: linke und rechte Tabelle auf exakt gleiche Rasterlinien. */
#preise .public-table thead .head-top,
#preise .local-table thead .head-top{height:54px !important;}
#preise .public-table thead .subhead,
#preise .local-table thead .matrix-head{height:52px !important;}
#preise .public-table tbody tr.public-ac-row,
#preise .public-table tbody tr.public-dc-row{height:92px !important;}
#preise .local-table tbody tr.energy-row{height:46px !important;}
#preise .public-table tbody tr.public-dc-block-row,
#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-block-row{height:56px !important;}

/* Tabellenzellen mittig halten und Zeilenhöhen nicht durch Padding aufblasen. */
#preise .public-table th,
#preise .public-table td,
#preise .local-table th,
#preise .local-table td{
  padding-top:6px !important;
  padding-bottom:6px !important;
  vertical-align:middle !important;
  line-height:1.12 !important;
}

/* Grüner Vertikalstrich ohne Zusatzlinien/Artefakte. */
#preise .local-table .split-col{
  border-left:0 !important;
  position:relative !important;
}
#preise .local-table .split-col::before{
  content:"" !important;
  position:absolute !important;
  left:-5px !important;
  top:0 !important;
  bottom:0 !important;
  width:2px !important;
  background:rgba(115,170,36,.72) !important;
  pointer-events:none !important;
  z-index:2 !important;
}
#preise .local-table tbody td.split-col::after,
#preise .local-table thead th.split-col::after{
  content:none !important;
  display:none !important;
}

@media (max-width:1040px){
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}


/* === NUR FIX: AC-Blockiergebühr-Zeilen wieder sichtbar machen === */
/* Die Zeilen waren im HTML vorhanden, wurden aber durch fixe 402px + overflow:hidden unten abgeschnitten. */
#preise .price-compare-grid .table-wrap.public-table,
#preise .price-compare-grid .table-wrap.local-table,
#preise .price-compare-grid .table-wrap.public-table table,
#preise .price-compare-grid .table-wrap.local-table table{
  height:458px !important;
  min-height:458px !important;
  max-height:458px !important;
}

#preise .public-table tbody tr.public-ac-block-row,
#preise .local-table tbody tr.local-ac-block-row{
  display:table-row !important;
  visibility:visible !important;
  opacity:1 !important;
}


/* === NUR FIX: linke Tabelle AC/DC-Zeilenhöhe angleichen === */
/* Ziel: Unterkante der AC-Laden-Zeile links auf Höhe der AC-Gruppe rechts.
   Gesamt-/Tabellenhöhe bleibt unverändert, weil die DC-Zeile entsprechend kompakter wird.
   Blockiergebühr-Zeilen werden nicht verändert. */
#preise .public-table tbody tr.public-ac-row{
  height:128px !important;
}

#preise .public-table tbody tr.public-ac-row td{
  padding-top:22px !important;
  padding-bottom:22px !important;
}

#preise .public-table tbody tr.public-dc-row{
  height:118px !important;
}

#preise .public-table tbody tr.public-dc-row td{
  padding-top:10px !important;
  padding-bottom:10px !important;
  vertical-align:top !important;
}

#preise .public-table tbody tr.public-dc-row td:first-child{
  vertical-align:middle !important;
}

#preise .public-table tbody tr.public-dc-row .price-stack{
  margin-top:0 !important;
  gap:12px !important;
}


/* === KORREKTUR: linke AC-Zeile wieder niedriger, exakt zur rechten AC-Gruppe === */
/* Nur linke Tabelle: AC/DC-Höhenverteilung. Blockiergebühr-Zeilen und Tabellenhöhe bleiben unverändert. */
#preise .public-table tbody tr.public-ac-row{
  height:114px !important;
}

#preise .public-table tbody tr.public-ac-row td{
  padding-top:18px !important;
  padding-bottom:18px !important;
}

#preise .public-table tbody tr.public-dc-row{
  height:132px !important;
}

#preise .public-table tbody tr.public-dc-row td{
  padding-top:12px !important;
  padding-bottom:12px !important;
  vertical-align:top !important;
}

#preise .public-table tbody tr.public-dc-row td:first-child{
  vertical-align:middle !important;
}

#preise .public-table tbody tr.public-dc-row .price-stack{
  margin-top:0 !important;
  gap:14px !important;
}


/* === FINAL MINI FIX: DC-Zeile links kompakter === */
#preise .public-table tbody tr.public-dc-row td{
  padding-top:6px !important;
  padding-bottom:6px !important;
}


/* === FINAL: DC-Zeile unten kürzen (oben bleibt wie ist) === */
#preise .public-table tbody tr.public-dc-row{
  height:110px !important;
}

#preise .public-table tbody tr.public-dc-row td{
  padding-bottom:2px !important;
}


/* === FINAL FINAL: DC-Blockiergebühr links exakt angleichen === */
#preise .public-table tbody tr.public-dc-block-row{
  height:64px !important;
}

#preise .public-table tbody tr.public-dc-block-row td{
  padding-top:10px !important;
  padding-bottom:10px !important;
}


/* === +3px Korrektur: DC-Blockiergebühr exakt fluchten lassen === */
#preise .public-table tbody tr.public-dc-block-row{
  height:67px !important;
}


/* === Präzise Ausrichtung DC-Schnellladen-Zeile (links) === */
/* DC-Zeile leicht erhöhen */
#preise .public-table tbody tr.public-dc-row{
  height:114px !important;
}

/* darunter liegende DC-Block-Zeile entsprechend verkleinern */
#preise .public-table tbody tr.public-dc-block-row{
  height:63px !important;
}
.inline-strong{font-weight:700;}

/* === MOBILE-FIX 2026-05-03: Preisvergleich ohne horizontales Scrollen === */
@media (max-width: 520px){
  #preise .container{
    width: calc(100% - 20px) !important;
  }

  #preise .price-compare-grid{
    gap: 18px !important;
  }

  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table{
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    border-radius: 14px !important;
  }

  #preise .price-compare-grid table{
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  /* Linke öffentliche Tabelle: Preisangaben bleiben zusammen, Zusatztexte dürfen sauber umbrechen. */
  #preise .public-table col.c1{ width: 43% !important; }
  #preise .public-table col.c2{ width: 57% !important; }
  #preise .public-table th,
  #preise .public-table td{
    padding-left: 12px !important;
    padding-right: 10px !important;
    font-size: 14px !important;
    line-height: 1.18 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
  #preise .public-table thead .head-top th{
    font-size: 16px !important;
    line-height: 1.08 !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
  #preise .public-table .price-main{
    display: inline-block !important;
    white-space: nowrap !important;
    font-size: 16px !important;
    line-height: 1.05 !important;
  }
  #preise .public-table .price-sub{
    display: block !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    line-height: 1.18 !important;
  }
  #preise .public-table .price-stack{ gap: 8px !important; }

  /* Rechte PV-ÖkoPlus-Tabelle: alle 7 Spalten passen hochkant in den Bildschirm. */
  #preise .local-table table.local-grouped-price-table col.local-col-load{ width: 13% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-energy{ width: 20% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-unit{ width: 12% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-stage{ width: 13.75% !important; }

  #preise .local-table table.local-grouped-price-table th,
  #preise .local-table table.local-grouped-price-table td{
    padding-left: 3px !important;
    padding-right: 3px !important;
    font-size: 10.5px !important;
    line-height: 1.02 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    text-align: center !important;
  }
  #preise .local-table table.local-grouped-price-table thead .head-top th{
    text-align: left !important;
    padding: 9px 14px !important;
    font-size: 16px !important;
    line-height: 1.05 !important;
  }
  #preise .local-table .local-table-title{
    display:block !important;
    max-width: 100% !important;
  }
  #preise .local-table .matrix-head th{
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.02 !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
  #preise .local-table .matrix-head .stage-head{
    font-size: 9.5px !important;
  }
  #preise .local-table .stage-title{
    display:block !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: .95 !important;
    white-space: nowrap !important;
  }
  #preise .local-table .stage-meta{
    display:block !important;
    font-size: 9.2px !important;
    line-height: .98 !important;
    white-space: normal !important;
  }
  #preise .local-table .energy-type{
    font-size: 11px !important;
    line-height: 1.02 !important;
  }
  #preise .local-table .energy-type,
  #preise .local-table .unit{
    color: var(--navy) !important;
  }
  #preise .local-table .unit{
    font-size: 10px !important;
    white-space: nowrap !important;
  }
  #preise .local-table .price{
    font-size: 12px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    letter-spacing: -0.02em !important;
  }
  #preise .local-table .group-label{
    font-size: 11px !important;
    line-height: 1.02 !important;
    text-align: left !important;
    padding-left: 5px !important;
    padding-right: 2px !important;
    overflow-wrap: anywhere !important;
  }
  #preise .local-table .merge-label{
    text-align: left !important;
    font-size: 11px !important;
    line-height: 1.03 !important;
    padding-left: 5px !important;
  }
  #preise .local-table .merge-price{
    font-size: 11px !important;
    line-height: 1.02 !important;
  }
  #preise .local-table .merge-center-axis{
    width: 100% !important;
    transform: none !important;
    text-align: center !important;
    line-height: 1.02 !important;
  }
  #preise .local-table .merge-center-axis .main,
  #preise .local-table .merge-center-axis .sub{
    display:block !important;
    white-space: nowrap !important;
  }

  /* Fixhöhen am Handy lösen, damit nichts unten abgeschnitten wird. */
  #preise .price-compare-grid .table-wrap.public-table,
  #preise .price-compare-grid .table-wrap.local-table,
  #preise .price-compare-grid .table-wrap.public-table table,
  #preise .price-compare-grid .table-wrap.local-table table{
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
}

@media (max-width: 380px){
  #preise .local-table table.local-grouped-price-table th,
  #preise .local-table table.local-grouped-price-table td{
    font-size: 10px !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
  }
  #preise .local-table table.local-grouped-price-table thead .head-top th,
  #preise .public-table thead .head-top th{
    font-size: 15px !important;
  }
  #preise .local-table .stage-title{ font-size: 11px !important; }
  #preise .local-table .stage-meta{ font-size: 8.8px !important; }
  #preise .local-table .price{ font-size: 11.5px !important; }
}

/* --- Mobile fix adjustments --- */
.nowrap { white-space: nowrap; }

.merge-center-axis.axis-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}


/* --- KORREKTUR: PV-ÖkoPlus Blockiergebühr wie Referenzbild ---
   Der Text in den Blockiergebühr-Zeilen wird optisch auf die Achse zwischen Basis und PS 1 gesetzt. */
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left{
  position: relative !important;
  left: -110px !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 190px !important;
  min-width: 190px !important;
  max-width: 190px !important;
  min-height: 56px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  line-height: 1.12 !important;
}
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .main,
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .sub{
  display: block !important;
  white-space: nowrap !important;
}
#preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left .sub{
  margin-top: 2px !important;
  font-weight: 400 !important;
}
@media (max-width: 480px){
  #preise .local-table tbody td.merge-price .merge-center-axis.axis-shift-left{
    left: -72px !important;
    width: 170px !important;
    min-width: 170px !important;
    max-width: 170px !important;
  }
}
/* --- MOBILE: linke Beschriftungsspalte der PV-ÖkoPlus-Tabelle exakt angleichen ---
   Nur Mobilansicht: AC – Laden, DC – Schnellladen sowie beide Blockiergebühren
   erhalten dieselbe linke Textflucht. Desktop bleibt unverändert. */
@media (max-width: 780px){
  #preise .local-table table.local-grouped-price-table tbody td.group-label,
  #preise .local-table table.local-grouped-price-table tbody td.merge-label{
    text-align: left !important;
    padding-left: 8px !important;
    padding-right: 2px !important;
  }
}

/* === MOBILE ONLY: PV-ÖkoPlus-Tabelle – bessere Raumnutzung ohne Desktop-Änderung === */
@media (max-width: 780px){
  /* feste Spalten nur mobil: Preisstufen bekommen mehr nutzbare Breite */
  #preise .local-table table.local-grouped-price-table{
    table-layout: fixed !important;
    width: 100% !important;
  }
  #preise .local-table table.local-grouped-price-table col.local-col-load{ width: 14.5% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-energy{ width: 15.5% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-unit{ width: 8.5% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-stage{ width: 15.375% !important; }

  #preise .local-table table.local-grouped-price-table th,
  #preise .local-table table.local-grouped-price-table td{
    padding-left: 3px !important;
    padding-right: 3px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  /* Ladeart-Überschrift auf dieselbe linke Flucht wie AC-/DC-Laden bringen */
  #preise .local-table table.local-grouped-price-table thead .matrix-head th:first-child{
    text-align: left !important;
    padding-left: 8px !important;
  }

  /* kWh/Monat und €/kWh dürfen nicht auseinanderbrechen */
  #preise .local-table .stage-meta,
  #preise .local-table .unit{
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
  }
  #preise .local-table .stage-meta{
    font-size: 8.6px !important;
    line-height: .98 !important;
    letter-spacing: -0.045em !important;
  }
  #preise .local-table .unit{
    font-size: 9.8px !important;
    line-height: 1.0 !important;
    letter-spacing: -0.05em !important;
  }

  /* Hauptschriften vorsichtig größer, ohne Überlaufen */
  #preise .local-table .energy-type{
    font-size: 11.2px !important;
  }
  #preise .local-table .price{
    font-size: 12.4px !important;
  }
  #preise .local-table .group-label{
    font-size: 11.4px !important;
    padding-left: 8px !important;
  }

  /* beide Blockiergebühr-Zeilen etwas besser lesbar */
  #preise .local-table .merge-label{
    font-size: 11.8px !important;
    padding-left: 8px !important;
  }
  #preise .local-table .merge-price,
  #preise .local-table .merge-center-axis{
    font-size: 11.8px !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 380px){
  #preise .local-table .stage-meta{
    font-size: 8.35px !important;
    letter-spacing: -0.055em !important;
  }
  #preise .local-table .unit{
    font-size: 9.5px !important;
    letter-spacing: -0.06em !important;
  }
}


/* === MOBILE ONLY 2026-05-03: PV-ÖkoPlus-Tabelle letzte Feinkorrektur ===
   Nur Mobilansicht: Spaltenraum besser nutzen, €/kWh nicht umbrechen,
   kWh-/Monat-Umbruch überall gleich, Ladeart-Flucht angleichen. */
.stage-mobile-break{display:none;}
.stage-desktop-space{display:inline;}

@media (max-width: 780px){
  #preise .local-table table.local-grouped-price-table col.local-col-load{ width: 13.2% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-energy{ width: 14.1% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-unit{ width: 9.5% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-stage{ width: 15.8% !important; }

  #preise .local-table table.local-grouped-price-table thead .matrix-head th:first-child{
    text-align:left !important;
    padding-left: 9px !important;
  }

  #preise .local-table table.local-grouped-price-table tbody td.group-label,
  #preise .local-table table.local-grouped-price-table tbody td.merge-label{
    padding-left: 9px !important;
  }

  #preise .local-table .stage-desktop-space{ display:none !important; }
  #preise .local-table .stage-mobile-break{ display:block !important; }
  #preise .local-table .stage-meta{
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    font-size: 8.8px !important;
    line-height: .98 !important;
    letter-spacing: -0.05em !important;
  }
  #preise .local-table .stage-meta .nowrap{
    white-space: nowrap !important;
  }

  #preise .local-table .unit{
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
    hyphens: none !important;
    font-size: 10.1px !important;
    line-height: 1 !important;
    letter-spacing: -0.055em !important;
  }
  #preise .local-table .stage-title{
    font-size: 12.3px !important;
  }
  #preise .local-table .energy-type{
    font-size: 11.4px !important;
  }
  #preise .local-table .price{
    font-size: 12.8px !important;
  }
  #preise .local-table .group-label{
    font-size: 11.6px !important;
    line-height: 1.02 !important;
  }
  #preise .local-table .merge-label{
    font-size: 12.2px !important;
    line-height: 1.08 !important;
  }
  #preise .local-table .merge-price,
  #preise .local-table .merge-center-axis{
    font-size: 12.2px !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 380px){
  #preise .local-table table.local-grouped-price-table col.local-col-load{ width: 13.2% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-energy{ width: 14.1% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-unit{ width: 9.5% !important; }
  #preise .local-table table.local-grouped-price-table col.local-col-stage{ width: 15.8% !important; }

  #preise .local-table .stage-meta{
    font-size: 8.55px !important;
    letter-spacing: -0.06em !important;
  }
  #preise .local-table .unit{
    font-size: 9.8px !important;
    letter-spacing: -0.065em !important;
  }
  #preise .local-table .price{ font-size: 12.5px !important; }
}

/* Navigation & Hero CTA Ergänzungen */
.nav-row-break {
  flex-basis: 100%;
  height: 0;
  margin: 0;
  padding: 0;
}

.hero-cta-split {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.hero-cta-left,
.hero-cta-right {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.hero-cta-right {
  align-items: flex-end;
}

@media (max-width: 780px) {
  .hero-cta-split {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-cta-left,
  .hero-cta-right {
    width: 100%;
    align-items: stretch;
  }

  .hero-cta-left .btn,
  .hero-cta-right .btn {
    width: 100%;
  }
}

/* Galerie Feinschliff */
.page-galerie #bereiche {
  padding-top: 6px !important;
}


/* Navigation Zeilenabstand optimieren */
nav ul {
  row-gap: 4px;
}

.nav-row-break {
  flex-basis: 100%;
  height: 0;
  margin: -4px 0 0 0;
  padding: 0;
}

/* Galerie */
.page-galerie #pv-anlagen,
.page-galerie #laden-bilder,
.page-galerie #lounge-bilder,
.page-galerie #vermietung-bilder {
  scroll-margin-top: calc(var(--header-height, 96px) - 54px);
}

.gallery-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--navy);
}

.gallery-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}

.gallery-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(19,34,71,.82), rgba(19,34,71,.48) 48%, rgba(19,34,71,.22)),
    linear-gradient(180deg, rgba(19,34,71,.18), rgba(19,34,71,.50));
}

.gallery-hero-content {
  position: relative;
  z-index: 1;
  color: #fff;
  padding: 8px 0 96px 0;
}

.gallery-hero-content h1 {
  max-width: 820px;
  color: #fff;
}

.page-galerie #bereiche {
  padding-top: 6px !important;
}

.gallery-category-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 4px;
}

.gallery-category-card {
  position: relative;
  min-height: 292px;
  border-radius: 24px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-color: var(--navy);
  box-shadow: var(--shadow);
  border: 1px solid rgba(223,230,239,.95);
  display: flex;
  align-items: flex-end;
  color: #fff;
  isolation: isolate;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.gallery-category-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(19,34,71,.08), rgba(19,34,71,.86)),
    linear-gradient(90deg, rgba(19,34,71,.20), rgba(19,34,71,.10));
  pointer-events: none;
}

.gallery-category-content {
  position: relative;
  z-index: 1;
  padding: 24px;
}

.gallery-category-content h3 {
  color: #fff;
  margin: 0 0 18px 0;
}

.gallery-card-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  font-weight: 800;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.gallery-category-card:hover .gallery-card-link {
  transform: translateY(-1px);
  background: rgba(255,255,255,.24);
}

.gallery-section-head {
  margin-bottom: 22px;
}

.gallery-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.gallery-photo {
  margin: 0;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid rgba(28,47,93,.08);
  transform: translateZ(0);
  backface-visibility: hidden;
}

.gallery-photo.wide {
  grid-column: 1 / -1;
}

.gallery-photo img {
  width: 100%;
  height: auto;
  display: block;
}

.gallery-photo.crop-match {
  height: 100%;
}

.gallery-photo.crop-match img {
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 980px) {
  .gallery-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .gallery-hero {
    min-height: 430px;
  }

  .gallery-hero-content {
    padding: 64px 0;
  }

  .gallery-category-grid,
  .gallery-photo-grid {
    grid-template-columns: 1fr;
  }

  .gallery-category-card {
    min-height: 270px;
  }

  .gallery-photo.wide {
    grid-column: auto;
  }

  .gallery-photo.crop-match {
    height: auto;
  }

  .gallery-photo.crop-match img {
    height: auto;
    object-fit: contain;
  }
}

/* Light green secondary CTA */
.btn-soft-green {
  background: rgba(152,201,74,.18);
  color: #245212;
  border: 1px solid rgba(152,201,74,.42);
  box-shadow: none;
}
.btn-soft-green:hover {
  background: rgba(152,201,74,.28);
}

/* Quicklinks: 3 or 4 cards adapt sauber */
.quick-links .links-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

/* Vermietung: Nutzungen und FAQ-Block nebeneinander */
.rent-info-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 28px;
  align-items: stretch;
  margin-top: 28px;
}

.rent-info-grid .rent-wide-card,
.rent-info-grid .rent-faq-band {
  margin-top: 0 !important;
  height: 100%;
}

.rent-faq-band {
  display: flex;
  align-items: center;
}

.rent-faq-band .grid-2 {
  grid-template-columns: 1fr;
  gap: 18px;
  width: 100%;
}

.rent-faq-band .btns {
  margin-top: 8px;
}

@media (max-width: 900px) {
  .rent-info-grid {
    grid-template-columns: 1fr;
  }
}

/* Vermietung: blaue FAQ-Karte kompakt + Buttons nebeneinander */
.rent-info-grid {
  align-items: stretch;
}

.rent-info-grid .rent-wide-card,
.rent-info-grid .rent-faq-band {
  height: 100%;
}

.rent-faq-band {
  display: flex;
  align-items: center;
}

.rent-faq-band > .grid-2 {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
  width: 100%;
  align-items: center !important;
}

.rent-faq-band .btns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin-top: 4px !important;
  width: 100%;
}

.rent-faq-band .btns .btn {
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  white-space: nowrap;
  padding-left: 16px;
  padding-right: 16px;
}

.rent-wide-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.rent-wide-card .rent-grid-list {
  gap: 20px;
}

.rent-wide-card li {
  margin-bottom: 5px;
}

.rent-wide-card p:last-child {
  margin-bottom: 0;
}

@media (max-width: 1100px) {
  .rent-faq-band .btns {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 900px) {
  .rent-info-grid {
    grid-template-columns: 1fr;
  }
}

/* Vermietung: finale Höhen- und Abstandskorrektur */
.rent-info-grid {
  align-items: stretch !important;
}

.rent-info-grid > .rent-wide-card,
.rent-info-grid > .rent-faq-band {
  height: 100% !important;
  min-height: 0 !important;
}

.rent-info-grid .rent-wide-card {
  padding: 24px 26px !important;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
}

.rent-info-grid .rent-wide-card h3 {
  margin-bottom: 12px !important;
}

.rent-info-grid .rent-wide-card .rent-grid-list {
  gap: 18px !important;
  margin-top: 0 !important;
}

.rent-info-grid .rent-wide-card ul {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}

.rent-info-grid .rent-wide-card li {
  margin-bottom: 3px !important;
  line-height: 1.38 !important;
}

.rent-info-grid .rent-wide-card p {
  margin-bottom: 8px !important;
  line-height: 1.45 !important;
}

.rent-info-grid .rent-wide-card p:last-child {
  margin-bottom: 0 !important;
}

.rent-info-grid .rent-faq-band {
  padding: 26px 34px !important;
  display: flex !important;
  align-items: center !important;
}

.rent-info-grid .rent-faq-band h3 {
  margin-bottom: 12px !important;
}

.rent-info-grid .rent-faq-band p {
  margin-bottom: 16px !important;
  line-height: 1.45 !important;
}

.rent-info-grid .rent-faq-band .btns {
  margin-top: 6px !important;
}

/* Vermietung: linken Nutzungskasten vertikal an blauen Kasten angleichen */
.rent-info-grid > .rent-wide-card {
  transform: translateY(-24px);
}

@media (max-width: 900px) {
  .rent-info-grid > .rent-wide-card {
    transform: none;
  }
}

.price-example-btn{
  margin-left:12px;
  min-height:36px;
  padding:0 18px;
  font-size:.95rem;
  vertical-align:middle;
}

.price-retro-note{
  display:inline-block;
  margin-top:4px;
}

/* Preiseseite: gemeinsame Nutzung, Beispiel und Fair-Use final */
.page-preise .account-volume-note ul {
  display: grid;
  gap: 10px;
  padding-left: 0;
  margin-left: 0;
  list-style: none;
}

.page-preise .account-volume-note li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.page-preise .account-volume-note .inline-list-icon {
  width: 24px;
  height: 24px;
  min-width: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(152, 201, 74, .16);
  color: #245212;
  font-weight: 900;
  font-size: .82rem;
  line-height: 1;
  margin-top: 1px;
}

.page-preise .account-volume-note .inline-strong {
  font-weight: 800;
  color: var(--ink);
}

/* Preiseseite: unterer CTA vollbreit */
.page-preise .price-wide-cta-wrap {
  width: 100%;
  margin-top: 28px;
  display: block;
}

.page-preise .price-wide-cta {
  width: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 28px;
  align-items: center;
}

.page-preise .price-wide-cta .btns {
  justify-content: flex-end;
  align-items: center;
}

@media (max-width: 780px) {
  .page-preise .price-wide-cta {
    grid-template-columns: 1fr;
  }

  .page-preise .price-wide-cta .btns {
    justify-content: flex-start;
  }
}

