/* =============================================================
 * プロセルワークス フォーム — v1.0.0
 *   サイトの配色（メイン #30919b / ボタン #4a9dff / 面 #e9f7fe）に合わせている。
 * ============================================================= */
.pw-form-wrap{
  --pw-main:#30919b; --pw-btn:#4a9dff; --pw-ink:#333; --pw-sub:#666;
  --pw-line:#cfd8dd; --pw-bg:#f7fbfc; --pw-req:#c0392b;
  font-family:'Noto Sans JP',sans-serif; color:var(--pw-ink);
  max-width:820px; margin:0 auto; text-align:left;
}
.pw-form-wrap *{box-sizing:border-box;}
.pw-head{margin:0 0 24px; text-align:center;}
.pw-h{font-size:22px; font-weight:bold; color:var(--pw-ink); margin:0 0 10px; line-height:1.5;}
.pw-lead{font-size:15px; line-height:1.9; color:var(--pw-sub); margin:0;}

.pw-form{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px;}
.pw-row{margin-bottom:20px; min-width:0;}
.pw-row--full,.pw-consent,.pw-actions,.pw-note{grid-column:1 / -1;}

.pw-form label,.pw-form .pw-label{
  display:block; margin-bottom:7px; font-size:15px; font-weight:bold; line-height:1.6;
}
.pw-req{display:inline-block; margin-left:8px; padding:2px 7px; border-radius:3px;
  background:var(--pw-req); color:#fff; font-size:11px; font-weight:bold; vertical-align:2px;}
.pw-opt{display:inline-block; margin-left:8px; padding:2px 7px; border-radius:3px;
  background:#e3e8ea; color:#5b6a70; font-size:11px; font-weight:bold; vertical-align:2px;}

.pw-form input[type=text],.pw-form input[type=email],.pw-form input[type=tel],
.pw-form input[type=url],.pw-form input[type=date],.pw-form select,.pw-form textarea{
  width:100%; padding:13px 14px; background:#fff; border:1px solid var(--pw-line);
  border-radius:6px; font-size:16px; font-family:inherit; color:var(--pw-ink); line-height:1.6;
}
.pw-form textarea{min-height:120px; resize:vertical;}
.pw-form input:focus,.pw-form select:focus,.pw-form textarea:focus{
  outline:none; border-color:var(--pw-main); box-shadow:0 0 0 3px rgba(48,145,155,.15);
}
.pw-form input[type=file]{
  width:100%; padding:11px 12px; background:var(--pw-bg);
  border:1px dashed #a9c4c9; border-radius:6px; font-size:14px; font-family:inherit;
}
.pw-hint{display:block; margin-top:6px; font-size:13px; line-height:1.7; color:var(--pw-sub); font-weight:400;}

.pw-checks{display:flex; flex-wrap:wrap; gap:10px;}
.pw-check{display:flex !important; align-items:center; gap:8px; margin:0 !important;
  padding:11px 15px; background:#fff; border:1px solid var(--pw-line); border-radius:6px;
  font-size:15px; font-weight:400 !important; cursor:pointer; line-height:1.5;}
.pw-check:hover{border-color:var(--pw-main);}
.pw-check input[type=checkbox]{width:17px; height:17px; margin:0; accent-color:var(--pw-main); flex:none;}

.pw-consent{margin-top:4px; text-align:center;}
.pw-consent label{display:inline-block !important; font-weight:400 !important; font-size:15px;}
.pw-consent input[type=checkbox]{width:17px; height:17px; margin-right:8px; vertical-align:-3px; accent-color:var(--pw-main);}
.pw-consent a{color:var(--pw-main); text-decoration:underline;}

.pw-actions{text-align:center; margin-top:8px;}
.pw-submit{display:inline-flex; align-items:center; justify-content:center;
  width:100%; max-width:391px; height:64px; border:0; border-radius:10px;
  background:var(--pw-btn); color:#fff; font-size:20px; font-weight:bold;
  font-family:inherit; cursor:pointer; transition:opacity .2s;}
.pw-submit:hover{opacity:.8;}
.pw-note{margin:16px 0 0; text-align:center; font-size:13px; color:var(--pw-sub);}

.pw-errors{margin:0 0 22px; padding:16px 20px; border-radius:6px;
  background:#fdecea; border:1px solid #f1b9b3; color:#a02b20; font-size:15px; line-height:1.8;}
.pw-errors p{margin:0 0 6px;}
.pw-errors ul{margin:0; padding-left:1.2em; list-style:disc;}

.pw-done{padding:34px 24px; text-align:center; background:#eef7f8;
  border:1px solid #bcdfe3; border-radius:8px;}
.pw-done__h{margin:0 0 10px; font-size:20px; font-weight:bold; color:var(--pw-main);}
.pw-done p{margin:0 0 8px; font-size:15px; line-height:1.9;}
.pw-done__s{font-size:13px !important; color:var(--pw-sub);}

.pw-hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;}

@media (max-width:767px){
  .pw-form{grid-template-columns:1fr; gap:0;}
  .pw-h{font-size:19px;}
  .pw-checks{flex-direction:column;}
  .pw-check{width:100%;}
  .pw-submit{height:58px; font-size:18px;}
}
