.calc-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; margin-top: 40px; align-items: start; }
.calc-fields { border: 1px solid var(--aip-line); border-radius: 20px; padding: 28px; min-width: 0; background: #fff; }
.calc-fields legend { padding: 0 8px; font-weight: 600; font-size: 20px; }
.calc-field + .calc-field { margin-top: 24px; }
.calc-field label { display: block; font-weight: 600; font-size: 17px; line-height: 1.45; }
.calc-field input { display: block; width: 100%; min-width: 0; margin-top: 10px; padding: 14px 16px; border: 1px solid var(--aip-slate); border-radius: 10px; color: var(--aip-ink); background: #fff; font: inherit; font-size: 20px; }
.calc-field input:focus-visible, .calc-reset:focus-visible { outline: 3px solid var(--aip-accent); outline-offset: 3px; }
.calc-field input[aria-invalid="true"] { border-color: #a32323; }
.calc-hint { margin-top: 8px; font-size: 14px; color: var(--aip-text-2); line-height: 1.5; }
.calc-reset { margin-top: 24px; cursor: pointer; }
.calc-error { padding: 18px; border: 1px solid #a32323; border-radius: 12px; color: #761919; background: #fff3f3; line-height: 1.5; }
.calc-results[hidden], .calc-error[hidden] { display: none; }
.calc-results h3 { font-size: 26px; margin-bottom: 24px; }
.calc-result { padding: 24px; background: #fff; border: 1px solid var(--aip-line); border-radius: 18px; }
.calc-result + .calc-result { margin-top: 16px; }
.calc-result h4 { font-size: 20px; font-weight: 600; }
.calc-amounts { margin-top: 16px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.calc-amounts dt { font-size: 14px; color: var(--aip-text-2); }
.calc-amounts dd { margin: 6px 0 0; }
.calc-amounts output { font-size: 26px; font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.calc-formula { margin-top: 18px; font-size: 14px; line-height: 1.5; color: var(--aip-text-2); overflow-wrap: anywhere; }
.calc-method { max-width: 820px; }
.calc-method h3 { margin-top: 32px; font-size: 22px; }
@media (max-width: 1080px) { .calc-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; } }
@media (max-width: 760px) { .calc-fields { padding: 20px 16px; } .calc-result { padding: 22px 18px; } .calc-amounts { grid-template-columns: minmax(0, 1fr); } .calc-amounts output { font-size: 30px; } .calc-reset { width: 100%; } }

.cta2 .btn { white-space: normal; text-align: center; }
