/* =========================================================
   お問い合わせ（sub.css の後に読む）
   ========================================================= */
:root{--page-hero-img:var(--img-contact-hero);}
.contact-grid{display:grid;grid-template-columns:1fr 340px;gap:44px;align-items:start;}

/* ---------- 準備中の告知 ---------- */
.notice{display:flex;gap:16px;padding:22px 24px;border-radius:var(--r-card);
        background:#fff7ef;border:1px solid #f6d9bf;}
.notice__mark{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;
              background:var(--ac-orange);color:#fff;font-size:14px;font-weight:800;line-height:1;}
.notice p{font-size:13px;line-height:1.95;color:#7a5533;}
.notice a{color:#b8630f;text-decoration:underline;text-underline-offset:3px;}

/* ---------- フォーム ---------- */
.form-card{margin-top:26px;padding:34px 34px 30px;background:#fff;
           border:1px solid var(--line);border-radius:var(--r-card);}
.form-card__tag{display:inline-block;padding:5px 13px;border-radius:var(--r-pill);
                background:var(--bg-tint);font-size:11px;font-weight:700;color:var(--blue-600);}
.form-card__lead{margin-top:16px;font-size:13px;line-height:1.95;color:var(--muted);}

/* 種別。ここの選択で下の項目が入れ替わるので、いちばん目に付く形にする */
.ctype{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px;}
.ctype label{display:flex;align-items:flex-start;gap:11px;padding:17px 18px;cursor:pointer;
             border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);transition:.2s;}
.ctype label:hover{border-color:var(--blue-300);}
.ctype input{flex:none;width:17px;height:17px;margin-top:2px;accent-color:var(--blue-600);}
.ctype b{display:block;font-size:13.5px;font-weight:700;color:var(--ink);}
.ctype span{display:block;margin-top:5px;font-size:11.5px;line-height:1.7;color:var(--muted);}
.ctype input:checked ~ div b{color:var(--blue-700);}
.ctype label:has(input:checked){background:#fff;border-color:var(--blue-600);
                                box-shadow:0 0 0 2px rgba(11,98,200,.12);}

.form-rows{display:grid;gap:20px;margin-top:28px;}
.form-row--half{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-row label{display:flex;align-items:center;gap:8px;
                font-size:12.5px;font-weight:700;color:var(--ink);}
.req{padding:2px 7px;border-radius:3px;background:#fdece4;
     font-size:10px;font-weight:700;color:#c2611f;}
.form-row input[type=text],
.form-row input[type=email],
.form-row input[type=tel],
.form-row textarea{width:100%;margin-top:9px;padding:12px 14px;font:inherit;font-size:13.5px;
                   color:var(--ink);background:var(--bg-soft);
                   border:1px solid var(--line);border-radius:8px;transition:.18s;}
.form-row textarea{min-height:132px;line-height:1.9;resize:vertical;}
.form-row input:focus,.form-row textarea:focus{outline:0;background:#fff;border-color:var(--blue-600);
                                               box-shadow:0 0 0 3px rgba(11,98,200,.12);}
.form-row input::placeholder,.form-row textarea::placeholder{color:#9db0c3;}
.form-note{margin-top:7px;font-size:11px;line-height:1.7;color:var(--muted);}

/* 加入のときだけ出す一群。JS で hidden を付け外しする */
.form-set{display:grid;gap:20px;margin-top:20px;padding:24px 24px 26px;
          border:1px solid var(--blue-300);border-radius:12px;background:var(--bg-tint);}
.form-set[hidden]{display:none;}
.form-set__ttl{display:flex;align-items:center;gap:9px;
               font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--blue-700);}

.chk{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:11px;}
.chk label{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.7;
           font-weight:400;color:var(--text);cursor:pointer;}
.chk input{flex:none;width:15px;height:15px;margin-top:2px;accent-color:var(--blue-600);}

.form-agree{display:flex;align-items:center;gap:10px;margin-top:26px;
            font-size:12.5px;color:var(--text);cursor:pointer;}
.form-agree input{flex:none;width:16px;height:16px;accent-color:var(--blue-600);}
.form-agree a{color:var(--blue-600);text-decoration:underline;text-underline-offset:3px;}
.form-card__submit{margin-top:24px;border:0;font:inherit;}
.form-card__submit[disabled]{opacity:.45;cursor:not-allowed;}
.form-card__submit[disabled]:hover{background:var(--blue-600);transform:none;box-shadow:none;}

/* ---------- 事務局 ---------- */
.office{position:sticky;top:112px;padding:30px 28px;border-radius:var(--r-card);
        background:linear-gradient(150deg,#eef5fd 0%,#e6f3ee 100%);}
.office h2{font-size:16px;font-weight:700;color:var(--ink);}
.office__en{margin-top:6px;font-family:var(--font-en);font-size:10.5px;font-weight:700;
            letter-spacing:var(--track-label);color:var(--blue-600);}
.office dl{display:grid;gap:16px;margin-top:24px;}
.office dt{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);}
.office dd{margin-top:6px;font-size:13.5px;line-height:1.85;color:var(--ink);font-weight:700;}
.office dd small{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--muted);}
.office__link{display:inline-block;margin-top:26px;font-size:12.5px;font-weight:700;
              color:var(--blue-600);}

@media (max-width:1000px){
  .contact-grid{grid-template-columns:1fr;gap:28px;}
  .office{position:static;}
}
@media (max-width:600px){
  .form-card{padding:24px 20px 22px;}
  .ctype{grid-template-columns:1fr;gap:10px;}
  .form-row--half{grid-template-columns:1fr;gap:20px;}
  .form-set{padding:18px 16px 20px;}
  .chk{grid-template-columns:1fr;}
}

/* ---------- 受信処理（Phase 2 で追加） ---------- */
/* ハニーポット。人には見せず、bot にだけ見える入力欄 */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* 入力エラー */
.notice--err{background:#fdecec;border-color:#f3c4c4;}
.notice--err .notice__mark{background:#c0392b;}
.notice--err p{color:#8c3a32;}
.notice--err a{color:#a13328;}
.notice ul{margin-top:6px;padding-left:18px;}
.notice li{font-size:13px;line-height:1.95;color:#8c3a32;list-style:disc;}
.form-err{margin-top:7px;font-size:11.5px;line-height:1.7;color:#c0392b;font-weight:700;}
.form-row input.is-error,.form-row textarea.is-error{background:#fdf3f2;border-color:#e0a19a;}

/* 送信完了 */
.thanks{margin-top:26px;padding:44px 34px 40px;background:#fff;text-align:center;
        border:1px solid var(--line);border-radius:var(--r-card);}
.thanks__mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto;border-radius:50%;
              background:var(--bg-tint);color:var(--blue-600);font-size:26px;font-weight:800;line-height:1;}
.thanks h3{margin-top:20px;font-size:19px;font-weight:700;color:var(--ink);}
.thanks p{margin-top:14px;font-size:13.5px;line-height:2;color:var(--text);}
.thanks__note{margin-top:18px;font-size:12px;line-height:1.95;color:var(--muted);}
.thanks .btn{margin-top:28px;}

/* 加入目的の「その他」の自由入力（JS で hidden を付け外し） */
.chk-other{margin-top:16px;}
.chk-other[hidden]{display:none;}

/* ---------- 送信前の確認画面 ---------- */
/* 入力値を持ち回すための隠し textarea（本文の改行をそのまま運ぶ） */
.confirm__hidden{display:none;}
.confirm__list{margin-top:26px;border-top:1px solid var(--line);}
.confirm__list > div{display:grid;grid-template-columns:210px 1fr;gap:8px 20px;
                     padding:17px 4px;border-bottom:1px solid var(--line);}
.confirm__list dt{font-size:12px;font-weight:700;line-height:1.8;color:var(--muted);}
.confirm__list dd{font-size:13.5px;line-height:1.9;color:var(--ink);}
.confirm__body{white-space:pre-wrap;}
.confirm__empty{color:var(--muted);font-weight:400;}
.confirm__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
/* 「修正する」用の控えめなボタン */
.btn--back{color:var(--ink);background:#fff;border:1px solid var(--line);}
.btn--back:hover{color:var(--ink);background:var(--bg-soft);transform:none;box-shadow:none;}

@media (max-width:600px){
  .confirm__list > div{grid-template-columns:1fr;gap:5px;}
  .confirm__actions{flex-direction:column;align-items:stretch;}
  .confirm__actions .btn{justify-content:center;}
}
