.lp-software { scroll-margin-top: 160px; }
.lp-software .st-kopf { max-width: 820px; }
.pt-page .lp-software { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.pt-page .lp-software .st-kopf { margin-inline: auto; }
#software-preise { scroll-margin-top: 150px; margin-bottom: 36px; }
.lp-software .ratgeber-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; border: 0; }
.lp-software .ratgeber-card { border: 1px solid #cfdaea; border-radius: 6px; box-shadow: none; }
.lp-software .ratgeber-card--wide { grid-column: 1 / -1; }
.lp-software-costs { margin-top: 36px; padding: clamp(22px, 4vw, 46px); border: 1px solid #cfdaea; background: #f4f7fb; border-radius: 6px; }
.lp-software-costs > p { max-width: 900px; line-height: 1.7; }
.lp-software-costs dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 30px 0; }
.lp-software-costs dt { font-weight: 700; color: #071b3a; margin-bottom: 10px; }
.lp-software-costs dd { margin: 0; line-height: 1.7; color: #4d627e; }
@media (max-width: 800px) { .lp-software .ratgeber-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .lp-software-costs dl { grid-template-columns: 1fr; gap: 22px; } }

/* Vier Module je Kategorie: Produktkarten und Modulauswahl in vier, zwei oder einer Spalte */
.lp-software .ratgeber-grid--vier { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pt-picker-modules--vier { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) {
  .lp-software .ratgeber-grid--vier,
  .pt-picker-modules--vier { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-picker-modules--vier > div:nth-child(2) { border-right: 0; }
  .pt-picker-modules--vier > div:nth-child(-n+2) { border-bottom: 1px solid #d8e4f2; }
}
@media (max-width: 800px) { .lp-software .ratgeber-grid--vier { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .pt-picker-modules--vier { grid-template-columns: 1fr; } }

/* Produktlinien: Pflicht-Tools (blau) und Orga-Tools (amber), Umschalter im Einstieg */
.pt-line-switch { display: inline-grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0 0 32px; padding: 6px; border: 1px solid rgba(98, 177, 255, .28); border-radius: 14px; background: rgba(7, 27, 58, .62); }
.pt-line-switch a { display: grid; gap: 4px; min-width: 196px; padding: 11px 18px; border-radius: 10px; text-decoration: none; transition: background-color .2s ease; }
.pt-line-switch b { color: #fff; font: 800 .95rem/1.2 var(--sans); }
.pt-line-switch small { color: rgba(255, 255, 255, .58); font: 600 .72rem/1.35 var(--sans); }
.pt-line-switch a:hover { background: rgba(98, 177, 255, .12); }
.pt-line-switch a:focus-visible { outline: 3px solid #62b1ff; outline-offset: 2px; }
.pt-line-switch a[aria-current="page"] { background: linear-gradient(135deg, #2487ff, #0a4aa6); box-shadow: 0 12px 30px rgba(36, 135, 255, .28); }
.pt-line-switch a[aria-current="page"] small { color: rgba(255, 255, 255, .84); }
.pt-line-switch a.is-orga[aria-current="page"] { background: linear-gradient(135deg, #f5a20a, #d98a00); box-shadow: 0 12px 30px rgba(245, 162, 10, .24); }
.pt-line-switch a.is-orga[aria-current="page"] b { color: #071b3a; }
.pt-line-switch a.is-orga[aria-current="page"] small { color: rgba(7, 27, 58, .8); }
.pt-capture-note a { color: #9fd0ff; text-decoration: underline; text-underline-offset: 3px; }
.pt-capture-note a:hover { color: #fff; }

/* Produktkarten: Orga-Kennzeichnung und dunkle Karte zur jeweils anderen Linie */
.lp-software .ratgeber-card-tag--orga { color: #8a5a05; background: #fff1d3; }
.lp-software .ratgeber-card--linie { background: #071b3a; border-color: #071b3a; }
.lp-software .ratgeber-card--linie h3 { color: #fff; }
.lp-software .ratgeber-card--linie p { color: rgba(255, 255, 255, .72); }
.lp-software .ratgeber-card--linie .ratgeber-card-tag { color: #ffc65c; background: rgba(245, 162, 10, .16); }
.lp-software .ratgeber-card--linie .ratgeber-card-link { color: #ffc65c; }
.lp-software .ratgeber-card--pflicht .ratgeber-card-tag { color: #9fd0ff; background: rgba(36, 135, 255, .22); }
.lp-software .ratgeber-card--pflicht .ratgeber-card-link { color: #9fd0ff; }

/* Fünf Pflicht-Tools, drei Orga-Tools: Modulauswahl und Rechtsraster */
.pt-picker-modules--fuenf { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pt-picker-modules--fuenf > div { padding: 24px 20px; }
.pt-law-grid--vier { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pt-law-grid--vier article { padding: 32px 26px 28px; }
/* Vier schmale Spalten: lange Wörter wie „Vertragsbedingungen“ sonst breiter als die Spalte */
.pt-law-grid--vier h3 { font-size: clamp(1.2rem, 1.5vw, 1.4rem); hyphens: auto; overflow-wrap: break-word; }
@media (max-width: 1080px) {
  .pt-picker-modules--fuenf { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pt-picker-modules--fuenf > div:nth-child(3) { border-right: 0; }
  .pt-picker-modules--fuenf > div:nth-child(-n+3) { border-bottom: 1px solid #d8e4f2; }
  .pt-law-grid--vier { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pt-law-grid--vier article:nth-child(2) { border-right: 1px solid #cfdbea; }
  .pt-law-grid--vier article:nth-child(-n+2) { border-bottom: 1px solid #cfdbea; }
}
@media (max-width: 820px) { .pt-law-grid--vier { grid-template-columns: 1fr; } }
@media (max-width: 620px) {
  .pt-line-switch { display: grid; width: 100%; }
  .pt-line-switch a { min-width: 0; padding: 10px 12px; }
  .pt-picker-modules--fuenf,
  .pt-picker-modules--drei { grid-template-columns: 1fr; }
  .pt-picker-modules--fuenf > div,
  .pt-picker-modules--drei > div { min-height: auto; border-right: 0; border-bottom: 1px solid #d8e4f2; }
  .pt-picker-modules--fuenf > div:last-child,
  .pt-picker-modules--drei > div:last-child { border-bottom: 0; }
}

/* Sprungnavigation: bei Überlänge vom ersten Eintrag an scrollbar statt links abgeschnitten */
.pt-jump .pt-shell { justify-content: safe center; }
.pt-jump a { padding-inline: 14px; }

/* ── Preisrechner ─────────────────────────────────────────── */
.pr-rechner { margin-top: 40px; border: 1px solid #d8e4f2; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 24px 60px rgba(7, 27, 58, .08); }
.pr-kopf { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 16px 24px; background: var(--navy); color: #fff; font: 700 .68rem/1.2 var(--sans); letter-spacing: .16em; }
.pr-kopf small { color: rgba(255, 255, 255, .55); letter-spacing: .08em; }
.pr-body { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); }
.pr-wahl { padding: clamp(20px, 3vw, 32px); display: grid; gap: 22px; align-content: start; }
.pr-wahl fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.pr-wahl legend { margin-bottom: 10px; color: var(--navy); font: 700 .7rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.pr-groesse { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pr-groesse legend { grid-column: 1 / -1; }
.pr-groesse label { position: relative; display: grid; gap: 2px; padding: 12px 14px; border: 1.5px solid #d8e4f2; border-radius: 6px; cursor: pointer; transition: border-color .15s, background .15s; }
.pr-groesse input { position: absolute; opacity: 0; pointer-events: none; }
.pr-groesse b { color: var(--navy); font-size: 1.15rem; }
.pr-groesse small { color: var(--muted); font-size: .74rem; }
.pr-groesse label:has(input:checked) { border-color: var(--blue); background: #eef6ff; }
.pr-groesse label:has(input:focus-visible) { outline: 3px solid rgba(36, 135, 255, .35); outline-offset: 2px; }
.pr-schnell { display: flex; flex-wrap: wrap; gap: 8px; }
.pr-schnell button { padding: 7px 12px; border: 1px solid #d8e4f2; border-radius: 999px; background: #f5f8fc; color: var(--navy); font: 600 .76rem/1.2 var(--sans); cursor: pointer; }
.pr-schnell button:hover, .pr-schnell button:focus-visible { border-color: var(--blue); color: var(--blue); }
.pr-gruppe { display: grid; gap: 6px; }
.pr-gruppe legend { display: flex; align-items: center; gap: 8px; }
.pr-gruppe legend::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--blue); }
.pr-gruppe--orga legend::before { background: #f5a20a; }
.pr-tool { display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 12px; padding: 11px 14px; border: 1px solid #e3ebf6; border-radius: 6px; cursor: pointer; transition: border-color .15s, background .15s; }
.pr-tool:hover { border-color: #b9cce4; }
.pr-tool input { width: 18px; height: 18px; accent-color: var(--blue); }
.pr-gruppe--orga .pr-tool input { accent-color: #d98a00; }
.pr-tool:has(input:checked) { border-color: var(--blue); background: #f2f8ff; }
.pr-gruppe--orga .pr-tool:has(input:checked) { border-color: #f5a20a; background: #fff8ea; }
.pr-tool-name { color: var(--navy); font-weight: 600; font-size: .92rem; }
.pr-tool-name small { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; font-size: .72rem; }
.pr-tool-preis { color: var(--navy); font-weight: 700; font-size: .9rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pr-ergebnis { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 3vw, 34px); background: linear-gradient(160deg, var(--navy), var(--navy2)); color: #fff; }
.pr-label { margin: 0; color: var(--blue2); font: 700 .68rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.pr-summe { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0; color: #fff; }
.pr-summe span { font: 400 clamp(2.6rem, 5vw, 3.4rem)/1 var(--serif); font-variant-numeric: tabular-nums; }
.pr-summe small { color: rgba(255, 255, 255, .6); font-size: .9rem; }
.pr-posten { display: grid; margin: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.pr-posten div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.pr-posten dt { color: rgba(255, 255, 255, .7); font-size: .85rem; font-weight: 400; }
.pr-posten dd { margin: 0; color: #fff; font-weight: 700; font-variant-numeric: tabular-nums; }
.pr-hinweis { margin: 0; color: rgba(255, 255, 255, .6); font-size: .8rem; }
.pr-pilot { padding: 14px 16px; border: 1px solid rgba(245, 162, 10, .5); border-radius: 6px; background: rgba(245, 162, 10, .1); }
.pr-pilot b { color: #ffc766; font-size: .85rem; }
.pr-pilot p { margin: 6px 0 0; color: rgba(255, 255, 255, .8); font-size: .82rem; line-height: 1.55; }
.pr-ergebnis .button { margin-top: auto; text-align: center; justify-content: center; }
.pr-regeln { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.pr-regeln > div { padding: 20px 22px; border: 1px solid #d8e4f2; border-radius: 6px; background: #fff; }
.pr-regeln b { color: var(--navy); }
.pr-regeln p { margin: 8px 0 0; color: var(--muted); font-size: .88rem; line-height: 1.6; }
.pr-beispiel { margin-top: 20px; padding: clamp(22px, 3vw, 34px); border-left: 4px solid var(--blue); border-radius: 6px; background: #f4f7fb; }
.pr-beispiel h3 { margin: 6px 0 10px; color: var(--navy); font: 400 clamp(1.4rem, 2.4vw, 1.8rem)/1.2 var(--serif); }
.pr-beispiel p { max-width: 860px; margin: 0; line-height: 1.7; color: #33445c; }
.pr-beispiel .pr-vergleich { margin-top: 10px; color: var(--muted); font-size: .88rem; }
.pr-tabelle { margin-top: 20px; border: 1px solid #d8e4f2; border-radius: 6px; background: #fff; }
.pr-tabelle summary { padding: 16px 22px; color: var(--navy); font-weight: 700; cursor: pointer; }
.pr-tabelle-scroll { overflow-x: auto; padding: 0 22px; }
.pr-tabelle table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .88rem; }
.pr-tabelle th, .pr-tabelle td { padding: 10px 8px; border-bottom: 1px solid #e3ebf6; text-align: right; font-variant-numeric: tabular-nums; }
.pr-tabelle th:first-child { text-align: left; }
.pr-tabelle thead th { color: var(--muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.pr-tabelle th small { display: block; color: var(--muted); font-weight: 400; font-size: .7rem; text-transform: none; letter-spacing: 0; }
.pr-tabelle tbody th { color: var(--navy); }
.pr-tabelle > p { margin: 0; padding: 14px 22px 18px; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.pr-steuer { margin: 14px 0 0; color: var(--muted); font-size: .78rem; text-align: center; }
@media (max-width: 900px) {
  .pr-body { grid-template-columns: 1fr; }
  .pr-regeln { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .pr-groesse small { font-size: .68rem; }
  .pr-tool { padding: 10px 12px; gap: 10px; }
}
