.rahoitus-esittely .row { row-gap: 36px; }
.rahoitus-esittely .inner-column { margin: 0; padding: 0 18px 0 0; }
.rahoitus-esittely .sec-title { margin-bottom: 24px; }
.rahoitus-esittely .list-style-two li { margin-bottom: 14px; }
.rahoitus-esittely .rahoitus-huomio { margin-top: 24px; font-size: 15px; line-height: 1.65; }
.rahoitus-esittely .rahoitus-huomio a,
.rahoitus-esittely .op-hakulinkki { text-decoration: underline; text-underline-offset: 3px; }
.rahoitus-esittely .laskurikehys {
  padding: 32px;
  border: 1px solid #dce5ee;
  border-radius: 16px;
  background: #f5f8fb;
}
.rahoitus-esittely .laskurikehys h2 { font-size: 30px; margin: 0 0 12px; }
.rahoitus-esittely .laskurikehys .sub-title { display: block; color: #105188; font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.rahoitus-esittely .laskurin-ohje { margin-bottom: 24px; }
.rahoitus-esittely .op-jatko { border-top: 1px solid #dce5ee; margin-top: 24px; padding-top: 20px; }
.rahoitus-esittely .op-jatko p { font-size: 14px; line-height: 1.6; margin: 10px 0 0; }
.rahoitus-esittely .op-status { padding: 16px; background: #fff; border-radius: 8px; }
.rahoitus-esittely .op-retry { border: 1px solid #105188; border-radius: 6px; padding: 10px 16px; color: #105188; background: #fff; }
.rahoitus-esittely [hidden] { display: none !important; }

/* OP:n oletusasettelu perustuu ikkunan leveyteen. Tässä laskuri on palstassa. */
#op-rahoitus .op-keti__widget .op-keti__container {
  width: 100%; max-width: none; border: 0; padding: 0; background: transparent;
}
#op-rahoitus .op-keti__container > form { max-width: none; width: 100%; padding: 0; margin: 0; }
#op-rahoitus .op-keti__heading { display: none; }
#op-rahoitus .op-keti__fieldset { flex-direction: column; gap: 8px; padding: 0; margin-bottom: 22px; }
#op-rahoitus .op-keti__label-container { min-width: 0; max-width: none; flex-basis: auto; width: 100%; }
#op-rahoitus .op-keti__label-container label { font-size: 16px; margin-bottom: 0; }
#op-rahoitus .op-keti__label--text { display: inline; font-weight: 600; }
#op-rahoitus .op-keti__label--helper { display: inline; font-size: 13px; }
#op-rahoitus .op-keti__input-container { min-width: 0; }
#op-rahoitus .op-keti__input-wrapper { width: calc(100% - 104px); }
#op-rahoitus .op-keti__fieldset .op-keti__stepper { width: 44px; height: 48px; border-radius: 6px; }
#op-rahoitus .op-keti__input-amount { height: 48px; border-radius: 6px; font-size: 20px; font-weight: 600; }
#op-rahoitus .op-keti__prefix { top: 12px; }
#op-rahoitus .op-keti__sum-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 0; }
#op-rahoitus button.op-keti__sum-button { min-width: 0; height: 46px; border-radius: 6px; font-size: 15px; }
#op-rahoitus button.op-keti__sum-button.selected { background: #e6eff8; color: #105188; font-weight: 600; }
#op-rahoitus .op-keti__result-row { padding: 8px 0; margin: 0; }
#op-rahoitus .op-keti__result-row .op-keti__label-container { display: none; }
#op-rahoitus .op-keti__result-container { min-width: 0; width: 100%; flex-direction: column; gap: 12px; }
#op-rahoitus .op-keti__result-container > span:first-child {
  display: flex; flex-direction: column; gap: 6px;
  padding: 16px 20px; border: 1px solid #c5d8e9; border-left: 4px solid #105188;
  border-radius: 8px; background: #e6eff8; color: #105188;
  font-size: 15px; font-weight: 600; line-height: 1.4;
}
#op-rahoitus .op-keti__result {
  display: block; font-size: clamp(28px, 4vw, 34px); font-weight: 700;
  line-height: 1.2; font-variant-numeric: tabular-nums;
}
#op-rahoitus .op-keti__result-container span + span { margin-left: 0; }
#op-rahoitus .op-keti__form-submit-wrap .op-keti__form-submit-btn {
  display: block; width: 100%; max-width: none; min-height: 52px;
  margin: 24px 0; padding: 14px 12px; border-radius: 6px; font-size: 17px; line-height: 1.4;
}
#op-rahoitus .op-keti__container footer { display: block; }
#op-rahoitus .op-keti__container footer p { max-width: none; margin: 0; font-size: 13px; line-height: 1.6; }
#op-rahoitus .op-keti__container footer small { font-size: inherit; }
#op-rahoitus .op-keti__container footer .op-keti__form-submit-btn-alt { display: none; }
#op-rahoitus .op-keti__widget :focus-visible,
.rahoitus-esittely .op-retry:focus-visible,
.rahoitus-esittely .op-hakulinkki:focus-visible { outline: 3px solid #105188; outline-offset: 3px; }
#op-rahoitus[data-op-state="loading"] .op-keti__result-rows { visibility: hidden; }
#op-rahoitus[data-op-state="error"] .op-keti__widget { display: none; }

.rahoitus-vaiheet { background: #f5f8fb; }
.rahoitus-vaiheet::before { display: none; }
.rahoitus-vaiheet .inner-box { height: 100%; padding: 28px; border-radius: 12px; background: #fff; border: 1px solid #e2e9f0; }
.rahoitus-vaiheet .inner-box .h4 { font-size: 22px; margin-bottom: 14px; }
.rahoitus-vaiheet .inner-box p:last-child { margin-bottom: 0; }
.rahoitus-faq { padding-top: 80px; }
.rahoitus-cta .sec-title p { color: #fff; max-width: 720px; margin: 18px auto 0; }
@media (max-width: 991.98px) {
  .rahoitus-esittely .inner-column { padding: 0; }
  .rahoitus-esittely .laskurikehys { max-width: 680px; margin: 0 auto; }
}
@media (max-width: 575.98px) {
  .rahoitus-esittely, .rahoitus-vaiheet, .rahoitus-faq { padding-top: 48px; padding-bottom: 48px; }
  .rahoitus-esittely .laskurikehys { padding: 22px 16px; border-radius: 12px; }
  .rahoitus-esittely .laskurikehys h2 { font-size: 26px; }
  .rahoitus-vaiheet .inner-box { padding: 24px; }
}
@media (max-width: 359.98px) {
  #op-rahoitus .op-keti__sum-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
