/* v23: keep the first read short, retain the full approved explanations. */
.benefit-preview { list-style: none; padding: 0; margin: 0; }
.benefit-preview li { margin: 0 0 .875rem; color: var(--benefit-ink); font-weight: 650; font-size: 1rem; line-height: 1.75; }
.benefit-essential, .essential-note { font-size: .8125rem; color: #526874; line-height: 1.8; margin: .75rem 0; }
.lp-disclosure { margin-top: .75rem; min-width: 0; }
.lp-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; list-style: none; cursor: pointer; font-size: .875rem; font-weight: 500; line-height: 1.7; color: #285f7b; padding: .5rem 0; text-decoration: none; }
.lp-disclosure > summary::-webkit-details-marker { display: none; }
.lp-disclosure > summary::after { content: '+'; font-size: 1.125rem; flex: none; line-height: 1; }
.lp-disclosure[open] > summary::after { content: '−'; }
.lp-disclosure > summary:focus-visible, .problem-solution > summary:focus-visible { outline: 2px solid #2788b0; outline-offset: 4px; }
.disclosure-body { padding: .5rem 0 .75rem; }
.disclosure-body p { margin: .25rem 0 .75rem; }
.benefit-more .benefits-note { margin-top: 1.25rem; }
.lp-disclosure .service-story-notes { margin-top: 0; }
.disclosure-body .proof-source, .disclosure-body .problem-note, .disclosure-body .compare-payment-note { margin-top: 0; }
.problem-solution { min-width: 0; background: #fff; border-radius: .375rem; }
.problem-solution > summary { list-style: none; display: block; padding: 1rem 1.5rem; color: #285f7b; cursor: pointer; }
.problem-solution > summary::-webkit-details-marker { display: none; }
.problem-solution > summary > span { display: flex; justify-content: space-between; align-items: center; font-size: .875rem; margin-bottom: .375rem; }
.problem-solution > summary > span::after { content: '+'; font-size: 1.25rem; }
.problem-solution[open] > summary > span::after { content: '−'; }
.problem-solution > summary strong { display: block; color: #173b4c; font-size: 1rem; font-weight: 600; line-height: 1.75; }
.lp-finish .problem-solution .answer-side { padding-top: 0; }
/* A distinctive navy shell, white reading areas, and navy totals. */
.lp-finish .simulator .sim-columns { gap: 1.25rem; align-items: stretch; }
.lp-finish .simulator .sim-column, .lp-finish .simulator .sim-column.rent { display: flex; flex-direction: column; background: #fff; color: #173b4c; padding: 1.25rem; border: 0; border-radius: .375rem; }
.lp-finish .simulator .sim-column.rent { background: #edf7fb; }
.lp-finish .simulator .sim-col-head { min-height: 9.5rem; padding-bottom: .75rem; border-color: #d3e2e9; }
.lp-finish .simulator .sim-col-head h4 { color: #173b4c; font-size: 1.25rem; }
.lp-finish .simulator .sim-base strong { color: #173b4c; }
.lp-finish .simulator .sim-base small, .lp-finish .simulator #rentalBaseNote { color: #4d6572; }
.lp-finish .simulator .timeline { flex: 1; }
.lp-finish .simulator .event { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .75rem; min-height: 6.5rem; padding: 1rem 0; border-bottom: 1px solid #d3e2e9; color: #173b4c; }
.lp-finish .simulator .event b { font-size: .9375rem; color: #173b4c; }
.lp-finish .simulator .event span { color: #4d6572; font-size: .8125rem; }
.lp-finish .simulator .event em { color: #173b4c; font-size: .9375rem; }
.lp-finish .simulator .sim-result { margin-top: auto; padding: 1rem; background: #173b4c; color: #fff; border-radius: .25rem; }
.lp-finish .simulator .sim-result span, .lp-finish .simulator #rentTotalNote { color: #d3e7f0; }
.lp-finish .simulator .sim-result strong { color: #fff; font-size: clamp(1.75rem,3vw,2.25rem); }
.lp-finish .simulator .payment-discount { color: #3d5a69; font-size: .8125rem; margin-top: .875rem; line-height: 1.8; }
.lp-finish .simulator .payment-discount b { font-size: .8125rem; color: #215f7d; }
.after-third-year { margin: 2.25rem auto 0; max-width: 960px; padding: .5rem 0; }
.after-third-year h3 { font-size: 1.125rem; font-family: var(--sans); color: #173b4c; margin: 0 0 1rem; }
.after-third-year p { color: #425c68; font-size: 1rem; line-height: 1.95; margin: 0 0 1rem; }
.after-third-year .after-third-year-main { color: #1c6587; font-weight: 650; font-size: 1.25rem; line-height: 1.8; margin: 1.5rem 0 1rem; }
.response-band-detail .lp-disclosure summary { color: inherit; }
.response-band-detail .disclosure-body small { display: block; }
.renewal-explanation .choice-essential { font-size: .8125rem; color: #536a75; font-weight: 400; }
.renewal-explanation .lp-disclosure summary { color: var(--choice-ink); }
.renewal-explanation .disclosure-body p { font-size: .875rem; }
.renewal-explanation .renewal-explanation-lead { font-size: .9375rem; font-weight: 500; margin-bottom: .5rem; }
.lp-finish .buyout-common-note { font-size: .875rem; }
.plan-common .lp-disclosure { max-width: 50rem; margin-inline: auto; text-align: left; }
.consult h2 { font-size: clamp(1.375rem,2vw,1.75rem); }
/* Same form fields, a smaller footprint. 16px controls prevent mobile focus zoom. */
.modal .modal-panel { padding: 22px; }
.modal h2 { margin-bottom: 5px; font-size: 1.375rem; }
.modal .modal-panel > p { margin: 0; line-height: 1.6; font-size: .8125rem; }
.contact-form { gap: 9px; margin-top: 12px; }
.contact-form label { font-size: .8125rem; font-weight: 600; line-height: 1.45; min-width: 0; }
.contact-identity, .contact-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.contact-form input:not([type=checkbox]), .contact-form select { min-width: 0; min-height: 38px; padding: 7px 9px; font-size: 16px; border-radius: 6px; margin-top: 3px; }
.contact-form textarea { min-height: 44px; height: 44px; max-height: 132px; padding: 7px 9px; font-size: 16px; line-height: 1.45; margin-top: 3px; border-radius: 6px; }
.modal .contact-hint { margin: -3px 0 0; font-size: .75rem; line-height: 1.5; }
.contact-form button[type=submit] { min-height: 44px; font-size: .9375rem; }
.contact-form label:has(input[type=checkbox]) { font-size: .75rem; line-height: 1.5; }
@media(max-width:800px) {
  .lp-finish .problem-card { grid-template-rows: auto auto; }
  .lp-finish .problem-card .solution-arrow { display: none; }
  .benefit-preview li { margin-bottom: .625rem; font-size: .9375rem; }
  .benefits-detail { padding-top: 1.25rem; padding-bottom: 1.5rem; }
  .benefits-category { margin-bottom: 1rem; }
  .renewal-explanations { gap: 1.25rem; }
  .after-third-year p { font-size: .9375rem; }
  .after-third-year .after-third-year-main { font-size: 1.125rem; }
}
@media(max-width:600px) {
  .lp-finish .simulator { padding: 1.5rem 1rem; }
  .lp-finish .simulator .sim-columns { gap: 1rem; }
  .lp-finish .simulator .sim-column { padding: 1rem; }
  .lp-finish .simulator .sim-col-head { min-height: 0; margin-bottom: .5rem; }
  .lp-finish .simulator .event { min-height: 5.5rem; }
  .modal .modal-panel { padding: 20px 16px calc(16px + env(safe-area-inset-bottom)); }
  .contact-form { gap: 8px; }
  .contact-form .contact-choice, .contact-identity { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
}
@media(max-width:340px) {
  .contact-identity { grid-template-columns: 1fr; }
}

/* v24: each heading appears once; disclosure copy has its own reading rhythm. */
.benefit-point { border-bottom: 1px solid #e5ecef; }
.benefit-point:last-child { border-bottom: 0; }
.benefit-point > summary { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .9rem 0; list-style: none; cursor: pointer; color: var(--benefit-ink); font-size: .9375rem; font-weight: 600; line-height: 1.8; }
.benefit-point > summary::-webkit-details-marker { display: none; }
.benefit-point > summary::after { content: '+'; flex: none; color: var(--benefit-ink); font-size: 1.125rem; font-weight: 400; }
.benefit-point[open] > summary::after, .lp-disclosure[open] > summary::after { content: '−'; }
.benefit-point > summary:focus-visible { outline: 2px solid var(--benefit-ink); outline-offset: 4px; }
.benefit-point > summary:hover { color: #173b4c; }
.benefit-point-body { padding: 0 1.25rem .8rem 0; }
.benefit-point-body p, .clean-overview p { color: #445b66; font-size: .875rem; font-weight: 400; line-height: 1.95; margin: 0 0 .8rem; overflow-wrap: break-word; }
.benefit-point-body p:last-child { margin-bottom: 0; }
.benefit-point .initial-payment { margin: .6rem 0 .15rem; padding-left: .8rem; border-left: 2px solid #b9ceda; color: #4c626e; font-size: .8125rem; font-weight: 400; line-height: 1.85; }
.initial-payment span { display: block; margin-bottom: .2rem; font-size: .75rem; color: #667983; }
.clean-overview h3 { margin: .9rem 0 .8rem; color: var(--benefit-ink); font-family: var(--sans); font-size: 1.0625rem; font-weight: 600; line-height: 1.8; }
.clean-overview p:last-child { margin-top: 1rem; }
.benefit-conditions { margin-top: .8rem; }
.benefit-conditions > summary { color: var(--benefit-ink); }
.lp-disclosure > summary { min-height: 46px; gap: .8rem; }
.disclosure-body { border-left: 2px solid #d7e3e9; padding: .35rem 0 .4rem 1rem; margin: .4rem 0 .9rem; }
.lp-disclosure .disclosure-body p, .lp-disclosure .disclosure-body small, .lp-disclosure .disclosure-body li { font-size: .875rem; line-height: 1.95; font-weight: 400; text-align: left; overflow-wrap: break-word; }
.lp-disclosure .disclosure-body p { margin: 0 0 .9rem; }
.lp-disclosure .disclosure-body p:last-child { margin-bottom: 0; }
.condition-list { padding: 0 0 0 1.15em; margin: 0; }
.condition-list li { padding-left: .15em; margin-bottom: .65rem; }
.condition-list li:last-child { margin-bottom: 0; }
.sim-conditions-body { padding: .5rem 0; max-width: 48rem; }
.sim-conditions-body h4 { color: #d6eaf3; font-family: var(--sans); font-size: .875rem; font-weight: 600; margin: 1.5rem 0 .7rem; }
.lp-finish .simulator .sim-conditions-body .source-note { color: #c0d3df; font-size: .8125rem; line-height: 1.95; margin: 0 0 .85rem; }
.calculation-breakdown { margin: .5rem 0 1rem; font-size: .8125rem; color: #d6e5ed; }
.calculation-breakdown > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid #496879; }
.calculation-breakdown dt { font-weight: 400; }
.calculation-breakdown dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.response-band-detail .disclosure-body { border-color: #7295a9; }
.lp-finish .problem-solution { align-self: start; border: 1px solid #c0dbe7; overflow: hidden; background: #eef7fb; }
.lp-finish .problem-solution > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1.25rem; min-height: 52px; color: #215f7d; font-size: .875rem; font-weight: 600; }
.lp-finish .problem-solution > summary > span { display: inline; margin: 0; font-size: inherit; }
.lp-finish .problem-solution > summary > span::after { content: none; }
.lp-finish .problem-solution > summary::after { content: '+'; flex: none; font-size: 1.25rem; font-weight: 400; }
.lp-finish .problem-solution[open] > summary::after { content: '−'; }
.lp-finish .problem-solution > summary .solution-hide { display: none; }
.lp-finish .problem-solution[open] > summary .solution-hide { display: inline; }
.lp-finish .problem-solution[open] > summary .solution-show { display: none; }
.lp-finish .problem-solution .answer-side { padding: 1.25rem; border-radius: 0; border-top: 1px solid #d4e5ed; }
.lp-finish .problem-solution .answer-side h3 { font-size: 1rem; line-height: 1.8; margin: 0 0 .6rem; }
.lp-finish .problem-solution .answer-side p { font-size: .9375rem; margin: 0; }
.after-third-year { margin-top: 2.5rem; border-top: 1px solid #d9e5eb; padding-top: 2rem; }
.after-third-year .after-third-year-main { color: #294e60; font-size: 1.125rem; font-weight: 500; }
.after-third-year-main strong { color: #08799c; font-size: inherit; font-weight: 700; white-space: normal; }
.contact-form { gap: 12px; margin-top: 18px; }
.contact-form input:not([type=checkbox]), .contact-form select, .contact-form textarea { font-family: inherit; font-weight: 400; font-size: 16px; color: #294753; letter-spacing: 0; min-height: 42px; padding: 9px 11px; margin-top: 6px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { font-weight: 400; color: #84939a; opacity: 1; }
.contact-form textarea { min-height: 60px; height: 60px; line-height: 1.65; }
.contact-form label { font-weight: 500; line-height: 1.65; }
.modal .contact-hint { margin: -3px 0 1px; line-height: 1.8; }
.modal .modal-panel { padding: 25px; }
.modal h2 { font-size: 1.25rem; margin-bottom: 8px; }
@media(max-width:800px) {
  .lp-finish .problem-card { grid-template-columns: 1fr; grid-template-rows: auto 2.25rem auto; }
  .lp-finish .problem-card .solution-arrow { display: flex; align-items: center; justify-content: center; height: 2.25rem; }
  .lp-finish .problem-card .solution-arrow svg { transform: none; width: 21px; height: 21px; }
  .lp-finish .problem-grid { gap: 2rem; }
  .benefits-category { margin-bottom: .6rem; }
  .benefit-point > summary { padding: .9rem 0; }
  .benefit-point-body { padding-right: .5rem; }
  .clean-overview p { font-size: .9375rem; }
}
@media(max-width:600px) {
  .modal .modal-panel { padding: 23px 20px calc(22px + env(safe-area-inset-bottom)); }
  .contact-form { gap: 12px; }
  .contact-form .contact-methods { grid-template-columns: 1fr; gap: 12px; }
  .contact-form .contact-identity, .contact-form .contact-choice:not(.contact-methods) { gap: 12px; }
  .contact-form input:not([type=checkbox]), .contact-form select { padding: 9px 10px; }
  .lp-finish .problem-solution > summary { padding: .9rem 1.1rem; }
  .lp-disclosure .disclosure-body p, .lp-disclosure .disclosure-body li { font-size: .8125rem; }
  .after-third-year .after-third-year-main { font-size: 1.0625rem; }
}
