  body {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    background: #fdfcf9;
    color: #002147;
    margin: 0;
    padding: 0;
  }
  h1 {
    color: #002147;
    border-bottom: 3px solid #c5a572;
    padding-bottom: 10px;
    margin-bottom: 30px;
    font-weight: bold;
    text-align: center;
  }
  .step {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 0 10px rgb(0 33 71 / 0.15);
    margin-bottom: 30px;
    padding: 20px 25px;
  }
  .step h2 {
    color: #002147;
    margin-bottom: 10px;
    font-weight: 700;
    border-left: 6px solid #c5a572;
    padding-left: 10px;
  }
  select, input[type="number"] {
    width: 100%;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1.5px solid #ccc;
    font-size: 1rem;
    box-sizing: border-box;
    color: #002147;
  }
  input[readonly] {
    background: #f0f0f0;
    cursor: not-allowed;
    color: #666;
  }
  button#calc {
    width: 100%;
    background: #002147;
    color: #c5a572;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-size: 1.2rem;
    padding: 14px 0;
  }
  button#calc:hover {
    background: #c5a572;
    color: #002147;
  }
  .result-box {
    background-color: #fffbea;
    border-radius: 10px;
    padding: 20px 25px;
    box-shadow: 0 0 25px rgb(197 165 114 / 0.4);
    line-height: 1.6;
  }
  .result-section {
    margin-bottom: 20px;
    padding: 15px 20px;
    border-left: 8px solid #c5a572;
    background: #fef9e7;
    border-radius: 8px;
    box-shadow: inset 0 0 8px rgb(197 165 114 / 0.2);
  }
  .result-title { font-weight: 700; font-size: 1.2rem; margin-bottom: 8px; color: #7a5e12; }
  .result-value { font-size: 1.8rem; font-weight: 900; color: #c5a572; margin-bottom: 6px; text-shadow: 0 1px 0 #fffbea; }
  .result-note { font-size: 0.9rem; color: #555; margin-top: 0; }
  .tax-credit { background:#e6f2f8; border-color:#005a9c; box-shadow: inset 0 0 10px rgb(0 90 156 / 0.3); }
  .income-deduct { background:#f8f3e6; border-color:#a57c00; box-shadow: inset 0 0 10px rgb(165 124 0 / 0.3); }
  .resident-deduct { background:#f0f8f8; border-color:#3d9ca2; box-shadow: inset 0 0 10px rgb(61 156 162 / 0.3); }
  .total-deduct { border-left: 10px solid #007a99; background-color: #d7f0f7; padding: 25px 30px; border-radius: 10px; margin-top: 10px; box-shadow: 0 0 25px rgb(0 122 153 / 0.5); }
  .total-deduct .result-title { color: #004d66; font-size: 1.5rem; }
  .total-deduct .result-value { color: #007a99; font-size: 2.5rem; font-weight: 900; text-shadow: 0 1px 1px #a6d0e3; }
  .notes { margin-top: 40px; font-size: 0.9rem; color: #444; line-height: 1.6; background: #f9f9f9; padding: 18px 25px; border-radius: 10px; border: 1px solid #ccc; box-shadow: inset 0 0 12px rgb(180 180 180 / 0.15); }
  .notes p { margin: 8px 0; }

  /* --- レスポンシブ --- */
  @media screen and (min-width: 640px) {
    body { max-width: 1000px; margin: 40px auto; padding: 20px; font-size: 1rem; }
    h1 { font-size: 2rem; }
    #simulator-container { display: flex; gap: 20px; }
    #simulator { flex: 1; }
    #result { flex: 1; margin-top: 0; }
    .result-sections-wrapper { display: flex; flex-wrap: wrap; gap: 20px; }
    .result-section { flex: 1 1 45%; }
    .total-deduct { flex: 1 1 100%; }
  }
  @media screen and (max-width: 639px) {
    body { max-width: 100%; margin: 20px; padding: 10px; font-size: 0.9rem; }
    h1 { font-size: 1.5rem; }
    #simulator-container { display: block; }
    #result { margin-top: 30px; }
    .step { padding: 15px 15px; }
    select, input[type="number"] { font-size: 0.95rem; padding: 6px 10px; }
    button#calc { font-size: 1rem; padding: 12px 0; }
    .result-value { font-size: 1.5rem; }
    .result-section { padding: 12px 15px; flex: 1 1 100%; }
    .total-deduct { padding: 15px 20px; }
    .notes { padding: 12px 15px; font-size: 0.8rem; }
  }