:root { --brand:#162b4d; --accent:#b4252d; --line:#d7dbe1; --soft:#f4f6f8; }
* { box-sizing:border-box; }
body { margin:0; color:#222; background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic",Meiryo,sans-serif; line-height:1.7; }
a { color:#174c88; }
.contact-header { border-bottom:1px solid var(--line); padding:18px 20px; }
.contact-header img { display:block; width:180px; max-width:55vw; height:auto; }
.contact-breadcrumb { max-width:980px; margin:14px auto; padding:0 20px; font-size:.86rem; }
.contact-main { max-width:980px; margin:0 auto 70px; padding:0 20px; }
h1 { color:var(--brand); font-size:clamp(1.65rem,4vw,2.25rem); border-bottom:4px solid var(--brand); padding-bottom:12px; }
.lead,.notice { margin:20px 0; }
.notice { padding:14px 18px; background:#fff8e8; border-left:4px solid #d39000; }
.error-summary { margin:20px 0; padding:14px 18px; color:#9d1118; background:#fff0f1; border:1px solid #d96368; }
.error-summary:empty { display:none; }
.field { display:grid; grid-template-columns:260px 1fr; border-top:1px solid var(--line); }
.field[hidden] { display: none !important;}
.field:last-of-type { border-bottom:1px solid var(--line); }
.field-label { padding:18px; background:var(--soft); font-weight:700; }
.field-control { padding:14px 18px 18px; }
.required { display:inline-block; margin-left:8px; padding:0 6px; color:#fff; background:var(--accent); font-size:.74rem; font-weight:400; }
input,select,textarea { width:100%; max-width:650px; padding:10px 12px; border:1px solid #8d96a2; border-radius:3px; font:inherit; background:#fff; }
input[type="radio"],input[type="checkbox"] { width:auto; margin-right:6px; }
textarea { min-height:150px; resize:vertical; }
.choices { display:flex; flex-wrap:wrap; gap:8px 22px; }
.choices label { display:inline-flex; align-items:center; }
.hint { margin:6px 0 0; color:#555; font-size:.87rem; }
.field-error { margin:5px 0 0; color:#b00020; font-weight:700; }
[aria-invalid="true"] { border-color:#b00020; outline:2px solid rgba(176,0,32,.15); }
.consent { margin:24px 0 0; padding:18px 20px; border:1px solid #d3b25b; background:#fff9e9; }
.consent p { margin:0 0 12px; }
.consent-check { display:flex; align-items:flex-start; gap:8px; font-weight:700; cursor:pointer; }
.consent-check input { flex:0 0 auto; margin-top:.45em; }

.actions { display:flex; justify-content:center; gap:14px; margin:30px 0; }
button { min-width:180px; padding:13px 22px; border:0; border-radius:3px; color:#fff; background:var(--brand); font:inherit; font-weight:700; cursor:pointer; }
button.secondary { color:var(--brand); background:#e3e8ef; }
button:disabled { opacity:.55; cursor:wait; }
.confirm-list { display:grid; grid-template-columns:260px 1fr; border:1px solid var(--line); border-bottom:0; }
.confirm-list dt,.confirm-list dd { margin:0; padding:13px 16px; border-bottom:1px solid var(--line); white-space:pre-wrap; overflow-wrap:anywhere; }
.confirm-list dt { background:var(--soft); font-weight:700; }
.complete { padding:30px; text-align:center; background:var(--soft); }
.hp { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.contact-footer { padding:25px 20px; color:#fff; background:var(--brand); text-align:center; font-size:.85rem; }
@media (max-width:700px) {
  .field,.confirm-list { grid-template-columns:1fr; }
  .field-label { padding:12px 14px; }
  .field-control { padding:12px 14px 18px; }
  .confirm-list dt { border-bottom:0; }
  .actions { flex-direction:column-reverse; }
  button { width:100%; }
}
