/* propro-kani-satei plugin styles v1.0.0
 * Vanilla CSS, no framework dependency. Mobile-first with min-width breakpoints. */

.pks-app{
  max-width:720px;margin:2em auto;padding:1em;
  font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;
  color:#222;line-height:1.6;
}
.pks-app *{box-sizing:border-box;}
.pks-header h1{font-size:1.4em;margin:0 0 .3em;color:#2c3e50;}
.pks-lead{font-size:.92em;color:#555;margin:0 0 1em;}

.pks-progress{
  display:flex;gap:.3em;margin:1em 0 1.5em;font-size:.82em;
}
.pks-progress-step{
  flex:1;padding:.4em .5em;text-align:center;border-radius:4px;
  background:#eee;color:#888;
}
.pks-progress-step.is-active{background:#d4720a;color:#fff;font-weight:bold;}

fieldset.pks-step{
  display:none;border:1px solid #ddd;border-radius:6px;padding:1.2em;margin:0 0 1em;
  background:#fafafa;
}
fieldset.pks-step.is-active{display:block;}
fieldset.pks-step legend{font-weight:bold;padding:0 .5em;color:#2c3e50;}

.pks-field{display:block;margin:0 0 1em;}
.pks-label{
  display:block;font-weight:bold;margin-bottom:.3em;font-size:.95em;
}
.pks-label em{
  color:#c00;font-style:normal;font-size:.75em;font-weight:normal;
  margin-left:.5em;padding:.05em .4em;border:1px solid #c00;border-radius:3px;
}
.pks-field input[type="text"],
.pks-field input[type="number"],
.pks-field select{
  width:100%;padding:.55em .7em;border:1px solid #ccc;border-radius:4px;
  font-size:1em;background:#fff;
}
.pks-field .pks-hint{
  display:inline-block;margin-left:.3em;color:#888;font-size:.85em;
}

.pks-radio-row{display:flex;gap:1em;flex-wrap:wrap;}
.pks-radio-row label{cursor:pointer;font-size:.95em;}

.pks-check-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:.5em;
}
@media (min-width:520px){
  .pks-check-grid{grid-template-columns:repeat(3,1fr);}
}
.pks-check-grid label{cursor:pointer;font-size:.9em;}

.pks-business-select{margin-top:.5em;}

.pks-actions{
  display:flex;gap:.5em;flex-wrap:wrap;justify-content:flex-end;margin-top:1.2em;
}
.pks-btn{
  padding:.7em 1.5em;border:none;border-radius:4px;font-size:1em;cursor:pointer;
  font-weight:bold;transition:opacity .2s;
}
.pks-btn:hover{opacity:.85;}
.pks-btn-primary{background:#d4720a;color:#fff;}
.pks-btn-secondary{background:#666;color:#fff;}

/* --- ローディング --- */
.pks-loading{text-align:center;padding:2em;}
.pks-spinner{
  display:inline-block;width:40px;height:40px;
  border:4px solid #eee;border-top-color:#d4720a;border-radius:50%;
  animation:pks-spin 1s linear infinite;
}
@keyframes pks-spin{to{transform:rotate(360deg);}}

/* --- 結果画面 --- */
.pks-result section{
  margin:0 0 1.5em;padding:1em 1.2em;border-radius:6px;background:#fff;
  border:1px solid #e5e5e5;
}
.pks-result h2{
  font-size:1.15em;margin:0 0 .6em;padding-bottom:.4em;
  border-bottom:2px solid #d4720a;color:#2c3e50;
}

.pks-result-price .pks-price-range{
  font-size:1.5em;font-weight:bold;color:#c9520e;margin:.2em 0;
}
.pks-result-price .pks-price-median{color:#555;font-size:.95em;}
.pks-result-price .pks-price-note{
  color:#c00;font-size:.85em;margin-top:.6em;
}
.pks-result-price .pks-price-note:empty{display:none;}

.pks-result-demand .pks-demand-body{
  font-size:1.3em;font-weight:bold;color:#2c3e50;margin:.2em 0;
}
.pks-result-demand .pks-demand-note{
  color:#666;font-size:.85em;margin-top:.4em;
}

.pks-plus-list{margin:.3em 0 0;padding-left:1.5em;}
.pks-plus-list li{margin:.2em 0;}
.pks-plus-list:empty::before{content:"該当なし";color:#888;font-style:italic;}

.pks-result-disclaimer{background:#fffbeb;border-color:#f3d55a;font-size:.85em;color:#666;}

.pks-cta-grid{
  display:grid;grid-template-columns:1fr;gap:.7em;
}
@media (min-width:520px){
  .pks-cta-grid{grid-template-columns:repeat(3,1fr);}
}
.pks-cta-btn{
  display:block;padding:1em;border-radius:6px;text-decoration:none;
  background:#f7f7f7;border:2px solid #d4720a;color:#2c3e50;
  transition:background .2s,color .2s;
}
.pks-cta-btn:hover{background:#d4720a;color:#fff;}
.pks-cta-btn:hover span{color:#fff;}
.pks-cta-btn strong{display:block;font-size:1em;margin-bottom:.3em;}
.pks-cta-btn span{display:block;font-size:.8em;color:#555;}

/* --- エラー画面 --- */
.pks-error{
  padding:1.5em;background:#fee;border:1px solid #c00;border-radius:6px;
  color:#c00;
}
.pks-error h2{margin:0 0 .5em;color:#c00;}
