/* ===== Contact ===== */
.section-contact{ padding:48px 20px; }
.section-contact .container{ max-width:880px; margin:0 auto; }

.contact-title{ font-size:2rem; margin:0 0 .6rem; }
.contact-lead{ color:#475569; margin:0 0 1.2rem; }

/* 成功/エラー */
.contact-success{
  background:#f0fdf4; border:1px solid #86efac; color:#166534;
  border-radius:12px; padding:16px; margin-top:12px;
}
.contact-error{
  background:#fef2f2; border:1px solid #fecaca; color:#991b1b;
  border-radius:12px; padding:12px; margin:12px 0;
}

/* フォーム本体 */
.contact-form{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px; padding:20px;
  box-shadow:0 6px 20px rgba(0,0,0,.04);
}

/* 常に1カラム（PCでも横並びにしない） */
.form-grid{ display:grid; gap:14px; grid-template-columns:1fr; }
.form-group.full{ grid-column:1 / -1; }

.form-group label{ display:block; font-weight:700; margin-bottom:6px; }
.form-group .req{ color:#ef4444; font-weight:800; margin-left:.2em; }

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="url"],
.form-group select,
.form-group textarea{
  width:100%; box-sizing:border-box;
  border:1px solid #cbd5e1; border-radius:10px;
  padding:10px 12px; font-size:1rem; background:#fff;
  transition:border-color .2s, box-shadow .2s;
}
.form-group textarea{ resize:vertical; min-height:120px; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none; border-color:#7a22a8; box-shadow:0 0 0 4px rgba(122,34,168,.12);
}

.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea{
  border-color:#ef4444; box-shadow:0 0 0 4px rgba(239,68,68,.08);
}
.form-group .error{ color:#b91c1c; font-size:.88rem; margin-top:6px; }

/* チップ */
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; gap:6px; border:1px solid #cbd5e1; border-radius:999px; padding:6px 10px; cursor:pointer; user-select:none; }
.chip input{ appearance:none; width:14px; height:14px; border:1px solid #94a3b8; border-radius:3px; display:inline-block; position:relative; }
.chip input:checked{ background:#7a22a8; border-color:#7a22a8; }
.chip input:checked::after{ content:""; position:absolute; left:3px; top:1px; width:6px; height:10px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }

/* 同意 */
.agree .check{ display:flex; align-items:center; gap:8px; }
.agree-note{ color:#64748b; font-size:.9rem; margin:.4rem 0 0; }

/* 送信 */
.form-actions{ margin-top:14px; text-align:center; }
.form-actions .btn{ min-width:180px; }
