﻿/* お問合せフォーム（form/build.py が書き出す） */
.fm__row{ display:grid; grid-template-columns:220px 1fr; gap:8px 32px; padding:26px 0; border-bottom:1px solid var(--line); align-items:start; }
.fm__row:first-of-type{ border-top:1px solid var(--line); }
.fm__label{ font-size:15px; font-weight:700; color:var(--ink); padding-top:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fm__req, .fm__opt{ font-size:11px; font-weight:700; line-height:1; padding:5px 8px; border-radius:4px; letter-spacing:.06em; }
.fm__req{ background:var(--accent); color:#fff; }
.fm__opt{ background:var(--line); color:var(--body); }
.fm input[type=text], .fm input[type=email], .fm input[type=tel], .fm select, .fm textarea{
  width:100%; font:inherit; font-size:16px; color:var(--ink); background:#fff;
  border:1px solid #CFC8C1; border-radius:var(--r, 8px); padding:13px 16px; line-height:1.6;
  transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none;
}
.fm select{ background-image:linear-gradient(45deg,transparent 50%,var(--accent) 50%),linear-gradient(135deg,var(--accent) 50%,transparent 50%); background-position:calc(100% - 21px) 50%, calc(100% - 15px) 50%; background-size:6px 6px; background-repeat:no-repeat; padding-right:42px; }
.fm textarea{ resize:vertical; min-height:200px; }
.fm .fm__short{ max-width:260px; }
.fm input:focus, .fm select:focus, .fm textarea:focus{ outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-l); }
.fm__policy{ margin-top:48px; }
.fm__policy ul{ margin-top:12px; }
.fm__policy li{ position:relative; padding-left:1.1em; line-height:2; }
.fm__policy li::before{ content:""; position:absolute; left:0; top:.9em; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.fm__desk{ margin-top:20px; padding-top:20px; border-top:1px solid var(--line); line-height:2; }
.fm__agree{ margin-top:36px; text-align:center; font-size:14px; }
.fm__submit{ margin-top:22px; text-align:center; }
.fm__err{ margin:22px auto 0; max-width:640px; text-align:center; font-size:14px; font-weight:700; color:#B3261E; background:#FDECEA; border-radius:var(--r,8px); padding:12px 16px; }
.fm__submit .btn{ cursor:pointer; border:0; font-family:inherit; }
@media (max-width:700px){
  .fm__row{ grid-template-columns:1fr; padding:20px 0; }
  .fm__label{ padding-top:0; }
  .fm .fm__short{ max-width:none; }
}
