/* LEAP Contact Style — /contact/（body.leap-contact-page）だけに適用。
   LEAP TOPページ（C / Modern Gallery + Editorial）と同じ配色・タイポ。
   他ページ・テーマ・BtoBフォームには影響しない（全セレクタ body.leap-contact-page 起点）。 */

body.leap-contact-page{
  --lc-white:#ffffff;
  --lc-ivory:#f7f5f0;
  --lc-mint:#eef3ee;
  --lc-deep-green:#1c3327;
  --lc-brown:#4a3626;
  --lc-ink:#211e1a;
  --lc-muted:#5c574d;
  --lc-line:#e4ded1;
  --lc-serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --lc-serif-en:"Cormorant Garamond",var(--lc-serif);
  --lc-sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --lc-ease:cubic-bezier(.16,.7,.2,1);
}

/* --- テーマのページタイトル「お問合せ」は非表示（デザイン見出しに置き換えるため。/contact/ のみ） --- */
body.leap-contact-page .wp-block-post-title,
body.leap-contact-page h1.entry-title,
body.leap-contact-page .wp-block-post-featured-image{ display:none !important; }

/* --- 全面のやわらかいアイボリー面 ＋ ヘッダー直下とフッター前に十分な余白 --- */
body.leap-contact-page main,
body.leap-contact-page main.wp-block-group{
  background:var(--lc-ivory);
  padding:104px 0 168px;
}

/* --- 本文コンテナ：TT4の620px制約を解除し、TOPと同じガイドライン幅で中央寄せ＋2カラム --- */
body.leap-contact-page .entry-content{
  max-width:1200px;
  margin-inline:auto;
  padding-inline:clamp(24px,5vw,56px);
  display:grid;
  grid-template-columns:minmax(0,40fr) minmax(0,60fr);
  column-gap:clamp(40px,5vw,88px);
  align-items:start;
  color:var(--lc-ink);
  font-family:var(--lc-sans);
}
/* TT4 の constrained（max-width:620px ＋ margin-inline:auto !important）を打ち消す。
   グリッドトラックいっぱいに広げるため margin も 0 に戻す。 */
body.leap-contact-page .entry-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
body.leap-contact-page .entry-content > *{
  max-width:none;
  margin-left:0 !important;
  margin-right:0 !important;
}
/* JS適用前の素の紹介文 <p> は出さない（デザイン説明は .leap-contact__aside に入る） */
body.leap-contact-page .entry-content > p{ display:none; }
body.leap-contact-page .entry-content > .wp-block-spacer{ display:none; }

/* ============ 左：CONTACT 見出し・説明 ============ */
body.leap-contact-page .leap-contact__aside{
  grid-column:1;
  position:sticky;
  top:48px;
  align-self:start;
}
body.leap-contact-page .leap-contact__eyebrow{
  margin:0 0 20px;
  font:600 11px/1 var(--lc-sans);
  letter-spacing:.26em;
  color:var(--lc-brown);
}
body.leap-contact-page .leap-contact__title{
  margin:0 0 18px;
  font:500 clamp(42px,4.6vw,60px)/1 var(--lc-serif-en);
  letter-spacing:.02em;
  color:var(--lc-ink);
}
body.leap-contact-page .leap-contact__leadjp{
  margin:0 0 26px;
  font:700 22px/1.6 var(--lc-serif);
  color:var(--lc-ink);
}
body.leap-contact-page .leap-contact__desc p{
  margin:0 0 16px;
  font:500 13.5px/1.95 var(--lc-serif);
  color:var(--lc-muted);
}
body.leap-contact-page .leap-contact__desc p:last-child{ margin-bottom:0; }
body.leap-contact-page .leap-contact__mail{
  color:var(--lc-deep-green);
  font-weight:700;
  border-bottom:1px solid #1c332733;
  padding-bottom:1px;
}

/* ============ 右：フォーム面（自然な紙面感・カード感は控えめ） ============ */
body.leap-contact-page .entry-content > .wpcf7{
  grid-column:2;
  grid-row:1 / span 99;
  background:var(--lc-white);
  padding:clamp(30px,3.6vw,56px);
  border-radius:4px;
}

/* フォーム本体：flex縦組みにして Turnstile を送信ボタンの直前に見せる（DOM位置は不変） */
body.leap-contact-page .wpcf7-form{ display:flex; flex-direction:column; }
/* CF7の隠しフィールド fieldset：ブラウザ標準の枠を消す（送信は維持） */
body.leap-contact-page .wpcf7-form > .hidden-fields-container{
  order:0; border:0; padding:0; margin:0; min-width:0; min-inline-size:0;
}
body.leap-contact-page .wpcf7-form .akismet-fields-container{ display:none !important; }
body.leap-contact-page .wpcf7-form > p{ order:1; margin:0 0 22px; }
body.leap-contact-page .wpcf7-form > .wpcf7-turnstile{ order:2; margin:2px 0 24px; min-height:65px; }
body.leap-contact-page .wpcf7-form > p.leap-c-submit-p{ order:3; margin:6px 0 0; }
body.leap-contact-page .wpcf7-form > .wpcf7-response-output{ order:4; }

/* ラベル */
body.leap-contact-page .wpcf7-form label{
  display:block;
  font:600 12.5px/1.7 var(--lc-sans);
  letter-spacing:.04em;
  color:var(--lc-ink);
}
body.leap-contact-page .wpcf7-form label br{ display:none; }
body.leap-contact-page .wpcf7-form-control-wrap{ display:block; margin-top:9px; }

body.leap-contact-page .leap-c-req,
body.leap-contact-page .leap-c-opt{
  display:inline-block;
  margin-left:8px;
  padding:3px 7px;
  border-radius:3px;
  font:700 10px/1 var(--lc-sans);
  letter-spacing:.12em;
  vertical-align:1px;
}
body.leap-contact-page .leap-c-req{ background:var(--lc-deep-green); color:#fff; }
body.leap-contact-page .leap-c-opt{ background:#ece7db; color:#7a7468; }

/* 入力欄：ブラウザ標準感をなくす */
body.leap-contact-page .wpcf7-form-control{
  width:100%;
  box-sizing:border-box;
  background:var(--lc-white);
  border:1px solid #d9d3c6;
  border-radius:8px;
  padding:14px 16px;
  font:400 15px/1.6 var(--lc-sans);
  color:var(--lc-ink);
  -webkit-appearance:none;
  appearance:none;
  transition:border-color .25s var(--lc-ease), box-shadow .25s var(--lc-ease);
}
body.leap-contact-page .wpcf7-form-control::placeholder{ color:#a9a294; }
body.leap-contact-page .wpcf7-form-control:focus{
  outline:none;
  border-color:var(--lc-deep-green);
  box-shadow:0 0 0 3px rgba(28,51,39,.10);
}
body.leap-contact-page textarea.wpcf7-form-control{
  height:210px;
  min-height:150px;
  resize:vertical;
  line-height:1.8;
}

/* select：標準の矢印を消して他inputと同じ見た目＋自前の▾ */
body.leap-contact-page select.wpcf7-form-control{
  padding-right:44px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%231c3327' stroke-width='1.6' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
}
body.leap-contact-page select.wpcf7-form-control::-ms-expand{ display:none; }

/* 送信ボタン：TOPページCTAと同じルール */
body.leap-contact-page .leap-c-submit{ position:relative; display:inline-block; max-width:100%; }
body.leap-contact-page .wpcf7-submit{
  -webkit-appearance:none;
  appearance:none;
  display:inline-block;
  min-width:250px;
  padding:19px 52px 19px 40px;
  background:var(--lc-deep-green);
  color:#fff;
  border:0;
  border-radius:4px;
  font:600 14px/1 var(--lc-serif);
  letter-spacing:.06em;
  cursor:pointer;
  box-shadow:0 16px 32px -18px rgba(0,0,0,.35);
  transition:transform .45s var(--lc-ease), background-color .45s var(--lc-ease), box-shadow .45s var(--lc-ease);
}
body.leap-contact-page .wpcf7-submit:hover{
  transform:translateY(-3px);
  background:#254a37;
  box-shadow:0 20px 38px -16px rgba(0,0,0,.42);
}
body.leap-contact-page .leap-c-arrow{
  position:absolute;
  right:24px;
  top:50%;
  transform:translateY(-50%);
  color:#fff;
  font-size:15px;
  pointer-events:none;
  transition:transform .45s var(--lc-ease);
}
body.leap-contact-page .leap-c-submit:hover .leap-c-arrow{ transform:translate(6px,-50%); }
body.leap-contact-page .wpcf7-spinner{ margin:0 0 0 14px; }

/* CF7 メッセージ（成功 / エラー / 必須） */
body.leap-contact-page .wpcf7-response-output{
  margin:24px 0 0 !important;
  padding:14px 18px;
  border:1px solid transparent;
  border-radius:8px;
  font:500 13.5px/1.7 var(--lc-sans);
}
body.leap-contact-page .wpcf7-form.sent .wpcf7-response-output{
  background:#eef5ee; border-color:#cfe3d0; color:var(--lc-deep-green);
}
body.leap-contact-page .wpcf7-form.invalid .wpcf7-response-output,
body.leap-contact-page .wpcf7-form.unaccepted .wpcf7-response-output,
body.leap-contact-page .wpcf7-form.payment-required .wpcf7-response-output,
body.leap-contact-page .wpcf7-form.failed .wpcf7-response-output,
body.leap-contact-page .wpcf7-form.aborted .wpcf7-response-output{
  background:#faeceb; border-color:#e8c9c6; color:#8a2a22;
}
body.leap-contact-page .wpcf7-not-valid-tip{
  display:block;
  margin-top:7px;
  color:#8a2a22;
  font:500 12px/1.6 var(--lc-sans);
}
body.leap-contact-page .wpcf7-form-control.wpcf7-not-valid{
  border-color:#c9564c;
  background:#fdf6f5;
}

/* ============ タブレット（〜980px）：1カラムに ============ */
@media (max-width:980px){
  body.leap-contact-page main,
  body.leap-contact-page main.wp-block-group{ padding:96px 0 128px; }
  body.leap-contact-page .entry-content{
    grid-template-columns:minmax(0,1fr);
    column-gap:0;
    row-gap:44px;
  }
  body.leap-contact-page .leap-contact__aside{ position:static; }
  body.leap-contact-page .entry-content > .wpcf7{ grid-column:1; grid-row:auto; }
}

/* ============ スマホ（〜767px） ============ */
@media (max-width:767px){
  body.leap-contact-page main,
  body.leap-contact-page main.wp-block-group{ padding:64px 0 96px; }
  body.leap-contact-page .entry-content{ padding-inline:22px; row-gap:36px; }
  body.leap-contact-page .leap-contact__title{ font-size:42px; }
  body.leap-contact-page .leap-contact__leadjp{ font-size:20px; margin-bottom:20px; }
  body.leap-contact-page .leap-contact__desc p{ font-size:13.5px; }
  body.leap-contact-page .leap-contact__desc .lc-br{ display:none; }
  body.leap-contact-page .entry-content > .wpcf7{ padding:26px 20px; }
  body.leap-contact-page .wpcf7-form-control{ font-size:16px; padding:13px 15px; } /* 16px＝iOSズーム防止 */
  body.leap-contact-page textarea.wpcf7-form-control{ min-height:180px; }
  body.leap-contact-page .leap-c-submit{ display:block; width:100%; }
  body.leap-contact-page .wpcf7-submit{ display:block; width:100%; min-width:0; padding:18px 44px 18px 22px; text-align:center; }
  body.leap-contact-page .leap-c-arrow{ right:20px; }
}
