#mortgage-app {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto 6rem;
}
.mortgage-app-shell { position: relative; }
.mortgage-app-header { margin-bottom: 1.5rem; text-align: center; }
.mortgage-kicker { color: #986b2b; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 0.5rem; }
.mortgage-title { font-family: "Roboto Slab", serif; font-size: clamp(2rem, 2.4vw, 3rem); line-height: 1.1; color: #13213a; margin-bottom: 0.75rem; }
.mortgage-subtitle { max-width: 720px; margin: 0 auto; color: #42526b; }
.mortgage-progress { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 0.75rem; list-style: none; padding: 0; margin: 2rem 0; }
.mortgage-progress-item { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; padding: 0.8rem 0.4rem; border-radius: 18px; background: rgba(19, 33, 58, 0.05); border: 1px solid rgba(19, 33, 58, 0.08); text-align: center; }
.mortgage-progress-item--current { background: linear-gradient(180deg, rgba(152, 107, 43, 0.16), rgba(152, 107, 43, 0.08)); border-color: rgba(152, 107, 43, 0.35); }
.mortgage-progress-item--complete { background: linear-gradient(180deg, rgba(46, 125, 50, 0.14), rgba(46, 125, 50, 0.06)); border-color: rgba(46, 125, 50, 0.26); }
.mortgage-progress-index { width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: 999px; background: #13213a; color: #fff; font-size: 0.875rem; font-weight: 700; }
.mortgage-progress-label { font-size: 0.8rem; line-height: 1.2; color: #13213a; font-weight: 600; }
.mortgage-step-card, .mortgage-success-card { background: #fff; border: 1px solid rgba(19, 33, 58, 0.08); border-radius: 28px; box-shadow: 0 20px 60px rgba(19, 33, 58, 0.08); padding: 1.5rem; }
.mortgage-step-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; }
.mortgage-step-meta { color: #986b2b; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 0.35rem; }
.mortgage-step-title { font-family: "Roboto Slab", serif; color: #13213a; font-size: 1.5rem; }
.mortgage-save-button { background: rgba(19, 33, 58, 0.06); color: #13213a; border: 1px solid rgba(19, 33, 58, 0.1); border-radius: 999px; padding: 0.8rem 1rem; font-weight: 700; cursor: pointer; }
.mortgage-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.mortgage-field,.mortgage-section-break,.mortgage-richtext,.mortgage-review-note { grid-column: span 1; }
.mortgage-field--full,.mortgage-section-break,.mortgage-richtext,.mortgage-review-note { grid-column: 1 / -1; }
.mortgage-label,.mortgage-sublabel { display: block; font-weight: 700; color: #13213a; margin-bottom: 0.4rem; }
.mortgage-required { color: #b42318; }
.mortgage-field-description { color: #5b667a; font-size: 0.92rem; margin-bottom: 0.55rem; }
.mortgage-input,.mortgage-select { width: 100%; min-height: 54px; padding: 0.9rem 1rem; border-radius: 16px; border: 1px solid rgba(19, 33, 58, 0.14); background: #fff; color: #13213a; outline: none; transition: border-color 0.18s ease, box-shadow 0.18s ease; }
.mortgage-input:focus,.mortgage-select:focus { border-color: rgba(152, 107, 43, 0.75); box-shadow: 0 0 0 4px rgba(152, 107, 43, 0.12); }
.mortgage-field--error .mortgage-input,.mortgage-field--error .mortgage-select { border-color: #d92d20; }
.mortgage-error { color: #b42318; font-size: 0.9rem; margin-top: 0.45rem; }
.mortgage-radio-group { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.mortgage-choice { display: inline-flex; align-items: center; gap: 0.55rem; min-height: 54px; padding: 0.9rem 1rem; border-radius: 16px; border: 1px solid rgba(19, 33, 58, 0.14); background: #fff; cursor: pointer; }
.mortgage-choice input { margin: 0; }
.mortgage-address-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; }
.mortgage-subfield:first-child,.mortgage-subfield:nth-child(2) { grid-column: 1 / -1; }
.mortgage-section-break { padding-top: 0.25rem; border-top: 1px solid rgba(19, 33, 58, 0.08); margin-top: 0.25rem; }
.mortgage-section-break h3 { font-family: "Roboto Slab", serif; color: #13213a; font-size: 1.15rem; }
.mortgage-richtext { color: #42526b; background: rgba(19, 33, 58, 0.03); border-radius: 18px; padding: 1rem; }
.mortgage-review-note { margin-top: 1rem; border-radius: 18px; background: rgba(152, 107, 43, 0.08); color: #13213a; padding: 1rem 1.1rem; }
.mortgage-actions { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.mortgage-button { min-height: 56px; padding: 0.95rem 1.35rem; border-radius: 999px; font-weight: 700; cursor: pointer; }
.mortgage-button[disabled],.mortgage-save-button[disabled] { opacity: 0.45; cursor: not-allowed; }
.mortgage-button--primary { background: linear-gradient(135deg, #986b2b, #c89750); color: #fff; }
.mortgage-button--secondary { background: #fff; color: #13213a; border: 1px solid rgba(19, 33, 58, 0.14); }
@media (max-width: 991px) { .mortgage-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  #mortgage-app { width: min(100%, calc(100% - 1rem)); }
  .mortgage-grid, .mortgage-address-grid, .mortgage-progress { grid-template-columns: 1fr; }
  .mortgage-step-header, .mortgage-actions { flex-direction: column; }
  .mortgage-button, .mortgage-save-button { width: 100%; }
}
.mortgage-field {
  display: flex;
  flex-direction: column;
}

.mortgage-field__head {
  min-height: 78px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.mortgage-field__label {
  display: block;
  margin-bottom: 8px;
}

.mortgage-field__description {
  min-height: 24px;
  margin: 0;
  line-height: 1.4;
  color: #5f6f8a;
}

.mortgage-field__description:empty::before {
  content: "\00a0";
}
.mortgage-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}

@media (max-width: 900px) {
  .mortgage-fields-grid {
    grid-template-columns: 1fr;
  }
}.is-invalid {
  border-color: #b42318 !important;
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.mortgage-field__error {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.4;
  color: #b42318;
}.mortgage-field__head {
  min-height: 78px;
}

.mortgage-field__description:empty::before {
  content: "\00a0";
}