:root {
  --bg: #f7f3e9;
  --bg-soft: #efe8d8;
  --card: #fffdf8;
  --card-alt: #f8f3e7;
  --text: #2d342b;
  --text-muted: #586150;
  --border: #d7cfbd;
  --accent: #c88a1d;
  --accent-soft: #f2dfb3;
  --pv: #5f7f45;
  --pv-soft: #dbe6cf;
  --positive: #4f7138;
  --negative: #946247;
  --warning: #4d6f98;
  --neutral-border: #9eb8d8;
  --neutral-bg-top: #edf5ff;
  --neutral-bg-bottom: #dfeafa;
  --neutral-text: #2f4d6f;
  --shadow: 0 10px 30px rgba(74, 65, 40, 0.12);
  --shadow-soft: 0 3px 12px rgba(74, 65, 40, 0.1);
  --radius: 13px;
  --radius-sm: 9px;
  --unit-suffix-width: 6.25rem;
}

* {
  box-sizing: border-box;
}

@keyframes fade-rise {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-rise-praesentation {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

html {
  margin: 0;
  padding: 0;
  min-height: 100%;
  background-color: var(--bg);
  background:
    radial-gradient(circle at 8% 8%, #fff7de 0%, transparent 42%),
    radial-gradient(circle at 90% 0, #f2ecd8 0%, transparent 36%),
    linear-gradient(180deg, var(--bg) 0%, #f3eee2 52%, var(--bg-soft) 100%);
}

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background: transparent;
  color: var(--text);
  font-family: "Avenir Next", "Segoe UI", "Noto Sans", "Helvetica Neue", sans-serif;
}

body.page-rechner {
  font-size: 16px;
  line-height: 1.46;
}


    

    

    

    

    

    body.page-rechner .container{
      width: min(1120px, 100% - 1.5rem);
      margin: 0.95rem auto 1.3rem;
    }

    body.page-rechner .header{
      margin-bottom: 0.85rem;
      padding: 0.82rem;
      border-radius: var(--radius);
      background: linear-gradient(180deg, #fffcf4 0%, #fbf5e8 100%);
      border: 1px solid var(--border);
      box-shadow: var(--shadow-soft);
      animation: fade-rise 220ms ease both;
    }

    body.page-rechner .header h1{
      margin: 0 0 0.2rem;
      font-size: clamp(1.45rem, 1.15rem + 1vw, 2rem);
      line-height: 1.2;
      font-weight: 710;
      letter-spacing: 0.1px;
      color: #2a3326;
    }

    body.page-rechner .header p{
      margin: 0;
      color: var(--text-muted);
      font-size: 0.95rem;
    }

    body.page-rechner .header .disclaimer-note{
      margin-top: 0.5rem;
      padding: 0.6rem 0.7rem;
      border: 1px solid #d5c5a0;
      border-radius: var(--radius-sm);
      background: linear-gradient(180deg, #fff8e5 0%, #fbf1d7 100%);
      color: #554a2e;
      font-size: 0.89rem;
      font-weight: 500;
      line-height: 1.4;
    }

    body.page-rechner .header-link-note{
      margin: 0.62rem 0 0;
      font-size: 0.95rem;
      line-height: 1.45;
      color: var(--text-muted);
    }

    body.page-rechner .header-link-note a{
      color: var(--accent);
      text-decoration: underline;
      text-underline-offset: 0.1em;
    }

    body.page-rechner .header-link-note a:hover{
      color: #a98941;
    }

    body.page-rechner .header-link-note a:focus-visible{
      outline: 2px solid rgba(200, 138, 29, 0.32);
      outline-offset: 2px;
      border-radius: 2px;
    }

    body.page-rechner .layout{
      display: grid;
      gap: 0.85rem;
      grid-template-columns: 1fr;
    }

    body.page-rechner .card{
      background: linear-gradient(180deg, var(--card) 0%, #fffaf0 100%);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: visible;
      animation: fade-rise 220ms ease both;
    }

    body.page-rechner .card:nth-of-type(2){
      animation-delay: 40ms;
    }

    body.page-rechner .card h2{
      margin: 0;
      font-size: clamp(1.03rem, 0.92rem + 0.42vw, 1.18rem);
      line-height: 1.25;
      font-weight: 700;
      letter-spacing: 0.1px;
      color: #293326;
    }

    body.page-rechner .card-header{
      padding: 0.72rem 0.82rem;
      background: linear-gradient(180deg, #faf3e2 0%, var(--card-alt) 100%);
      border-bottom: 1px solid var(--border);
      border-top-left-radius: calc(var(--radius) - 1px);
      border-top-right-radius: calc(var(--radius) - 1px);
    }

    body.page-rechner .card-body{
      padding: 0.82rem;
      border-bottom-left-radius: calc(var(--radius) - 1px);
      border-bottom-right-radius: calc(var(--radius) - 1px);
    }

    body.page-rechner form{
      display: grid;
      gap: 0.72rem;
    }

    body.page-rechner .quick-note{
      margin: 0;
      font-size: 0.86rem;
      color: #4f5a47;
      font-weight: 530;
    }

    body.page-rechner .field{
      display: grid;
      gap: 0.32rem;
      position: relative;
    }

    body.page-rechner .quick-fields{
      display: grid;
      gap: 0.72rem;
      margin-bottom: 0.72rem;
      padding: 0.7rem;
      border: 1px solid #d8ccb4;
      border-left: 3px solid var(--accent);
      border-radius: var(--radius-sm);
      background: linear-gradient(180deg, #fff8eb 0%, #fbf4e6 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    }

    body.page-rechner .sr-only{
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    body.page-rechner .field-label-row{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.45rem;
      position: relative;
    }

    body.page-rechner .field label{
      font-size: 0.95rem;
      font-weight: 620;
      color: #2f372c;
    }

    body.page-rechner .field-label-row label{
      margin: 0;
      flex: 1 1 auto;
    }

    body.page-rechner .info-trigger{
      width: 1.28rem;
      height: 1.28rem;
      min-width: 1.28rem;
      margin-left: auto;
      padding: 0;
      border: 1px solid #cab77f;
      border-radius: 999px;
      background: linear-gradient(180deg, #fff7dd 0%, #f6e5b8 100%);
      color: #5e522b;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 0.74rem;
      font-weight: 760;
      line-height: 1;
      transform: translateY(1px);
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7), 0 2px 8px rgba(74, 65, 40, 0.18);
      transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
    }

    body.page-rechner .info-trigger:hover{
      border-color: #b9984f;
      background: linear-gradient(180deg, #fff9e8 0%, #f3dfab 100%);
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7), 0 4px 10px rgba(74, 65, 40, 0.22);
    }

    body.page-rechner .info-trigger:focus-visible{
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.32);
    }

    body.page-rechner .field-tooltip{
      position: absolute;
      top: auto;
      bottom: calc(100% + 0.28rem);
      right: 0.2rem;
      width: min(320px, calc(100% - 0.4rem));
      padding: 0.72rem 0.78rem;
      border: 1px solid #11150f;
      border-radius: var(--radius-sm);
      background: #222920;
      color: #f3f6ec;
      box-shadow: 0 14px 24px rgba(13, 16, 12, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04);
      font-size: 0.93rem;
      line-height: 1.45;
      font-weight: 500;
      z-index: 30;
      opacity: 0;
      visibility: hidden;
      transform: translateY(0.12rem);
      transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
      pointer-events: none;
    }

    body.page-rechner .field-tooltip::before{
      content: "";
      position: absolute;
      bottom: -6px;
      right: 0.72rem;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 6px solid #11150f;
    }

    body.page-rechner .field-tooltip::after{
      content: "";
      position: absolute;
      bottom: -5px;
      right: 0.78rem;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 5px solid #222920;
    }

    body.page-rechner .info-trigger:is(:hover, :focus-visible, :active) + .field-tooltip, body.page-rechner .field-label-row:focus-within .field-tooltip{
      opacity: 1;
      visibility: visible;
      transform: translateY(0);
    }

    body.page-rechner .field-label-row.tooltip-below .field-tooltip{
      top: calc(100% + 0.28rem);
      bottom: auto;
      transform: translateY(-0.12rem);
    }

    body.page-rechner .field-label-row.tooltip-below .field-tooltip::before{
      top: -6px;
      bottom: auto;
      border-top: none;
      border-bottom: 6px solid #11150f;
    }

    body.page-rechner .field-label-row.tooltip-below .field-tooltip::after{
      top: -5px;
      bottom: auto;
      border-top: none;
      border-bottom: 5px solid #222920;
    }

    body.page-rechner input, body.page-rechner select, body.page-rechner button{
      font: inherit;
    }

    body.page-rechner input, body.page-rechner select{
      appearance: none;
      border: 1px solid #c9c0ad;
      background: #fffcf5;
      color: var(--text);
      border-radius: var(--radius-sm);
      padding: 0.54rem 0.58rem;
      outline: none;
      font-size: 0.96rem;
      line-height: 1.35;
      transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
    }

    body.page-rechner input:hover, body.page-rechner select:hover{
      border-color: #bcae92;
      background: #fffef9;
    }

    body.page-rechner input:focus, body.page-rechner select:focus{
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.24);
    }

    body.page-rechner .input-with-unit{
      position: relative;
    }

    body.page-rechner .input-with-unit input{
      width: 100%;
      padding-right: calc(var(--unit-suffix-width) + 0.75rem);
    }

    body.page-rechner .unit-suffix{
      position: absolute;
      right: 0.4rem;
      top: 50%;
      transform: translateY(-50%);
      width: var(--unit-suffix-width);
      padding: 0.1rem 0.24rem 0.1rem 0.34rem;
      border-left: 1px solid #cdc1a7;
      color: #5f6756;
      font-size: 0.73rem;
      font-weight: 560;
      line-height: 1.2;
      text-align: center;
      white-space: nowrap;
      pointer-events: none;
    }

    body.page-rechner input[type="number"]{
      appearance: textfield;
      -moz-appearance: textfield;
    }

    body.page-rechner input[type="number"]::-webkit-outer-spin-button, body.page-rechner input[type="number"]::-webkit-inner-spin-button{
      -webkit-appearance: none;
      margin: 0;
    }

    body.page-rechner .field.invalid input, body.page-rechner .field.invalid select{
      border-color: var(--negative);
      box-shadow: 0 0 0 3px rgba(168, 80, 58, 0.2);
      background: #fff9f7;
    }

    body.page-rechner details.advanced, body.page-rechner .monthly-table, body.page-rechner .assumptions, body.page-rechner .calculation-details{
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: linear-gradient(180deg, #fff9ef 0%, #f9f3e5 100%);
      padding: 0.12rem 0.56rem 0.56rem;
    }

    body.page-rechner details.advanced > summary, body.page-rechner .monthly-table > summary, body.page-rechner .assumptions > summary, body.page-rechner .calculation-details > summary{
      cursor: pointer;
      color: #505942;
      font-size: 0.92rem;
      font-weight: 650;
      padding: 0.34rem 0.1rem;
      user-select: none;
      list-style: none;
      outline: none;
      transition: color 150ms ease;
    }

    body.page-rechner details.advanced > summary::-webkit-details-marker, body.page-rechner .monthly-table > summary::-webkit-details-marker, body.page-rechner .assumptions > summary::-webkit-details-marker, body.page-rechner .calculation-details > summary::-webkit-details-marker{
      display: none;
    }

    body.page-rechner details.advanced > summary::before, body.page-rechner .monthly-table > summary::before, body.page-rechner .assumptions > summary::before, body.page-rechner .calculation-details > summary::before{
      content: "▸";
      margin-right: 0.45rem;
      color: var(--accent);
      display: inline-block;
      transition: transform 150ms ease;
    }

    body.page-rechner details.advanced[open] > summary::before, body.page-rechner .monthly-table[open] > summary::before, body.page-rechner .assumptions[open] > summary::before, body.page-rechner .calculation-details[open] > summary::before{
      transform: rotate(90deg);
    }

    body.page-rechner details.advanced > summary:hover, body.page-rechner .monthly-table > summary:hover, body.page-rechner .assumptions > summary:hover, body.page-rechner .calculation-details > summary:hover{
      color: #3d452f;
    }

    body.page-rechner .advanced-grid{
      display: grid;
      gap: 0.68rem;
      padding-top: 0.2rem;
    }

    body.page-rechner .error-msg{
      min-height: 0.95rem;
      font-size: 0.74rem;
      color: #8f3d2a;
      font-weight: 530;
    }

    body.page-rechner .actions{
      display: flex;
      gap: 0.5rem;
      margin-top: 0.15rem;
    }

    body.page-rechner button{
      border: 1px solid transparent;
      border-radius: var(--radius-sm);
      padding: 0.5rem 0.72rem;
      cursor: pointer;
      transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
    }

    body.page-rechner .ghost-btn{
      background: #fffaf0;
      color: #37412f;
      border-color: #ccbfa3;
    }

    body.page-rechner .ghost-btn:hover{
      border-color: #b79d67;
      background: #fff5df;
    }

    body.page-rechner .ghost-btn:focus-visible{
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.28);
    }

    body.page-rechner .meta-note{
      margin-top: 0.45rem;
      font-size: 0.83rem;
      color: var(--text-muted);
    }

    body.page-rechner .status{
      border: 1px solid #bda26a;
      background: #fff5db;
      color: #5d4a22;
      border-radius: var(--radius-sm);
      padding: 0.52rem 0.6rem;
      margin-bottom: 0.65rem;
      font-size: 0.87rem;
      line-height: 1.35;
    }

    body.page-rechner .status.hidden{
      display: none;
    }

    body.page-rechner .summary{
      display: grid;
      gap: 0.58rem;
      grid-template-columns: repeat(1, minmax(0, 1fr));
      margin-bottom: 0.75rem;
    }

    body.page-rechner .summary-item{
      border: 1px solid #d8ccb5;
      border-radius: var(--radius-sm);
      background: linear-gradient(180deg, #fffdf8 0%, #f8f2e4 100%);
      padding: 0.72rem;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    }

    body.page-rechner .summary-item .label{
      font-size: 0.78rem;
      color: #5c644f;
      text-transform: uppercase;
      letter-spacing: 0.3px;
      font-weight: 650;
    }

    body.page-rechner .summary-item .value{
      margin-top: 0.2rem;
      font-size: clamp(1.18rem, 1rem + 0.7vw, 1.62rem);
      font-weight: 620;
      line-height: 1.25;
      letter-spacing: 0.08px;
      color: #2f372c;
    }

    body.page-rechner .summary-item.primary{
      border-color: var(--neutral-border);
      background: linear-gradient(180deg, var(--neutral-bg-top) 0%, var(--neutral-bg-bottom) 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 6px 16px rgba(77, 111, 152, 0.14);
    }

    body.page-rechner .summary-item.primary.positive{
      border-color: #9bb884;
      background: linear-gradient(180deg, #eef7e4 0%, #e0edcf 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 6px 16px rgba(95, 127, 69, 0.14);
    }

    body.page-rechner .summary-item.primary.negative{
      border-color: #c9ab95;
      background: linear-gradient(180deg, #fdf5ef 0%, #f4e6da 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 6px 16px rgba(148, 98, 71, 0.12);
    }

    body.page-rechner .summary-item.primary.neutral{
      border-color: var(--neutral-border);
      background: linear-gradient(180deg, var(--neutral-bg-top) 0%, var(--neutral-bg-bottom) 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 6px 16px rgba(77, 111, 152, 0.14);
    }

    body.page-rechner .summary-item.primary .label{
      color: #5c644f;
    }

    body.page-rechner .summary-item.primary.positive .label{
      color: #2e4322;
    }

    body.page-rechner .summary-item.primary.negative .label{
      color: #634231;
    }

    body.page-rechner .summary-item.primary.neutral .label{
      color: var(--neutral-text);
    }

    body.page-rechner .summary-item.primary .value{
      font-weight: 760;
    }

    body.page-rechner .value.positive{
      color: var(--positive);
    }

    body.page-rechner .value.negative{
      color: var(--negative);
    }

    body.page-rechner .value.neutral{
      color: var(--warning);
    }

    body.page-rechner .result-conclusion{
      margin: 0 0 0.75rem;
      padding: 0.72rem 0.78rem;
      border: 1px solid var(--neutral-border);
      border-radius: var(--radius-sm);
      background: linear-gradient(180deg, var(--neutral-bg-top) 0%, var(--neutral-bg-bottom) 100%);
      color: var(--neutral-text);
      font-size: clamp(0.94rem, 0.88rem + 0.42vw, 1.1rem);
      font-weight: 570;
      line-height: 1.35;
      letter-spacing: 0.05px;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    }

    body.page-rechner .result-conclusion .conclusion-amount{
      font-weight: 780;
      color: #2f372c;
    }

    body.page-rechner .result-conclusion.positive{
      border-color: #9bb884;
      background: linear-gradient(180deg, #eef7e4 0%, #e0edcf 100%);
      color: #2e4322;
    }

    body.page-rechner .result-conclusion.negative{
      border-color: #c9ab95;
      background: linear-gradient(180deg, #fdf5ef 0%, #f4e6da 100%);
      color: #634231;
    }

    body.page-rechner .result-conclusion.neutral{
      border-color: var(--neutral-border);
      background: linear-gradient(180deg, var(--neutral-bg-top) 0%, var(--neutral-bg-bottom) 100%);
      color: var(--neutral-text);
    }

    body.page-rechner .table-wrap{
      overflow-x: auto;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: #fffcf6;
    }

    body.page-rechner table{
      width: 100%;
      border-collapse: collapse;
      min-width: 650px;
    }

    body.page-rechner th, body.page-rechner td{
      padding: 0.42rem 0.5rem;
      text-align: right;
      border-bottom: 1px solid #dfd6c4;
      font-size: 0.87rem;
      white-space: nowrap;
      color: #384034;
    }

    body.page-rechner th:first-child, body.page-rechner td:first-child{
      text-align: left;
    }

    body.page-rechner thead th{
      background: #f6f0e2;
      color: #3c4336;
      font-weight: 700;
      position: sticky;
      top: 0;
      z-index: 1;
    }

    body.page-rechner tbody tr:hover{
      background: rgba(242, 223, 179, 0.28);
    }

    body.page-rechner tr.total-row td{
      font-weight: 700;
      background: #f2ead8;
      border-bottom: none;
    }

    body.page-rechner td.saving.pos{
      color: var(--positive);
      font-weight: 700;
    }

    body.page-rechner td.saving.neg{
      color: var(--negative);
      font-weight: 700;
    }

    body.page-rechner .monthly-table{
      margin-bottom: 0.75rem;
    }

    body.page-rechner .monthly-table .table-wrap{
      margin-top: 0.1rem;
    }

    body.page-rechner .assumptions{
      margin-top: 0.75rem;
    }

    body.page-rechner .calculation-details{
      margin-top: 0.75rem;
    }

    body.page-rechner .assumptions ul, body.page-rechner .calculation-details ul{
      margin: 0.2rem 0 0;
      padding-left: 1.12rem;
    }

    body.page-rechner .assumptions li, body.page-rechner .calculation-details li{
      margin-bottom: 0.22rem;
      font-size: 0.81rem;
      color: #4d5746;
      line-height: 1.35;
    }

    body.page-rechner .calculation-details .calc-intro{
      margin: 0.24rem 0 0.55rem;
      font-size: 0.82rem;
      color: #495342;
      line-height: 1.4;
    }

    body.page-rechner .calculation-details .calc-steps{
      margin: 0;
      padding-left: 1.2rem;
      display: grid;
      gap: 0.4rem;
    }

    body.page-rechner .calculation-details .calc-step{
      margin: 0;
      color: #4d5746;
      font-size: 0.82rem;
      line-height: 1.35;
    }

    body.page-rechner .calculation-details .calc-step-title{
      display: block;
      margin-bottom: 0.12rem;
      color: #36402f;
      font-size: 0.83rem;
      font-weight: 670;
    }

    body.page-rechner .calculation-details .calc-note{
      margin-top: 0.1rem;
      color: #4c5646;
    }

    body.page-rechner .calculation-details .formula{
      display: block;
      margin-top: 0.14rem;
      padding: 0.25rem 0.36rem;
      border: 1px solid #d8ccb5;
      border-radius: 6px;
      background: #fffdf7;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
      font-family: "SFMono-Regular", "Consolas", "Liberation Mono", monospace;
      font-size: 0.77rem;
      line-height: 1.35;
      color: #394131;
    }

    @media (min-width: 860px){
      body.page-rechner .layout{
        grid-template-columns: 344px 1fr;
        align-items: stretch;
      }

      body.page-rechner .card{
        display: flex;
        flex-direction: column;
      }

      body.page-rechner .card-body{
        flex: 1;
      }

      body.page-rechner .summary{
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 460px){
      body.page-rechner .container{
        width: min(1120px, 100% - 1rem);
        margin-top: 0.65rem;
      }

      body.page-rechner .header, body.page-rechner .card-header, body.page-rechner .card-body{
        padding-left: 0.7rem;
        padding-right: 0.7rem;
      }
    }

    @media (prefers-reduced-motion: reduce){
      body.page-rechner *, body.page-rechner *::before, body.page-rechner *::after{
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
        scroll-behavior: auto !important;
      }
    }
  

body.page-praesentation {
  height: 100%;
  overflow: hidden;
  background: transparent;
}


    

    

    

    

    

    body.page-praesentation .top-actions{
      position: fixed;
      top: 1rem;
      left: 1rem;
      z-index: 30;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      max-width: calc(100% - 2rem);
    }

    body.page-praesentation .quick-link{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.42rem;
      border: 1px solid #bca980;
      border-radius: 999px;
      background: linear-gradient(180deg, #fffdf8 0%, #fdf1d6 100%);
      color: #524523;
      text-decoration: none;
      font-family: inherit;
      font-weight: 660;
      font-size: 1.04rem;
      line-height: 1.2;
      padding: 0.52rem 0.86rem;
      transition: background-color 160ms ease, border-color 160ms ease, opacity 160ms ease;
    }

    body.page-praesentation .quick-link:hover{
      border-color: #a98b4d;
      background: linear-gradient(180deg, #fffefb 0%, #f9e8be 100%);
    }

    body.page-praesentation .quick-link:focus-visible{
      outline: none;
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.26);
      border-color: var(--accent);
    }

    body.page-praesentation .deck{
      height: 100vh;
      overflow-y: auto;
      scroll-snap-type: y mandatory;
      scroll-behavior: smooth;
    }

    body.page-praesentation .slide{
      min-height: 100vh;
      scroll-snap-align: start;
      scroll-snap-stop: always;
      display: flex;
      align-items: center;
      padding: clamp(4.2rem, 6vh, 5.8rem) clamp(1.1rem, 4vw, 3.8rem) clamp(6.2rem, 8vh, 7.2rem);
    }

    body.page-praesentation .slide-inner{
      width: min(1460px, 100%);
      margin: 0 auto;
      animation: fade-rise-praesentation 300ms ease both;
    }

    body.page-praesentation .hero{
      margin-bottom: clamp(1rem, 2vh, 1.65rem);
      padding: clamp(1rem, 1.6vh, 1.3rem) clamp(1rem, 2vw, 1.6rem);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: linear-gradient(180deg, #fffcf4 0%, #fbf5e8 100%);
      box-shadow: var(--shadow-soft);
    }

    body.page-praesentation .hero h1, body.page-praesentation .hero h2{
      margin: 0;
      color: #2a3326;
      line-height: 1.08;
      letter-spacing: 0.2px;
      font-size: clamp(3rem, 4.5vw, 4.5rem);
      font-weight: 760;
      max-width: 66%;
    }

    body.page-praesentation .hero p{
      margin: 0.6rem 0 0;
      color: var(--text-muted);
      font-size: clamp(1.38rem, 1.75vw, 1.75rem);
      line-height: 1.35;
      max-width: 62ch;
    }

    body.page-praesentation .cards{
      display: grid;
      gap: clamp(0.72rem, 1.2vw, 1rem);
      grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    body.page-praesentation .card{
      display: flex;
      flex-direction: column;
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: linear-gradient(180deg, var(--card) 0%, #fffaf0 100%);
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    body.page-praesentation .card-head{
      display: flex;
      align-items: center;
      min-height: 6.8rem;
      padding: clamp(0.72rem, 1.2vh, 0.95rem) clamp(0.9rem, 1.4vw, 1.1rem);
      background: linear-gradient(180deg, #faf3e2 0%, var(--card-alt) 100%);
      border-bottom: 1px solid var(--border);
    }

    body.page-praesentation .card-head h3{
      margin: 0;
      font-size: clamp(1.78rem, 2.2vw, 2.25rem);
      line-height: 1.18;
      font-weight: 720;
      color: #293326;
      text-wrap: balance;
    }

    body.page-praesentation .card-head h3 .title-line{
      display: block;
    }

    body.page-praesentation .card-body{
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
      padding: clamp(0.84rem, 1.35vh, 1.08rem) clamp(0.9rem, 1.4vw, 1.1rem) clamp(1rem, 1.5vh, 1.2rem);
    }

    body.page-praesentation .card-body p{
      margin: 0;
      font-size: clamp(1.34rem, 1.65vw, 1.6rem);
      line-height: 1.42;
      color: #344031;
      max-width: 48ch;
    }

    body.page-praesentation .card-body p + p{
      margin-top: 0.52rem;
    }

    body.page-praesentation .card-body p:last-of-type{
      margin-bottom: 0.5rem;
    }

    body.page-praesentation .chip{
      display: inline-flex;
      align-self: flex-start;
      align-items: center;
      margin-top: auto;
      padding: 0.34rem 0.62rem;
      border-radius: 999px;
      border: 1px solid #ced9bf;
      background: linear-gradient(180deg, #eef6e6 0%, #e4efd8 100%);
      color: #3f5b2d;
      font-weight: 650;
      font-size: clamp(0.98rem, 1.2vw, 1.1rem);
      letter-spacing: 0.2px;
    }

    body.page-praesentation .card-wide{
      grid-column: span 12;
    }

    body.page-praesentation .card-half{
      grid-column: span 6;
    }

    body.page-praesentation .card-third{
      grid-column: span 4;
    }

    body.page-praesentation .note{
      margin-top: 0.75rem;
      border: 1px solid #d2c6ac;
      border-radius: var(--radius-sm);
      padding: 0.72rem 0.84rem;
      background: linear-gradient(180deg, #fff8e8 0%, #f6ecd7 100%);
      color: #5d4d2b;
      font-size: clamp(1.15rem, 1.25vw, 1.28rem);
      line-height: 1.35;
      font-weight: 560;
    }

    body.page-praesentation .result-highlight{
      color: #2f5b1f;
      font-weight: 780;
    }

    body.page-praesentation .controls{
      position: fixed;
      right: 1rem;
      bottom: 1rem;
      z-index: 40;
      display: flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.5rem;
      border: 1px solid #cdbf9f;
      border-radius: 999px;
      background: linear-gradient(180deg, rgba(255, 248, 229, 0.96) 0%, rgba(248, 237, 208, 0.96) 100%);
      box-shadow: 0 14px 26px rgba(74, 65, 40, 0.2);
      backdrop-filter: blur(2px);
    }

    body.page-praesentation .controls button{
      border: 1px solid #bca980;
      border-radius: 999px;
      padding: 0.52rem 0.86rem;
      background: linear-gradient(180deg, #fffdf8 0%, #fdf1d6 100%);
      color: #524523;
      font-family: inherit;
      font-size: 1.04rem;
      font-weight: 660;
      cursor: pointer;
      min-width: 6.2rem;
      transition: background-color 160ms ease, border-color 160ms ease, opacity 160ms ease;
    }

    body.page-praesentation .controls button:hover:not(:disabled){
      border-color: #a98b4d;
      background: linear-gradient(180deg, #fffefb 0%, #f9e8be 100%);
    }

    body.page-praesentation .controls button:focus-visible{
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.26);
    }

    body.page-praesentation .controls button:disabled{
      opacity: 0.45;
      cursor: default;
    }

    body.page-praesentation .slide-indicator{
      min-width: 3.8rem;
      text-align: center;
      font-size: 1rem;
      color: #4f5b44;
      font-weight: 700;
      letter-spacing: 0.35px;
    }

    body.page-praesentation .slide-1,
    body.page-praesentation .slide-2,
    body.page-praesentation .slide-3,
    body.page-praesentation .slide-4{
      background: transparent;
    }

    /* Shared visual theme for equivalent elements on both pages */
    body.page-rechner .header,
    body.page-praesentation .hero{
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: linear-gradient(180deg, #fffcf4 0%, #fbf5e8 100%);
      box-shadow: var(--shadow-soft);
    }

    body.page-rechner .header h1,
    body.page-praesentation .hero h1,
    body.page-praesentation .hero h2{
      color: #2a3326;
    }

    body.page-rechner .header p,
    body.page-praesentation .hero p{
      color: var(--text-muted);
    }

    body.page-rechner .card,
    body.page-praesentation .card{
      border: 1px solid var(--border);
      border-radius: var(--radius);
      background: linear-gradient(180deg, var(--card) 0%, #fffaf0 100%);
      box-shadow: var(--shadow);
    }

    body.page-rechner .card-header,
    body.page-praesentation .card-head{
      background: linear-gradient(180deg, #faf3e2 0%, var(--card-alt) 100%);
      border-bottom: 1px solid var(--border);
    }

    body.page-rechner .card h2,
    body.page-praesentation .card-head h3{
      color: #293326;
    }

    body.page-praesentation .quick-link{
      border: 1px solid #bca980;
      background: linear-gradient(180deg, #fffdf8 0%, #fdf1d6 100%);
      color: #524523;
    }

    body.page-praesentation .quick-link:hover{
      border-color: #a98b4d;
      background: linear-gradient(180deg, #fffefb 0%, #f9e8be 100%);
    }

    body.page-praesentation .quick-link:focus-visible{
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(200, 138, 29, 0.26);
    }

    body.page-rechner .header .disclaimer-note,
    body.page-praesentation .note{
      border: 1px solid #d5c5a0;
      background: linear-gradient(180deg, #fff8e5 0%, #fbf1d7 100%);
      color: #554a2e;
    }

    body.page-praesentation .card-body p{
      color: var(--text);
    }

    @media (max-width: 1320px){
      body.page-praesentation .card-third{
        grid-column: span 6;
      }
    }

    @media (max-width: 980px){
      body.page-praesentation .deck{
        scroll-snap-type: y proximity;
      }

      body.page-praesentation .slide{
        align-items: flex-start;
        scroll-snap-stop: normal;
        padding-top: 4rem;
      }

      body.page-praesentation .hero h1, body.page-praesentation .hero h2{
        max-width: 100%;
      }

      body.page-praesentation .card-half, body.page-praesentation .card-third{
        grid-column: span 12;
      }

      body.page-praesentation .controls{
        display: none;
      }
    }

    @media (max-width: 640px){
      body.page-praesentation .top-actions{
        top: 0.62rem;
        left: 0.62rem;
        right: 0.62rem;
        gap: 0.38rem;
        max-width: none;
      }

      body.page-praesentation .quick-link{
        font-size: 0.88rem;
        padding: 0.38rem 0.66rem;
      }

      body.page-praesentation .slide{
        padding-left: 0.72rem;
        padding-right: 0.72rem;
        padding-bottom: 6rem;
      }

      body.page-praesentation .hero{
        padding: 0.82rem;
      }

      body.page-praesentation .card-head, body.page-praesentation .card-body{
        padding-left: 0.78rem;
        padding-right: 0.78rem;
      }
    }

    @media (prefers-reduced-motion: reduce){
      body.page-praesentation .deck{
        scroll-behavior: auto;
      }

      body.page-praesentation .slide-inner{
        animation: none;
      }

      body.page-praesentation *{
        transition: none !important;
      }
    }
  
