.mtpc.mtpc-v11 {
  --accent: #7455a5;
  --accent-dark: #5c3f8a;
  --soft: #f7f3fb;
  --border: #ddd2eb;
  --error: #b42318;
  max-width: 1080px;
  margin: auto;
  color: #292334;
  overflow-x:hidden;
  font-family: system-ui, sans-serif;
}
.mtpc-v11.mtpc * { box-sizing: border-box; }
.mtpc-v11 .mtpc__hero { padding: 2rem; border: 1px solid #dac9ee; border-radius: 18px; background: linear-gradient(135deg,#f7f1ff,#e8dcf8); }
.mtpc-v11 .mtpc__eyebrow, .mtpc-v11.mtpc legend { color: var(--accent); font-weight: 800; }
.mtpc-v11 .mtpc__version { font-size: .875rem; }
.mtpc-v11 .mtpc__form { display: grid; gap: 1rem; margin-top: 1rem; }
.mtpc-v11 .mtpc__section { min-width: 0; padding: 1.25rem; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.mtpc-v11 .mtpc__section-note { color: #665c70; line-height: 1.55; }
.mtpc-v11 .mtpc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: stretch; }
.mtpc-v11 .mtpc__grid > *, .mtpc-v11 .mtpc__field { min-width: 0; }
.mtpc-v11 .mtpc__field { display: flex; flex-direction: column; align-self: stretch; gap: .4rem; overflow-wrap: normal; word-break: normal; }
.mtpc-v11 .mtpc__field--full { grid-column: 1 / -1; }
.mtpc-v11 .mtpc__field-label { display: grid; min-width: 0; gap: .4rem; font-weight: 650; line-height: 1.45; }
.mtpc-v11 .mtpc__field-note { display: block; color: #665c70; font-weight: 400; line-height: 1.5; }
.mtpc-v11 .mtpc__property-entrances { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.mtpc-v11 .mtpc__property-entrance { display: flex; align-items: flex-start; gap: .6rem; min-width: 0; padding: .85rem; border: 1px solid #cbbbe0; border-radius: 10px; background: var(--soft); cursor: pointer; }
.mtpc-v11 .mtpc__property-entrance input { width: 20px; min-height: 20px; flex: 0 0 20px; margin: .15rem 0 0; padding: 0; }
.mtpc-v11 .mtpc__property-entrance span { display: grid; gap: .2rem; min-width: 0; }
.mtpc-v11 .mtpc__property-entrance small { color: #665c70; font-weight: 400; line-height: 1.4; }
.mtpc-v11 .mtpc__field-error { min-height: 1.25em; color: var(--error); font-size: .875rem; line-height: 1.35; }
.mtpc-v11.mtpc input, .mtpc-v11.mtpc select, .mtpc-v11.mtpc button { min-width: 0; max-width: 100%; min-height: 44px; padding: .65rem .75rem; border: 1px solid #cbbbe0; border-radius: 8px; background: #fff; font: inherit; }
.mtpc-v11.mtpc input[type=number] { appearance: textfield; -moz-appearance: textfield; }
.mtpc-v11.mtpc input[type=number]::-webkit-inner-spin-button, .mtpc-v11.mtpc input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.mtpc-v11.mtpc input[aria-invalid="true"] { border-color: var(--error); box-shadow: 0 0 0 2px rgba(180,35,24,.13); }
.mtpc-v11.mtpc input:focus-visible, .mtpc-v11.mtpc select:focus-visible, .mtpc-v11.mtpc button:focus-visible, .mtpc-v11.mtpc summary:focus-visible { outline: 3px solid rgba(116,85,165,.3); outline-offset: 2px; }
.mtpc-v11 .mtpc__money { display: flex; align-items: center; gap: .5rem; min-width: 0; }
.mtpc-v11 .mtpc__money-input { width: 100%; }
.mtpc-v11 .mtpc__field--earnest { width: 50%; }
.mtpc-v11 .mtpc__check { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-weight: 500; }
.mtpc-v11 .mtpc__check input { width: 22px; min-height: 22px; flex: 0 0 22px; }
.mtpc-v11 .mtpc__conditional, .mtpc-v11 .mtpc__repeat { min-width: 0; margin-top: 1rem; padding: 1rem; border: 1px solid var(--border); border-radius: 12px; background: var(--soft); }
.mtpc-v11 .mtpc__repeat-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.mtpc-v11 .mtpc__repeat-header h3 { margin: 0; min-width: 0; }
.mtpc-v11.mtpc button { cursor: pointer; font-weight: 700; }
.mtpc-v11 .mtpc__secondary-action { width: min(100%, 240px); margin-top: 1rem; color: var(--accent-dark); border-color: var(--accent); background: #fff; }
.mtpc-v11 .mtpc__remove { width: auto; min-height: 36px !important; padding: .35rem .75rem !important; color: #554c5e; border-color: #bdb4c7 !important; background: #fff !important; font-size: .875rem !important; }
.mtpc-v11 .mtpc__actions { margin-top: .5rem; }
.mtpc-v11 .mtpc__submit { width: 100%; color: #fff; border-color: var(--accent-dark) !important; background: var(--accent) !important; font-size: 1.05rem !important; }
.mtpc-v11 .mtpc__submit:hover { background: var(--accent-dark) !important; }
.mtpc-v11 .mtpc__status { margin-top: .75rem; min-height: 1.5em; }
.mtpc-v11 .mtpc__results { margin-top: 1rem; padding: 1.25rem; border: 2px solid #b99ed9; border-radius: 14px; }
.mtpc-v11 .mtpc__summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.mtpc-v11 .mtpc__summary > div, .mtpc-v11 .mtpc__item > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; padding: .8rem; background: var(--soft); border-radius: 8px; }
.mtpc-v11 .mtpc__item { margin-bottom: .6rem; }
.mtpc-v11 .mtpc__badge { margin-left: auto; padding: .15rem .5rem; border-radius: 999px; background: #e8e0f2; font-size: .75rem; }
.mtpc-v11 .mtpc__badge--estimated { color: #704c00; background: #fff2c7; }
.mtpc-v11 .mtpc__badge--incomplete, .mtpc-v11 .mtpc__badge--unknown { color: #8b2017; background: #fee4e2; }
.mtpc-v11 .mtpc__badge--not_applicable { color: #4b5563; background: #e5e7eb; }
.mtpc-v11 .mtpc__basis { margin: .25rem .5rem .75rem; padding: .6rem .8rem; border-bottom: 1px solid var(--border); }
.mtpc-v11 .mtpc__basis summary { cursor: pointer; color: var(--accent-dark); font-weight: 700; }
.mtpc-v11 .mtpc__basis ul { display: grid; gap: .35rem; padding: 0; list-style: none; }
.mtpc-v11 .mtpc__basis li { display: flex; justify-content: space-between; gap: 1rem; }
.mtpc-v11 .mtpc__notice--unknown { padding: .8rem; border-left: 4px solid #8b5db4; background: #f7edff; color: #563371; }
.mtpc-v11 .mtpc__disclaimer { margin: 1rem 0; color: #665c70; font-size: .875rem; }
.mtpc-v11.mtpc [hidden] { display: none !important; }
@media(max-width:640px) {
  .mtpc-v11 .mtpc__field--earnest { width: 100%; }
  .mtpc-v11 .mtpc__grid, .mtpc-v11 .mtpc__summary, .mtpc-v11 .mtpc__property-entrances { grid-template-columns: minmax(0,1fr); }
  .mtpc-v11 .mtpc__field--full { grid-column: auto; }
  .mtpc-v11 .mtpc__hero, .mtpc-v11 .mtpc__section, .mtpc-v11 .mtpc__results { padding: 1rem; }
  .mtpc-v11 .mtpc__repeat { padding: .8rem; }
}
@media(max-width:390px) {
  .mtpc-v11 .mtpc__repeat-header { align-items: flex-start; }
  .mtpc-v11 .mtpc__basis li { display: grid; gap: .15rem; }
}

/* Ver.1.1.1 final pre-device UI alignment */
.mtpc__field > .mtpc__field-label > select,
.mtpc__field > .mtpc__field-label > input:not(.mtpc__money-input){max-width:34rem}
.mtpc__grid > .mtpc__field{align-self:start}
.mtpc__field--earnest{margin-block:1rem}
@media (max-width: 720px){.mtpc__field > .mtpc__field-label > select,.mtpc__field > .mtpc__field-label > input{max-width:none;width:100%}}

.mtpc-v11 .mtpc__headline-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;grid-column:1/-1}.mtpc-v11 .mtpc__headline-results>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;padding:.8rem;background:var(--soft);border-radius:8px}.mtpc-v11 .mtpc__summary-primary{grid-column:1/-1;padding:1.1rem!important;font-size:1.12em}.mtpc-v11 .mtpc__summary-primary strong{font-size:1.35em}.mtpc-v11 .mtpc__timing-results{grid-column:1/-1}.mtpc-v11 .mtpc__grid>.mtpc__field{display:flex;flex-direction:column}.mtpc-v11 .mtpc__grid>.mtpc__field>.mtpc__field-label{height:100%;align-content:start}.mtpc-v11 .mtpc__basis-conditions{margin:.5rem 0}
@media(max-width:720px){.mtpc-v11 .mtpc__headline-results{grid-template-columns:minmax(0,1fr)}}

/* Ver.1.1.1 screenshot acceptance UI */
.mtpc-v11 .mtpc__field--compact select{width:min(100%,24rem)}
.mtpc-v11 .mtpc__field--earnest{width:min(100%,32rem)}
.mtpc-v11 .mtpc__subsection-gap{margin-top:1.35rem}
.mtpc-v11 .mtpc__interim-compact{width:min(100%,32rem);margin-top:1rem;padding:.75rem 0}
.mtpc-v11 .mtpc__interim-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.45rem}
.mtpc-v11 .mtpc__help-toggle{display:inline-grid;place-items:center;width:1.55rem!important;min-width:1.55rem!important;min-height:1.55rem!important;padding:0!important;border-radius:999px!important;color:var(--accent-dark);background:#fff!important;font-size:.85rem!important}
.mtpc-v11 .mtpc__help{margin-top:.35rem;padding:.8rem 1rem;border-left:3px solid var(--accent);background:var(--soft);font-weight:400;line-height:1.6}
.mtpc-v11 .mtpc__help p{margin:.35rem 0}
.mtpc-v11 .mtpc__section-heading{grid-column:1/-1;margin:1rem 0 .2rem}
.mtpc-v11 .mtpc__timing-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.mtpc-v11 .mtpc__timing-group{padding:1rem;border:1px solid var(--border);border-radius:10px;background:#fff}
.mtpc-v11 .mtpc__timing-group h3{margin-top:0}
.mtpc-v11 .mtpc__timing-group ul{padding:0;list-style:none;display:grid;gap:.35rem}
.mtpc-v11 .mtpc__timing-group li,.mtpc-v11 .mtpc__cash-flow span{display:flex;justify-content:space-between;gap:1rem}
.mtpc-v11 .mtpc__cash-flow{display:grid;gap:.35rem;margin:.75rem 0;padding:.7rem;background:var(--soft);border-radius:8px;font-size:.9rem}
.mtpc-v11 .mtpc__prep{display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;padding-top:.8rem;border-top:2px solid var(--border);font-weight:700}
.mtpc-v11 .mtpc__summary-primary small{flex-basis:100%;color:#665c70;font-size:.8rem;font-weight:500}
.mtpc-v11 .mtpc__funding-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.mtpc-v11 .mtpc__funding-results>div{display:grid;gap:.35rem;padding:.8rem;background:var(--soft);border-radius:8px}
.mtpc-v11 .mtpc__basis{margin:.15rem .5rem .45rem;padding:.45rem .8rem}
@media(max-width:720px){.mtpc-v11 .mtpc__timing-results,.mtpc-v11 .mtpc__funding-results{grid-template-columns:minmax(0,1fr)}.mtpc-v11 .mtpc__field--compact select,.mtpc-v11 .mtpc__field--earnest,.mtpc-v11 .mtpc__interim-compact{width:100%;max-width:none}}


/* Regression guard: preserve the previously accepted two-column top alignment. */
@media(min-width:641px) {
  .mtpc-v11 .mtpc__grid > .mtpc__field > .mtpc__field-label[data-mtpc-aligned-label="true"] {
    display:grid; grid-template-rows:minmax(0,1fr) auto; align-content:stretch;
  }
  .mtpc-v11 .mtpc__grid > .mtpc__field > .mtpc__field-label[data-mtpc-aligned-label="true"] > input,
  .mtpc-v11 .mtpc__grid > .mtpc__field > .mtpc__field-label[data-mtpc-aligned-label="true"] > select,
  .mtpc-v11 .mtpc__grid > .mtpc__field > .mtpc__field-label[data-mtpc-aligned-label="true"] > .mtpc__money { align-self:end; }
}
.mtpc-v11 .mtpc__result-block{grid-column:1/-1;margin-top:.8rem}
.mtpc-v11 .mtpc__result-block>h4{margin:.2rem 0 .55rem}
.mtpc-v11 .mtpc__result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.mtpc-v11 .mtpc__result-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.8rem;background:var(--soft);border-radius:8px}
.mtpc-v11 .mtpc__result-card small{flex-basis:100%;color:#665c70;font-size:.8rem;font-weight:500;line-height:1.5}
.mtpc-v11 .mtpc__result-block--primary .mtpc__result-card{padding:1rem;border:1px solid #d7c6ea}
.mtpc-v11 .mtpc__result-block--primary .mtpc__result-card strong{font-size:1.35em}
.mtpc-v11 .mtpc__result-block--alerts{margin-top:1rem}
@media(max-width:720px){.mtpc-v11 .mtpc__result-grid{grid-template-columns:minmax(0,1fr)}}
/* Ver.1.1.1 final UI polish - formal limited scope */
@media (min-width:721px) {
  .mtpc-v11 [data-property-age] {
    grid-column:1 / -1;
    width:min(100%,34rem);
  }
  .mtpc-v11 .mtpc__field--compact select,
  .mtpc-v11 select[name="loan_usage"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="condo_land_right_state"] {
    width:min(100%,24rem);
    max-width:24rem;
  }
  .mtpc-v11 .mtpc__field--earnest .mtpc__money {
    width:min(100%,28rem);
  }
}
.mtpc-v11 .mtpc__field--earnest { margin-block:1.25rem .75rem; }
.mtpc-v11 .mtpc__subsection-gap { margin-top:1.5rem; }
.mtpc-v11 [data-interim] + .mtpc__secondary-action { margin-top:.5rem; }

.mtpc-v11 .mtpc__loan-help { max-width:52rem; margin-top:.6rem; }
.mtpc-v11 .mtpc__loan-help ul { margin:.55rem 0; padding-left:1.25rem; }
.mtpc-v11 .mtpc__loan-help li { margin:.3rem 0; line-height:1.55; }

.mtpc-v11 .mtpc__result-block { margin-top:1.15rem; }
.mtpc-v11 .mtpc__result-block--primary { margin-top:.35rem; }
.mtpc-v11 .mtpc__result-block--primary > h4 { font-size:1.08rem; }
.mtpc-v11 .mtpc__result-block--primary .mtpc__result-card { padding:1.15rem; }
.mtpc-v11 .mtpc__result-block--primary .mtpc__result-card strong { font-size:clamp(1.3rem,3.2vw,1.75rem); }
.mtpc-v11 .mtpc__result-card strong,
.mtpc-v11 .mtpc__timing-group strong,
.mtpc-v11 .mtpc__funding-results strong,
.mtpc-v11 .mtpc__cash-flow strong,
.mtpc-v11 .mtpc__prep strong {
  min-width:0;
  overflow-wrap:anywhere;
  text-align:right;
}
.mtpc-v11 .mtpc__timing-group,
.mtpc-v11 .mtpc__result-card,
.mtpc-v11 .mtpc__funding-results > div { min-width:0; }
.mtpc-v11 .mtpc__cash-flow { line-height:1.45; }

@media (max-width:720px) {
  .mtpc-v11 .mtpc__field--compact select,
  .mtpc-v11 select[name="loan_usage"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="condo_land_right_state"],
  .mtpc-v11 .mtpc__field--earnest,
  .mtpc-v11 .mtpc__field--earnest .mtpc__money {
    width:100%;
    max-width:none;
  }
  .mtpc-v11 .mtpc__help-toggle {
    min-width:2rem!important;
    width:2rem!important;
    min-height:2rem!important;
  }
  .mtpc-v11 .mtpc__timing-group li,
  .mtpc-v11 .mtpc__cash-flow span,
  .mtpc-v11 .mtpc__prep { align-items:flex-start; }
}
/* Ver.1.1.1 final real-device UI acceptance fixes */

/* Result amounts: never split a monetary value in the middle. */
.mtpc-v11 .mtpc__result-card strong,
.mtpc-v11 .mtpc__timing-group strong,
.mtpc-v11 .mtpc__funding-results strong,
.mtpc-v11 .mtpc__cash-flow strong,
.mtpc-v11 .mtpc__prep strong {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
}

/* Purchase summary: align the three cards and show the equation separately. */
.mtpc-v11 .mtpc__result-grid > .mtpc__result-card {
  display: grid;
  grid-template-rows: minmax(2.6em, auto) auto;
  align-content: start;
}
.mtpc-v11 .mtpc__purchase-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .45rem .65rem;
  margin-top: .65rem;
  padding: .7rem .85rem;
  background: var(--soft);
  border-radius: 8px;
}
.mtpc-v11 .mtpc__purchase-formula-amount {
  white-space: nowrap;
}

/* Timing: show the required cash first and keep the breakdown collapsible. */
.mtpc-v11 .mtpc__timing-group {
  align-content: start;
}
.mtpc-v11 .mtpc__prep--summary {
  margin-top: 0;
}
.mtpc-v11 .mtpc__timing-details {
  margin-top: .6rem;
}
.mtpc-v11 .mtpc__timing-details > summary {
  cursor: pointer;
  padding: .55rem .7rem;
  background: var(--soft);
  border-radius: 7px;
  font-weight: 700;
}
.mtpc-v11 .mtpc__timing-details-body {
  padding-top: .55rem;
}

/* Funding: keep labels and amounts visually aligned across all three cards. */
@media (min-width: 641px) {
  .mtpc-v11 .mtpc__funding-results > div {
    grid-template-rows: minmax(2.8em, auto) auto;
    align-content: start;
  }
}

/* Reduce only the spacing between the main result sections. */
.mtpc-v11 .mtpc__result-block {
  margin-top: .75rem;
}
.mtpc-v11 .mtpc__result-block--primary {
  margin-top: .25rem;
}

/* Desktop input-width corrections from real-device acceptance. */
@media (min-width: 641px) {
  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age] {
    grid-column: auto;
    width: auto;
  }

  .mtpc-v11 select[name="condo_land_right_state"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="loan_usage"] {
    width: 100%;
    max-width: none;
  }

  .mtpc-v11 .mtpc__field--earnest .mtpc__money {
    width: 100%;
    max-width: none;
  }
}

/* Ver.1.1.1 final scoped UI implementation */

/* Keep the new/used selector on its own row so settlement date and price
   remain in stable positions before and after property-age selection. */
@media (min-width: 641px) {
  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age] {
    grid-column: 1 / -1;
    width: min(100%, 34rem);
  }

  /* Real-device width corrections: do not stretch these controls
     across the whole two-column grid cell. */
  .mtpc-v11 select[name="condo_land_right_state"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="loan_usage"] {
    width: min(100%, 24rem);
    max-width: 24rem;
  }

  .mtpc-v11 .mtpc__field--earnest .mtpc__money {
    width: min(100%, 28rem);
    max-width: 28rem;
  }
}

/* Timing cards: use one consistent label/amount rule. */
.mtpc-v11 .mtpc__prep--summary,
.mtpc-v11 .mtpc__timing-group li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: 1rem;
}

.mtpc-v11 .mtpc__prep--summary > span,
.mtpc-v11 .mtpc__timing-group li > span {
  min-width: 0;
  line-height: 1.45;
}

.mtpc-v11 .mtpc__prep--summary > strong,
.mtpc-v11 .mtpc__timing-group li > strong {
  justify-self: end;
  white-space: nowrap;
  text-align: right;
}

/* Give timing cards enough horizontal room before using three columns.
   This avoids awkward one-character label wrapping on desktop. */
@media (min-width: 721px) and (max-width: 1040px) {
  .mtpc-v11 .mtpc__timing-results {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .mtpc-v11 .mtpc__prep--summary,
  .mtpc-v11 .mtpc__timing-group li {
    grid-template-columns: minmax(0, 1fr);
    row-gap: .2rem;
  }

  .mtpc-v11 .mtpc__prep--summary > strong,
  .mtpc-v11 .mtpc__timing-group li > strong {
    justify-self: end;
  }
}
/* =========================================================
   Ver.1.1.1 real-device UI correction candidate
   DISPLAY ONLY
   ========================================================= */

/* =========================================================
   A. INPUT WIDTHS
   Desktop reference:
   exactly one track of the existing two-column form grid.
   Grid gap is the existing 1rem.
   No guessed 24rem / 28rem / 34rem sizing.
   ========================================================= */
@media (min-width: 721px) {

  /* 新築・中古
     Put the field itself back into one normal grid track. */
  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age] {
    grid-column: auto;
    width: auto;
    max-width: none;
    min-width: 0;
  }

  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age] select {
    width: 100%;
    max-width: none;
  }

  /* The following controls live in full-row containers.
     Their exact width is one track of the same two-column grid:
     (container width - existing 1rem column gap) / 2. */
  .mtpc-v11 select[name="condo_land_right_state"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="loan_usage"] {
    width: calc((100% - 1rem) / 2);
    max-width: none;
  }

  /* 手付金: same exact one-track width. */
  .mtpc-v11 .mtpc__field--earnest {
    width: calc((100% - 1rem) / 2);
    max-width: none;
  }

  .mtpc-v11 .mtpc__field--earnest .mtpc__money,
  .mtpc-v11 .mtpc__field--earnest .mtpc__money-input {
    width: 100%;
    max-width: none;
  }
}

/* =========================================================
   B. MORTGAGE GUIDANCE
   Do not change its select width.
   Only make label/help text readable.
   ========================================================= */
.mtpc-v11 [data-key="mortgage_rate_guidance"] {
  min-width: 0;
}

.mtpc-v11 [data-key="mortgage_rate_guidance"] label,
.mtpc-v11 [data-key="mortgage_rate_guidance"] .mtpc__help,
.mtpc-v11 [data-key="mortgage_rate_guidance"] [data-help] {
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  line-height: 1.55;
}

/* =========================================================
   C. 購入全体
   Same label area / same amount position in all three cards.
   ========================================================= */
.mtpc-v11 .mtpc__result-grid > .mtpc__result-card {
  display: grid;
  grid-template-rows: minmax(3.4em, auto) auto;
  align-content: start;
  min-width: 0;
}

.mtpc-v11 .mtpc__result-grid > .mtpc__result-card > span {
  align-self: start;
  min-width: 0;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: normal;
}

.mtpc-v11 .mtpc__result-grid > .mtpc__result-card > strong {
  align-self: end;
  justify-self: end;
  white-space: nowrap;
  word-break: keep-all;
  text-align: right;
}

.mtpc-v11 .mtpc__purchase-formula {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .4rem .7rem;
}

.mtpc-v11 .mtpc__purchase-formula > span,
.mtpc-v11 .mtpc__purchase-formula > strong {
  word-break: keep-all;
  overflow-wrap: normal;
}

.mtpc-v11 .mtpc__purchase-formula-amount {
  white-space: nowrap;
  word-break: keep-all;
}

/* =========================================================
   D. いつ、いくら必要？
   No single-character Japanese line drops.
   Amounts never wrap.
   ========================================================= */
.mtpc-v11 .mtpc__timing-group {
  min-width: 0;
}

.mtpc-v11 .mtpc__prep--summary {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .35rem;
  min-width: 0;
}

.mtpc-v11 .mtpc__prep--summary > span {
  display: block;
  min-width: 0;
  line-height: 1.5;
  word-break: keep-all;
  overflow-wrap: normal;
}

.mtpc-v11 .mtpc__prep--summary > strong {
  display: block;
  align-self: flex-end;
  white-space: nowrap;
  word-break: keep-all;
  text-align: right;
}

/* =========================================================
   E. EXPANDED COST ROWS
   Label gets available width; amount owns a protected column.
   ========================================================= */
.mtpc-v11 .mtpc__timing-group li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: .75rem;
  row-gap: .25rem;
  min-width: 0;
}

.mtpc-v11 .mtpc__timing-group li > span {
  min-width: 0;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: normal;
}

.mtpc-v11 .mtpc__timing-group li > strong {
  justify-self: end;
  white-space: nowrap;
  word-break: keep-all;
  text-align: right;
}

/* =========================================================
   F. CLOSING FORMULA
   Keep all existing 4 lines.
   ========================================================= */
.mtpc-v11 .mtpc__cash-flow {
  display: grid;
  gap: .45rem;
  min-width: 0;
}

.mtpc-v11 .mtpc__cash-flow > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: .75rem;
  min-width: 0;
  line-height: 1.5;
  word-break: keep-all;
  overflow-wrap: normal;
}

.mtpc-v11 .mtpc__cash-flow > span > strong {
  justify-self: end;
  white-space: nowrap;
  word-break: keep-all;
  text-align: right;
}

/* If three timing cards become too narrow, preserve readable Japanese
   instead of forcing character-level wrapping. */
@media (min-width: 721px) and (max-width: 1180px) {
  .mtpc-v11 .mtpc__timing-results {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* =========================================================
   G. MOBILE
   ========================================================= */
@media (max-width: 720px) {
  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age],
  .mtpc-v11 .mtpc__grid > .mtpc__field[data-property-age] select,
  .mtpc-v11 select[name="condo_land_right_state"],
  .mtpc-v11 select[name="housing_certificate_state"],
  .mtpc-v11 select[name="loan_usage"],
  .mtpc-v11 .mtpc__field--earnest,
  .mtpc-v11 .mtpc__field--earnest .mtpc__money,
  .mtpc-v11 .mtpc__field--earnest .mtpc__money-input {
    width: 100%;
    max-width: none;
  }

  .mtpc-v11 .mtpc__timing-group li,
  .mtpc-v11 .mtpc__cash-flow > span {
    grid-template-columns: minmax(0, 1fr);
  }

  .mtpc-v11 .mtpc__timing-group li > strong,
  .mtpc-v11 .mtpc__cash-flow > span > strong {
    justify-self: end;
  }
}

/* =========================================================
   Ver.1.1.1 real-device UI acceptance correction 2
   DISPLAY ONLY
   Only confirmed remaining real-device failures.
   ========================================================= */

/* 1. 購入価格（税込）
   Do not let the desktop label-height alignment create the
   abnormal blank space above this input. */
@media (min-width: 641px) {
  .mtpc-v11 .mtpc__field:has(> .mtpc__field-label[for="mtpc-price"]) >
  .mtpc__field-label[for="mtpc-price"] {
    height: auto;
  }
}

/* 2. Confirmed Japanese orphan wrapping.
   Do not change control widths. */
.mtpc-v11 .mtpc__field-label,
.mtpc-v11 .mtpc__loan-card label,
.mtpc-v11 .mtpc__loan-card .mtpc__field-label {
  word-break: keep-all;
  overflow-wrap: normal;
}

/* 3. 購入全体
   Keep the three existing cards; only standardize amount position. */
.mtpc-v11 .mtpc__result-grid > .mtpc__result-card > strong {
  width: 100%;
  justify-self: stretch;
  text-align: right;
}

/* 4. いつ、いくら必要？ 詳細
   First row = item label.
   Second row = amount, right aligned. */
.mtpc-v11 .mtpc__timing-group li {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: .2rem;
}

.mtpc-v11 .mtpc__timing-group li > span {
  width: 100%;
  min-width: 0;
}

.mtpc-v11 .mtpc__timing-group li > strong {
  width: 100%;
  justify-self: stretch;
  text-align: right;
  white-space: nowrap;
}

/* 5. 決済・引渡し時の4行計算
   Keep every existing formula line.
   First row = description.
   Second row = amount, right aligned. */
.mtpc-v11 .mtpc__cash-flow > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  row-gap: .2rem;
}

.mtpc-v11 .mtpc__cash-flow > span > strong {
  width: 100%;
  justify-self: stretch;
  text-align: right;
  white-space: nowrap;
}
/* =========================================================
   Ver.1.1.1 real-device UI final correction 3
   DISPLAY ONLY
   Confirmed real-device failures only.
   ========================================================= */

/* ---------------------------------------------------------
   4. 購入全体
   Labels stay LEFT.
   Amounts align to the RIGHT edge of each card.
   --------------------------------------------------------- */
.mtpc-v11 .mtpc__result-grid > .mtpc__result-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(3.4em, auto) auto;
  align-content: start;
  min-width: 0;
}

.mtpc-v11 .mtpc__result-grid > .mtpc__result-card > span {
  display: block;
  width: 100%;
  min-width: 0;
  justify-self: stretch;
  text-align: left;
}

.mtpc-v11 .mtpc__result-grid > .mtpc__result-card > strong {
  display: block;
  width: 100%;
  justify-self: stretch;
  align-self: end;
  text-align: right !important;
  white-space: nowrap;
}

/* ---------------------------------------------------------
   5. いつ、いくら必要？ expanded details
   Row 1 = label
   Row 2 = amount aligned RIGHT
   --------------------------------------------------------- */
.mtpc-v11 .mtpc__timing-group li {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  row-gap: .2rem;
  min-width: 0;
}

.mtpc-v11 .mtpc__timing-group li > span {
  display: block;
  width: 100%;
  min-width: 0;
  line-height: 1.45;
}

.mtpc-v11 .mtpc__timing-group li > strong {
  display: block;
  width: 100%;
  justify-self: stretch;
  text-align: right;
  white-space: nowrap;
}

/* ---------------------------------------------------------
   6. 決済・引渡し時の4行計算
   KEEP ALL FOUR LINES.
   Row 1 = description
   Row 2 = amount aligned RIGHT
   --------------------------------------------------------- */
.mtpc-v11 .mtpc__cash-flow > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  row-gap: .2rem;
  min-width: 0;
}

.mtpc-v11 .mtpc__cash-flow > span > strong {
  display: block;
  width: 100%;
  justify-self: stretch;
  text-align: right;
  white-space: nowrap;
}
/* =========================================================
   Ver.1.1.1 candidate5
   EXACTLY FOUR AUTHORIZED REAL-DEVICE UI CORRECTIONS
   ========================================================= */

/* FIX 1
   購入価格:
   Candidate15 final alignment after shortening the neighbouring label.
   AUTHORIZED CHANGE AREA ONLY.

   The neighbouring building-consumption-tax label is now a concise
   single-line label. No artificial vertical translation is applied
   to the purchase-price control.
*/
.mtpc-v11 .mtpc__field:has(> .mtpc__field-label[for="mtpc-price"]) {
  display: grid;
  grid-template-rows: auto auto auto;
  align-content: start;
  align-self: start;
  gap: .4rem;
}

.mtpc-v11 .mtpc__field > .mtpc__field-label[for="mtpc-price"] {
  display: block;
  height: auto !important;
  min-height: 0;
  align-self: start;
  align-content: normal;
  margin: 0;
}

.mtpc-v11 .mtpc__field:has(> .mtpc__field-label[for="mtpc-price"]) > .mtpc__money {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  align-self: start;
}

.mtpc-v11 .mtpc__field:has(> .mtpc__field-label[for="mtpc-price"]) .mtpc__money-input {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
}

.mtpc-v11 #mtpc-price-error:empty {
  min-height: 0;
}

@media (min-width: 641px) {
  .mtpc-v11 .mtpc__field >
  .mtpc__field-label[for="mtpc-price"][data-mtpc-aligned-label="true"] {
    display: block;
    height: auto !important;
    min-height: 0;
    align-self: start;
    align-content: normal;
    margin: 0;
  }
}
/* FIX 2
   建物消費税:
   Keep the field in the existing right grid column.
   Give the control normal right-side breathing room and
   allow the Japanese question to wrap naturally.
*/
.mtpc-v11 .mtpc__field:has(select[name="building_consumption_tax_state"]) {
  min-width: 0;
  padding-right: 1rem;
  box-sizing: border-box;
}

.mtpc-v11 .mtpc__field:has(select[name="building_consumption_tax_state"]) > .mtpc__field-label {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

.mtpc-v11 select[name="building_consumption_tax_state"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}


/* FIX 3
   契約書記載金額:
   Left 売買契約日 remains untouched.
   Apply balanced side whitespace only to the right field.
*/
.mtpc-v11 .mtpc__conditional.mtpc__grid
  > .mtpc__field.mtpc__field--compact:has(select[name="contract_stated_amount_relation"]) {
  min-width: 0;
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

.mtpc-v11 .mtpc__field:has(select[name="contract_stated_amount_relation"])
  > .mtpc__field-label {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.mtpc-v11 .mtpc__field:has(select[name="contract_stated_amount_relation"])
  > .mtpc__field-label > span {
  display: block;
  width: 100%;
  min-width: 0;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

.mtpc-v11 select[name="contract_stated_amount_relation"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}


/* FIX 4
   住宅ローン／資金調達 → 税金・諸費用の内訳:
   Do not resize/reposition the loan cards.
   Space the next heading from the funding-results/alerts area.
*/
.mtpc-v11 [data-mtpc-loan] + [data-mtpc-alerts] + h4 {
  margin-top: 1rem;
}

 /* =========================================================
    Ver.1.1.1 iPhone SE pre-financing field limited correction
    DISPLAY ONLY
    Scope: pre_financing_cost_state only.
    No other field, layout, value, or calculation is changed.
    ========================================================= */
@media (max-width: 390px) {
  .mtpc-v11 .mtpc__field:has(select[name="pre_financing_cost_state"]) {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .mtpc-v11 .mtpc__field:has(select[name="pre_financing_cost_state"])
    > .mtpc__field-label {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
  }

  .mtpc-v11 select[name="pre_financing_cost_state"] {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
}