/* =========================================================
   お問い合わせ（Contact Form 7） — 新デザイン（ネイビー基調）
   ========================================================= */
.lp-hero__image{background-image:url('../../images/visual11.webp');}

.cf-wrap{max-width:780px; margin:0 auto;}
.cf-lead{text-align:center; color:rgba(255,255,255,.78); line-height:2; font-size:14px; letter-spacing:.03em; margin:0 0 clamp(34px,4.4vw,56px);}

.cf-form{display:flex; flex-direction:column; gap:20px;}
.cf-form p{margin:0;}                                   /* autop残り対策 */
.cf-field .wpcf7-form-control-wrap{display:block; width:100%;}   /* inline spanを解除して全幅に */
.cf-row{display:flex; flex-direction:column; gap:9px;}
.cf-label{display:flex; align-items:center; gap:10px; font-size:14px; letter-spacing:.04em; color:rgba(255,255,255,.9); font-weight:500;}
/* 必須・任意バッジは項目名の左側に */
.cf-req,.cf-opt{order:-1; flex:0 0 auto; min-width:46px; text-align:center; font-size:10px; letter-spacing:.08em; padding:3px 8px; border-radius:2px; white-space:nowrap;}
.cf-req{background:var(--gold,#b8935a); color:#16203f;}
.cf-opt{border:.5px solid rgba(255,255,255,.3); color:rgba(255,255,255,.55);}

/* 入力欄（クリーム地で可読性） */
.cf-field input[type=text],.cf-field input[type=email],.cf-field input[type=tel],
.cf-field input[type=date],.cf-field input[type=number],.cf-field select,.cf-field textarea{
  width:100%; padding:13px 15px; font-size:15px; font-family:inherit; color:#2c2722;
  background:#faf7f1; border:1px solid rgba(184,147,90,.3); border-radius:3px; transition:border-color .25s; -webkit-appearance:none; appearance:none;
}
.cf-field select{background-image:linear-gradient(45deg,transparent 50%,#9a7b3f 50%),linear-gradient(135deg,#9a7b3f 50%,transparent 50%); background-position:calc(100% - 20px) center,calc(100% - 14px) center; background-size:6px 6px,6px 6px; background-repeat:no-repeat; padding-right:40px;}
.cf-field input:focus,.cf-field select:focus,.cf-field textarea:focus{outline:none; border-color:var(--gold,#b8935a); box-shadow:0 0 0 3px rgba(184,147,90,.15);}
.cf-field textarea{min-height:150px; resize:vertical; line-height:1.85;}

/* ラジオ */
.cf-field .wpcf7-radio{display:flex; gap:26px; flex-wrap:wrap; padding-top:5px;}
.cf-field .wpcf7-list-item{margin:0;}
.cf-field .wpcf7-list-item label{display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.88); cursor:pointer; font-size:15px;}
.cf-field input[type=radio]{accent-color:var(--gold,#b8935a); width:18px; height:18px;}

/* 送信 */
.cf-submit{text-align:center; margin-top:18px;}
.cf-submit .wpcf7-submit{display:inline-block; min-width:260px; padding:16px 44px; font-size:15px; letter-spacing:.12em; color:#16203f; background:var(--gold,#b8935a); border:none; border-radius:2px; cursor:pointer; transition:opacity .25s;}
.cf-submit .wpcf7-submit:hover{opacity:.85;}
.cf-submit .wpcf7-spinner{margin:0 0 0 14px;}

/* バリデーション・応答 */
.wpcf7-not-valid-tip{color:#e6a98a; font-size:12px; margin-top:6px; letter-spacing:.03em;}
.cf-field .wpcf7-not-valid{border-color:#cf7a5a !important;}
.wpcf7 form .wpcf7-response-output{margin:26px 0 0; padding:14px 18px; border-radius:3px; color:rgba(255,255,255,.9); font-size:14px; line-height:1.7; border:.5px solid rgba(255,255,255,.3); background:rgba(18,22,30,.4);}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output{border-color:#cf7a5a;}
.wpcf7 form.sent .wpcf7-response-output{border-color:rgba(184,147,90,.6);}

/* 2カラム（PC）: ラベル左・入力右 */
@media(min-width:700px){
  .cf-row{flex-direction:row; align-items:flex-start; gap:26px;}
  .cf-label{flex:0 0 210px; padding-top:14px; justify-content:flex-start;}
  .cf-field{flex:1; min-width:0;}
  .cf-row--full{flex-direction:row;}
}
/* シンプルHERO（会社情報と共通） — sp-hero / sp-breadcrumb */
.sp-hero{position:relative;height:320px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:48px;overflow:hidden;background:#1a2638;}
.sp-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,38,56,.3) 0%,rgba(26,38,56,.85) 100%);}
.sp-hero__title{position:relative;z-index:1;text-align:center;}
.sp-hero__title h1{font-family:var(--serif-display);font-size:clamp(24px,3vw,36px);font-weight:500;letter-spacing:.2em;color:var(--mute);margin:0 0 8px;}
.sp-hero__title .en{font-family:var(--en-serif);font-size:clamp(11px,1.2vw,14px);letter-spacing:.35em;text-transform:uppercase;color:var(--gold);font-style:italic;}
.sp-breadcrumb{padding:16px clamp(24px,8vw,120px);font-family:var(--serif);font-size:11px;letter-spacing:.15em;color:rgba(232,226,212,.4);}
.sp-breadcrumb a{color:rgba(232,226,212,.4);text-decoration:none;transition:color .3s;}
.sp-breadcrumb a:hover{color:var(--gold);}
.sp-breadcrumb span{margin:0 8px;}
/* ご相談フォーム: 区切り見出し（お客様情報）＋ フィールド補足ヒント */
.cf-section{margin:16px 0 2px; padding-top:22px; border-top:.5px solid rgba(184,147,90,.3); font-family:var(--serif); font-size:13px; letter-spacing:.14em; color:var(--gold,#b8935a);}
.cf-hint{display:block; margin-top:7px; font-size:12px; line-height:1.75; letter-spacing:.03em; color:rgba(255,255,255,.5);}

/* 確認画面（assets/js/features/form-confirm.js ／ inc/form-confirm.php）
   確認中は入力欄を隠し、入力内容の一覧と「戻る／送信する」を出す。お問い合わせ・ご相談・ご注文で共通 */
.wpcf7 form.is-confirming .cf-form{display:none;}
.wpcf7 form.is-confirming .wpcf7-response-output{display:none;}
.wpcf7 form.is-done .cf-form,.wpcf7 form.is-done .wpcf7-response-output{display:none;}   /* 完了画面（お礼の文は .cf-done に出す） */
.cf-confirm__title{margin:0 0 14px; text-align:center; font-family:var(--serif-display,var(--serif)); font-size:clamp(19px,2.2vw,24px); font-weight:500; letter-spacing:.16em; color:rgba(255,255,255,.95);}
.cf-confirm__title:focus{outline:none;}
.cf-confirm__lead{margin:0 0 30px; text-align:center; font-size:14px; line-height:1.9; letter-spacing:.03em; color:rgba(255,255,255,.78);}
.cf-confirm__section{margin:26px 0 4px; padding-top:20px; border-top:.5px solid rgba(184,147,90,.3); font-family:var(--serif); font-size:13px; letter-spacing:.14em; color:var(--gold,#b8935a);}
.cf-confirm__list{margin:0; border-top:.5px solid rgba(255,255,255,.14);}
.cf-confirm__section + .cf-confirm__list{border-top:none;}
.cf-confirm__list dt{padding:14px 0 4px; font-size:13px; letter-spacing:.04em; color:rgba(255,255,255,.6);}
.cf-confirm__list dd{margin:0; padding:0 0 14px; border-bottom:.5px solid rgba(255,255,255,.14); font-size:15px; line-height:1.8; color:rgba(255,255,255,.95); white-space:pre-wrap; overflow-wrap:anywhere;}
.cf-confirm__actions{display:flex; flex-direction:column-reverse; align-items:center; gap:14px; margin-top:34px;}   /* スマホ: 送信を上に */
.cf-confirm__actions button{min-width:220px; padding:16px 34px; font-size:15px; letter-spacing:.12em; border-radius:2px; cursor:pointer; transition:opacity .25s, background .25s;}
.cf-confirm__send{color:#16203f; background:var(--gold,#b8935a); border:1px solid var(--gold,#b8935a);}
.cf-confirm__back{color:rgba(255,255,255,.9); background:transparent; border:1px solid rgba(255,255,255,.4);}
.cf-confirm__actions button:hover{opacity:.85;}
.cf-confirm__actions button:disabled{opacity:.5; cursor:default;}
@media(min-width:700px){
  .cf-confirm__list{display:grid; grid-template-columns:210px 1fr; column-gap:26px;}
  .cf-confirm__list dt{padding:15px 0; border-bottom:.5px solid rgba(255,255,255,.14);}
  .cf-confirm__list dd{padding:15px 0;}
  .cf-confirm__actions{flex-direction:row; justify-content:center;}   /* PC: 戻る＝左・送信＝右 */
}

/* 送信完了画面（form-confirm.js の done()） */
.cf-done{padding:clamp(34px,5vw,56px) clamp(20px,4vw,48px); text-align:center; border:.5px solid rgba(184,147,90,.45); background:rgba(18,22,30,.35); border-radius:2px;}
.cf-done__title{margin:0 0 20px; font-family:var(--serif-display,var(--serif)); font-size:clamp(19px,2.2vw,24px); font-weight:500; letter-spacing:.16em; color:rgba(255,255,255,.95);}
.cf-done__title::after{content:""; display:block; width:40px; height:1px; margin:18px auto 0; background:var(--gold,#b8935a);}
.cf-done__title:focus{outline:none;}
.cf-done__message{margin:0 0 14px; font-size:15px; line-height:1.9; color:rgba(255,255,255,.92);}
.cf-done__note{margin:0 auto 30px; max-width:560px; font-size:13px; line-height:1.9; letter-spacing:.02em; color:rgba(255,255,255,.7); white-space:pre-line; text-align:left;}
.cf-done__home{display:inline-block; min-width:220px; padding:15px 34px; font-size:14px; letter-spacing:.12em; color:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.4); border-radius:2px; text-decoration:none; transition:border-color .25s, color .25s;}
.cf-done__home:hover{border-color:var(--gold,#b8935a); color:var(--gold,#b8935a);}
