:root{
  --ink:#3E3A39;
  --beige:#EDE8DC;
  --sage:#CDDDDC;
  --blue:#82ACBA;
  --muted:#7b7573;
}
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  background:var(--beige);
  color:var(--ink);
  font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  font-size:15px;
  line-height:1.85;
  -webkit-text-size-adjust:100%;
}
.wrap{ max-width:600px; margin:0 auto; padding:40px 20px 80px; }
h1{ font-size:21px; font-weight:700; margin:0 0 10px; letter-spacing:.02em; }
.intro{ margin:0 0 28px; font-size:13.5px; color:var(--muted); }
.flink{ color:var(--ink); }

form{ background:#fff; padding:24px 20px 28px; }
.field{ margin-bottom:22px; }
.field:last-of-type{ margin-bottom:0; }
label{ display:block; font-size:13.5px; font-weight:500; margin-bottom:7px; }
.req{ display:inline-block; margin-left:8px; padding:1px 7px; background:var(--ink); color:#fff;
      font-size:10.5px; font-weight:400; letter-spacing:.04em; vertical-align:2px; }
.help{ margin:-3px 0 7px; font-size:12px; color:var(--muted); }

input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],textarea,select{
  width:100%; padding:12px; border:1px solid var(--sage); background:#fff; color:var(--ink);
  font-size:16px; font-family:inherit; line-height:1.6; border-radius:0; -webkit-appearance:none;
}
textarea{ resize:vertical; }
select{ background-image:none; }
input:focus,textarea:focus,select:focus{ outline:2px solid var(--blue); outline-offset:1px; }
input[type=file]{ width:100%; font-size:13px; padding:8px 0; }

.choices{ display:flex; flex-direction:column; gap:2px; }
.choice{ display:flex; align-items:center; gap:10px; margin:0; padding:9px 0; font-weight:400; cursor:pointer; }
.choice input{ width:18px; height:18px; accent-color:var(--ink); flex:0 0 auto; }

button{
  margin-top:26px; width:100%; padding:15px; border:0; background:var(--ink); color:#fff;
  font-family:inherit; font-size:15px; letter-spacing:.06em; cursor:pointer;
}
button:hover{ background:#2c2928; }

.privacy{ margin:26px 0 0; font-size:12px; color:var(--muted); }
.errors{ background:#F3D9D4; padding:14px 16px; margin-bottom:22px; font-size:13px; }
.errors p{ margin:3px 0; }
.thanks{ background:#fff; padding:36px 24px; font-size:14.5px; }
.thanks p{ margin:0; }
.hp{ position:absolute; left:-9999px; height:0; overflow:hidden; }
footer{ margin-top:40px; font-size:11px; letter-spacing:.14em; color:var(--muted); text-align:center; }

/* 確認画面 */
table.confirm{ width:100%; border-collapse:collapse; background:#fff; font-size:14px; margin-bottom:6px; }
table.confirm th,table.confirm td{ text-align:left; padding:12px 14px; border-bottom:1px solid var(--beige); vertical-align:top; }
table.confirm th{ width:38%; font-weight:500; font-size:13px; color:var(--muted); }
.muted{ color:var(--muted); }
button.ghost{ margin-top:10px; background:#fff; color:var(--ink); border:1px solid var(--ink); }
.confirm-note{ font-size:12px; color:var(--muted); margin:18px 0 0; }
