:root{
  --gm-ink:#332217;
  --gm-brown:#5b3715;
  --gm-gold:#b78a34;
  --gm-line:#e3d4b8;
  --gm-paper:#fffdf8;
  --gm-soft:#f6efe3;
  --gm-green:#317a52;
  --gm-orange:#d67b2c;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#faf7ef,#efe3cf);color:var(--gm-ink);font-family:"Noto Sans JP",Arial,sans-serif}
.loan-page{width:min(1180px,calc(100% - 24px));margin:24px auto 48px}
.loan-hero{position:relative;overflow:hidden;padding:24px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#3c210f,#71451f 58%,#b78a34);box-shadow:0 12px 30px rgba(80,34,0,.2)}
.loan-hero::after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.2);border-radius:50%;right:-80px;top:-130px}
.loan-hero h1{position:relative;margin:0;font-size:clamp(30px,3.2vw,34px);line-height:1.35}
.loan-hero p{position:relative;margin:8px 0 0;color:#fff8e7}
.title-sp{display:none}
.sim-switch{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.sim-switch a{flex:1 1 260px;text-align:center;text-decoration:none;padding:13px 16px;border:1px solid #c9ae7d;border-radius:12px;background:#fffdf8;color:var(--gm-brown);font-weight:800}
.sim-switch a[aria-current="page"]{background:var(--gm-brown);color:#fff;border-color:var(--gm-brown)}
.sim-panel,.result-card,.chart-card,.schedule-card,.note-card{background:var(--gm-paper);border:1px solid var(--gm-line);border-radius:18px;box-shadow:0 5px 16px rgba(80,34,0,.07)}
.sim-panel{padding:20px}
.sim-panel h2,.chart-card h2,.schedule-card h2{margin:0 0 16px;font-size:21px}
.input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.field label{display:block;margin-bottom:6px;font-weight:800}
.field .hint{font-size:12px;color:#776858;font-weight:500}
.input-unit{position:relative}
.input-unit input,.input-unit select{width:100%;min-height:50px;border:1px solid #ccb98f;border-radius:12px;background:#fff;padding:10px 48px 10px 12px;text-align:right;font:700 20px/1.2 inherit;color:var(--gm-ink)}
.input-unit select{text-align:left;padding-right:12px}
.input-unit span{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-weight:700;color:#6d5a47;pointer-events:none}
.input-unit input:focus,.input-unit select:focus{outline:3px solid rgba(183,138,52,.2);border-color:var(--gm-gold)}
.input-unit.has-clear input{padding-left:44px}
.input-clear{position:absolute;left:11px;top:50%;transform:translateY(-50%);z-index:2;width:25px;height:25px;padding:0;border:0;border-radius:50%;background:#eee5d5;color:#735d46;font:800 16px/1 Arial,sans-serif;cursor:pointer;box-shadow:none}
.input-clear:hover{background:#e2d3bb;color:#3f2b1d}.input-clear:focus-visible{outline:3px solid rgba(183,138,52,.28);outline-offset:2px}
.field-slider{width:100%;height:28px;margin:7px 0 0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.field-slider::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,#e8dcc6,#c9aa6d 50%,#8b5728)}
.field-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border:2px solid var(--gm-brown);border-radius:50%;background:#c49a45;box-shadow:0 2px 6px rgba(80,34,0,.2)}
.field-slider::-moz-range-track{height:6px;border-radius:999px;background:linear-gradient(90deg,#e8dcc6,#c9aa6d 50%,#8b5728)}
.field-slider::-moz-range-thumb{width:17px;height:17px;border:2px solid var(--gm-brown);border-radius:50%;background:#c49a45}
.field-slider:focus-visible{outline:3px solid rgba(183,138,52,.22);outline-offset:2px;border-radius:8px}
.actions{display:flex;justify-content:center;gap:12px;margin-top:18px}
.calc-button,.reset-button{min-height:52px;border:0;border-radius:12px;padding:0 28px;font:800 17px inherit;cursor:pointer}
.calc-button{min-width:220px;background:linear-gradient(135deg,#4a2913,#8b5728 60%,#c49a45);color:#fff;box-shadow:0 7px 18px rgba(80,34,0,.22)}
.reset-button{background:#eee5d5;color:var(--gm-brown)}
.error-box{display:none;margin:14px 0 0;padding:12px 14px;border-radius:10px;background:#fff0ed;border:1px solid #e4a59a;color:#8b281b;font-weight:700}
.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}
.result-card{padding:18px;min-width:0}
.result-label{font-size:14px;color:#6f6256;font-weight:700}
.result-value{margin-top:8px;font-size:clamp(24px,4vw,38px);font-weight:900;text-align:right;color:#3f2818;white-space:nowrap}
.result-value small{font-size:.45em;margin-left:3px}
.result-card.accent{background:linear-gradient(145deg,#fffdf8,#f3e7d2);border-color:#cdaa69}
.charts-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin:16px 0}
.chart-card{padding:18px;min-width:0}
.chart-card--wide{grid-column:1/-1}
.chart-note{min-height:1.7em;margin:-8px 0 12px;color:#6f6256;font-size:13px;line-height:1.7}
.chart-box{position:relative;height:310px;width:100%}
.chart-box.pie{height:310px}
.schedule-card{padding:18px;margin-top:16px}
.table-wrap{width:100%;overflow:auto;border:1px solid var(--gm-line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:760px;font-variant-numeric:tabular-nums}
th,td{padding:9px 10px;border-bottom:1px solid #eadfce;text-align:right;white-space:nowrap}
th{position:sticky;top:0;background:var(--gm-brown);color:#fff;text-align:center;z-index:1}
td:first-child{text-align:center}
tbody tr:nth-child(even){background:#faf6ef}
.note-card{padding:15px 18px;margin-top:16px;color:#5e5145;font-size:13px;line-height:1.7}
.bonus-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#fff0db;color:#9b5519;font-size:11px;font-weight:800}
@media(max-width:850px){
  .loan-hero h1{font-size:30px}
  .input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .charts-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .loan-page{width:min(100% - 16px,1180px);margin-top:12px}
  .loan-hero,.sim-panel{padding:16px}
  .loan-hero h1{font-size:26px}.title-pc{display:none}.title-sp{display:inline}
  .input-grid{grid-template-columns:1fr}
  .result-grid{gap:8px}
  .result-card{padding:13px}
  .result-value{font-size:clamp(20px,7vw,30px)}
  .actions{flex-direction:column}.calc-button,.reset-button{width:100%}
  .chart-card{padding:14px}.chart-box,.chart-box.pie{height:260px}
}
@media(prefers-reduced-motion:no-preference){.result-card{animation:loanFade .35s ease}@keyframes loanFade{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}}
