/* Match the main site's body type and logo-blue palette. */
:root {
 --sim-body:16px; --sim-leading:1.85; --sim-tracking:.035em;
 --color-primary:var(--lt-brand); --color-accent:var(--lt-brand); --color-deep:var(--lt-brand);
 --color-background:#fff; --color-surface:#fff; --color-beige:var(--lt-brand-pale);
 --color-text:var(--lt-ink); --color-text-sub:#647782;
 --color-border:var(--lt-line); --color-ok:var(--lt-brand);
}
body { background:#fff; color:var(--color-text); font-size:var(--sim-body); line-height:var(--sim-leading); letter-spacing:var(--sim-tracking); }
.sim { max-width:1240px; }
.sim__header { background:var(--lt-brand); box-shadow:none; }
.sim__header-copy { max-width:none; padding:40px 44px; }
.sim__header-copy::after { border-color:rgba(255,255,255,.5); margin-top:24px; }
.sim__eyebrow,.sim__title,.sim__lead,.sim__pricing-date { color:#fff; }
.sim__lead { font-size:var(--sim-body); line-height:var(--sim-leading); letter-spacing:var(--sim-tracking); }
.sim__eyebrow,.sim__pricing-date { font-size:14px; }
.sim__layout { gap:28px; margin-top:32px; }
.sim-step,.result-card { border-color:var(--color-border); background:#fff; box-shadow:none; }
.sim-step { padding:26px; }
.sim-step__title,.sim-included__title,.sim-excluded__title { color:var(--color-text); font-size:22px; line-height:1.6; font-weight:400; }
.sim-step__num { background:var(--lt-brand); color:#fff; }
.type-cards { grid-template-columns:minmax(0,1fr); gap:14px; }
.type-card { display:grid; grid-template-columns:80px minmax(0,1fr); gap:20px; align-items:center; min-height:144px; padding:22px; text-align:left; border-radius:12px; background:#fff; box-shadow:none; }
.type-card[aria-checked="true"] { background:var(--lt-brand-pale); border-color:var(--lt-brand); box-shadow:inset 0 0 0 1px var(--lt-brand); }
.type-card:hover { border-color:var(--lt-brand); }
.type-card > .type-card__icon { display:grid; place-items:center; width:80px; height:80px; border-radius:8px; background:var(--lt-brand); }
.type-card__icon img { display:block; width:72px; height:72px; }
.type-card__copy { display:block; min-width:0; }
.type-card__name { justify-content:flex-start; font-size:22px; color:var(--color-text); line-height:1.5; gap:10px; }
.type-card__desc { display:block; max-width:none; margin:8px 0 0; text-align:left; font-size:var(--sim-body); color:#3d5260; line-height:var(--sim-leading); letter-spacing:var(--sim-tracking); }
.type-card__check { border-color:var(--color-border); }
.type-card[aria-checked="true"] .type-card__check { background:var(--lt-brand); border-color:var(--lt-brand); }
.grade-cards { grid-template-columns:minmax(0,1fr); }
.grade-card { padding:20px; background:#fff; border-color:var(--color-border); border-radius:10px; }
.grade-card[aria-checked="true"] { background:var(--lt-brand-pale); border-color:var(--lt-brand); }
.grade-card__name { font-size:20px; color:var(--color-text); }
.grade-card__tag { font-size:var(--sim-body); line-height:var(--sim-leading); letter-spacing:var(--sim-tracking); color:#3d5260; }
:is(.sim-note,.area-preset,.area-input,.area-input__unit,.area-input input,.accordion__btn,.land-field label,.land-field__input,.land-field__input input,.land-auto,.land-auto strong,.result-out,.result-main__label,.result-main__unit,.result-detail,.result-detail dt,.result-detail dd,.fees-table td,.btn,.result-copied,.sim-included__lead,.sim-included__list li,.sim-excluded__list li) { font-size:var(--sim-body); line-height:var(--sim-leading); letter-spacing:var(--sim-tracking); }
.sim-note,.sim-included__lead,.sim-excluded__list li,.land-auto,.result-detail dt { color:var(--color-text-sub); }
.area-preset,.area-input input,.land-field__input input { border-color:var(--color-border); color:var(--color-text); background:#fff; }
.area-preset[aria-pressed="true"] { background:var(--lt-brand); border-color:var(--lt-brand); color:#fff; }
input[type="range"] { accent-color:var(--lt-brand); }
.land-field__input input { min-width:0; }
.land-auto { flex-wrap:wrap; gap:8px; }
.result-card { padding:28px; background:var(--lt-brand-paper); }
.result-main__label { color:var(--color-text-sub); }
.result-main__price { color:var(--lt-brand); justify-content:center; }
#result-building { font-size:clamp(28px,2.8vw,40px); }
.result-detail > div { gap:8px 16px; padding:12px 0; flex-wrap:wrap; border-color:var(--color-border); }
.result-detail dt { white-space:normal; }
.result-detail dd { margin-left:auto; }
.result-detail__total { margin-top:6px; border-top:1px solid var(--color-border); }
.result-detail__total dt { flex-basis:100%; color:var(--color-text); }
.result-detail__total dd { font-size:28px; color:var(--lt-brand); }
.result-detail__toggle,.fees-table .kubun { font-size:13px; color:var(--color-text-sub); border-color:var(--color-border); }
.fees-table td { padding:10px 0; color:var(--color-text); border-color:var(--color-border); vertical-align:top; }
.fees-table td:first-child { padding-right:12px; }
.fees-table .kubun { white-space:nowrap; }
.btn--primary { background:var(--lt-brand); border-color:var(--lt-brand); color:#fff; box-shadow:none; }
.btn--ghost { background:#fff; color:var(--lt-brand); border-color:var(--lt-brand); }
.sim-included,.sim-excluded { background:#fff; border-color:var(--color-border); }
.sim-notes { background:var(--lt-brand-pale); border-color:var(--color-border); }
.sim-notes li { color:var(--color-text-sub); font-size:14px; line-height:1.8; }
:focus-visible { outline:2px solid var(--lt-brand); outline-offset:4px; }
@media(min-width:860px) { .sim__layout { grid-template-columns:minmax(0,1fr) 430px; } }
@media(min-width:860px) and (max-width:1099px) { .sim__layout { grid-template-columns:minmax(0,1fr); } .sim__result { position:static; } }
@media(max-width:767px) {
 :root { --sim-body:15px; --sim-leading:1.9; --sim-tracking:.025em; }
 .sim { padding:20px 16px 48px; }
 .sim__header-copy { padding:30px 24px; }
 .sim__eyebrow,.sim__pricing-date { font-size:13px; }
 .sim-step,.result-card { padding:22px 18px; }
 .sim-step__title,.sim-included__title,.sim-excluded__title { font-size:20px; }
 .type-card { grid-template-columns:64px minmax(0,1fr); gap:12px 16px; padding:18px; min-height:0; }
 .type-card > .type-card__icon { width:64px; height:64px; }
 .type-card__icon img { width:58px; height:58px; }
 .type-card__copy { display:contents; }
 .type-card__name { grid-column:2; grid-row:1; font-size:20px; gap:8px; }
 .type-card__desc { grid-column:1 / -1; margin:0; }
 .grade-card { padding:18px; }
 .grade-card__name { font-size:18px; }
 #result-building { font-size:clamp(26px,7.7vw,34px); }
 .result-detail__total dd { font-size:26px; }
 .sim-included,.sim-excluded,.sim-notes { padding:22px 18px; }
 .sim-included__list,.sim-excluded__list { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:359px) {
 .type-card { padding:14px; gap:12px; }
 .type-card__name { font-size:18px; }
 .fees-table td { font-size:var(--sim-body); }
}
.type-card__desc { text-wrap:pretty; }
