.pkv-loan-cost {
    --pkv-border: #c8d2da;
    --pkv-ink: #173242;
    --pkv-accent: #126047;
    color: var(--pkv-ink);
    background: #f7faf9;
    border: 1px solid var(--pkv-border);
    border-radius: 12px;
    padding: clamp(18px, 3vw, 32px);
    margin: 24px 0;
}
.pkv-loan-cost *, .pkv-loan-cost *::before, .pkv-loan-cost *::after { box-sizing: border-box; }
.pkv-loan-cost [hidden] { display: none !important; }
.pkv-loan-cost h2, .pkv-loan-cost h3 { color: var(--pkv-ink); }
.pkv-loan-cost h2 { font-size: clamp(1.35rem, 2.8vw, 1.8rem); margin: 0 0 12px; }
.pkv-loan-cost p { line-height: 1.6; }
.pkv-loan-cost__intro { margin-bottom: 20px; }
.pkv-loan-cost__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pkv-loan-cost__field { min-width: 0; }
.pkv-loan-cost__field label { display: block; font-weight: 700; margin: 0 0 6px; }
.pkv-loan-cost .pkv-loan-cost__field input[type="text"] {
    display: block;
    width: 100%;
    min-height: 48px;
    margin: 0 0 6px;
    padding: 10px 12px;
    color: var(--pkv-ink);
    background: #fff;
    border: 1px solid #8397a5;
    border-radius: 6px;
    font: inherit;
    font-size: 1rem;
    box-shadow: none;
}
.pkv-loan-cost__field small { display: block; line-height: 1.4; color: #405b6a; }
.pkv-loan-cost__field input[aria-invalid="true"] { border: 2px solid #a22222; }
.pkv-loan-cost__error { display: block; color: #a22222; font-weight: 600; margin-top: 6px; }
.pkv-loan-cost__button {
    display: inline-block;
    min-height: 48px;
    margin: 24px 0 0;
    padding: 12px 20px;
    border: 2px solid var(--pkv-accent);
    border-radius: 6px;
    background: var(--pkv-accent);
    color: #fff;
    font: inherit;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: none;
    cursor: pointer;
}
.pkv-loan-cost__button:hover { background: #0c4834; color: #fff; border-color: #0c4834; }
.pkv-loan-cost :focus-visible { outline: 3px solid #164bb4; outline-offset: 3px; }
.pkv-loan-cost__status { margin: 16px 0; font-weight: 600; }
.pkv-loan-cost__totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 16px; }
.pkv-loan-cost__totals > div { padding: 16px; background: #fff; border: 1px solid var(--pkv-border); border-radius: 6px; }
.pkv-loan-cost .pkv-loan-cost__totals dt { display: block; float: none; margin: 0 0 6px; font-weight: 500; text-transform: none; letter-spacing: normal; }
.pkv-loan-cost .pkv-loan-cost__totals dd { display: block; float: none; margin: 0; font-size: 1.4rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.pkv-loan-cost__totals > .pkv-loan-cost__grand-total { background: #e5f2ec; }
.pkv-loan-cost__schedule summary { cursor: pointer; font-weight: 700; padding: 14px 0; min-height: 48px; }
.pkv-loan-cost__table-scroll { overflow-x: auto; border: 1px solid var(--pkv-border); border-radius: 6px; }
.pkv-loan-cost table { width: 100%; min-width: 620px; margin: 0; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.pkv-loan-cost caption { text-align: left; padding: 12px; line-height: 1.5; color: #405b6a; }
.pkv-loan-cost th, .pkv-loan-cost td { padding: 10px 12px; text-align: right; color: var(--pkv-ink); border-bottom: 1px solid #dce3e6; font-size: .9rem; }
.pkv-loan-cost th:first-child { text-align: left; }
.pkv-loan-cost thead th { background: #eaf0f3; font-weight: 700; text-transform: none; letter-spacing: normal; }
.pkv-loan-cost tbody tr:nth-child(even) { background: #fff; }
.pkv-loan-cost__assumptions, .pkv-loan-cost__privacy { font-size: .9rem; color: #405b6a; margin-top: 20px; }
@media (max-width: 600px) {
    .pkv-loan-cost__fields, .pkv-loan-cost__totals { grid-template-columns: 1fr; }
    .pkv-loan-cost__button { width: 100%; }
}
