/* =========================================================
   PS WORKS Contactページ専用スタイル
   Contact Form 7の標準マークアップ(.wpcf7-form)をサイトのデザインに合わせます
   ========================================================= */
.psw-contact{ padding:80px 24px 110px; }
.psw-contact .inner{ max-width:720px; }

.psw-contact .wpcf7-form p{ margin:0 0 26px; }
.psw-contact .wpcf7-form label{
  display:block; font-weight:700; color:var(--navy-dark); margin-bottom:8px;
}
.psw-contact .wpcf7-form input[type="text"],
.psw-contact .wpcf7-form input[type="email"],
.psw-contact .wpcf7-form input[type="tel"],
.psw-contact .wpcf7-form input[type="url"],
.psw-contact .wpcf7-form select,
.psw-contact .wpcf7-form textarea{
  width:100%; border:1px solid #cbd5db; border-radius:4px; padding:13px 16px;
  font-family:var(--font-jp); font-size:.95rem; color:var(--text); background:#fff;
}
.psw-contact .wpcf7-form textarea{ min-height:160px; resize:vertical; }
.psw-contact .wpcf7-form input:focus,
.psw-contact .wpcf7-form select:focus,
.psw-contact .wpcf7-form textarea:focus{
  outline:none; border-color:var(--navy); box-shadow:0 0 0 3px var(--lightblue-2);
}

.psw-contact .wpcf7-form .req-mark,
.psw-contact .required-mark{
  color:var(--pink); font-size:.8rem; font-weight:700; margin-left:6px;
}

.psw-contact .wpcf7-form-control-wrap{ display:block; }

.psw-contact h1{ color:var(--navy-dark); font-size:1.6rem; font-weight:800; margin:0 0 16px; }
.psw-contact .req{ color:var(--pink); font-weight:700; margin-left:4px; }
.psw-contact .form-note{ color:#8a99a1; font-size:.85rem; margin:6px 0 10px; display:block; }

/* 姓/名などの2カラム行 */
.psw-contact .form-row-2col{ display:flex; gap:24px; }
.psw-contact .form-row-2col .col{ flex:1; }
.psw-contact .form-row-2col label{ display:block; font-weight:700; color:var(--navy-dark); margin-bottom:8px; }

/* チェックボックス群 */
.psw-contact .wpcf7-checkbox{ display:flex; flex-direction:column; gap:10px; }
.psw-contact .wpcf7-list-item{ margin:0; }
.psw-contact .wpcf7-list-item label{
  display:flex; align-items:center; gap:10px; font-weight:400; color:var(--text);
}
.psw-contact .wpcf7-list-item input[type="checkbox"]{
  width:18px; height:18px; flex-shrink:0;
}

.psw-contact .wpcf7-submit{
  display:inline-block; background:var(--navy); color:#fff; font-weight:700;
  padding:15px 52px; border:0; border-radius:2px; font-size:1rem; letter-spacing:.08em;
  cursor:pointer; transition:opacity .2s;
}
.psw-contact .wpcf7-submit:hover{ opacity:.85; }
.psw-contact .wpcf7-spinner{ margin-left:14px; }

.psw-contact .wpcf7-form.submitting .wpcf7-submit{ opacity:.6; cursor:default; }

.psw-contact .wpcf7-not-valid-tip{
  color:#e0553a; font-size:.85rem; font-weight:700; margin-top:6px;
}
.psw-contact .wpcf7-response-output{
  margin-top:28px; padding:16px 20px; border-radius:4px; border:1px solid var(--navy);
  color:var(--navy-dark); font-weight:700;
}
.psw-contact .wpcf7-form.sent .wpcf7-response-output{ border-color:#2f9e64; background:#eaf7f0; }
.psw-contact .wpcf7-form.invalid .wpcf7-response-output,
.psw-contact .wpcf7-form.unaccepted .wpcf7-response-output{ border-color:#e0553a; background:#fdeeec; }

@media (max-width: 560px){
  .psw-contact .wpcf7-submit{ width:100%; padding:15px; }
}
