/* Kaufnebenkosten-Rechner – geteilte Styles für Hub (/kaufnebenkosten/) und die
   16 Bundesland-Seiten (/kaufnebenkosten/<slug>/). Einzige Quelle (SSOT). */

.kn-map{height:340px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);margin-top:10px}
.kn-loc-hint{font-size:13px;color:var(--text-secondary);margin:8px 0 0;line-height:1.55}
.kn-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:18px 0}
.kn-field{display:flex;flex-direction:column;gap:6px}
.kn-field label{font-size:13px;font-weight:600;color:var(--text)}
.kn-field .kn-sub{font-weight:400;color:var(--text-secondary);font-size:12px}
.kn-input,.kn-select{width:100%;padding:11px 12px;font-size:15px;border:1px solid var(--border);
  border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:inherit}
.kn-input:focus,.kn-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}
.kn-input-euro{position:relative}
.kn-input-euro input{padding-right:30px}
.kn-input-euro::after{content:"€";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:15px;pointer-events:none}
.kn-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.kn-switch-row .kn-switch-txt{font-size:14px;color:var(--text)}
.kn-switch-row .kn-sub{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px}
/* Toggle */
.kn-switch{position:relative;display:inline-block;width:44px;height:24px;flex:none}
.kn-switch input{opacity:0;width:0;height:0}
.kn-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);transition:.2s;border-radius:24px}
.kn-slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;transition:.2s;border-radius:50%}
.kn-switch input:checked + .kn-slider{background:var(--primary)}
.kn-switch input:checked + .kn-slider::before{transform:translateX(20px)}
/* Ergebnis */
.kn-result{margin-top:8px}
.kn-result-head{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:18px}
.kn-donut{flex:none}
.kn-sum-box{flex:1;min-width:200px}
.kn-sum-big{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}
.kn-sum-label{font-size:13px;color:var(--text-secondary);margin-top:2px}
.kn-quote{display:inline-block;margin-top:8px;padding:3px 10px;border-radius:var(--radius-pill);
  background:var(--primary-light);color:var(--primary);font-size:13px;font-weight:600}
.kn-table{width:100%;border-collapse:collapse;font-size:14px}
.kn-table td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.kn-table tr:last-child td{border-bottom:none}
.kn-legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;flex:none}
.kn-td-label{color:var(--text)}
.kn-td-sub{display:block;font-size:12px;color:var(--text-secondary);margin-top:1px}
.kn-td-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text)}
.kn-td-pct{text-align:right;white-space:nowrap;color:var(--text-secondary);font-size:13px;width:64px}
.kn-total-row td{border-top:2px solid var(--border);font-weight:700;padding-top:12px}
.kn-hint{font-size:13px;color:var(--text-secondary);margin-top:10px;line-height:1.55}
.kn-affiliate{margin:18px 0 0;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.kn-affiliate .kn-aff-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 4px}
.kn-cta-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:var(--primary);color:#fff;
  border-radius:var(--radius-pill);text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap}
.kn-adslot{min-height:280px;margin:22px 0}
/* Bundesland-Navigation (SEO-Verlinkung Hub <-> 16 Länderseiten) */
.kn-laender-nav{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.kn-laender-nav a,.kn-laender-nav span{font-size:13px;padding:6px 12px;border-radius:var(--radius-pill);
  border:1px solid var(--border);text-decoration:none;color:var(--text-secondary);background:var(--surface);white-space:nowrap}
.kn-laender-nav a:hover{border-color:var(--primary);color:var(--primary)}
.kn-laender-nav span.current{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}
/* Landesspezifische Infobox (z.B. Hessengeld) */
.kn-info-box{margin:22px 0;padding:16px 18px;border:1px solid #BFDBFE;border-left:3px solid var(--primary);
  border-radius:var(--radius);background:var(--primary-light)}
.kn-info-box strong{color:var(--text)}
@media(min-width:560px){.kn-grid{grid-template-columns:1fr 1fr}.kn-field-full{grid-column:1/-1}}
@media(max-width:640px){.kn-map{height:300px}}
