/* ========== ベース（はみ出し防止 & フォント） ========== */
*,
*::before,
*::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: hidden; }
img, svg, video { display: block; max-width: 100%; height: auto; }
body { font-family: "Helvetica Neue","Segoe UI", Arial, "Hiragino Kaku Gothic ProN","Hiragino Sans", Meiryo, sans-serif; color:#222; background:#fffef8; }

/* ========== テンプレート固有のリセット（GeneratePress対策） ========== */
body.page-template-page-information .site-content,
body.page-template-page-information .inside-article,
body.page-template-page-information .entry-content {
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  max-width: none !important;
  box-shadow: none !important;
}

/* ===== ページ全体 ===== */
.contact-page { padding: 40px 0 60px; }

/* ===== セクション（背景と中央寄せの器） ===== */
.contact {
  background: #eef8fd;
  padding: 80px 20px;
}
.contact-inner {
  width: min(100%, 1100px);   /* 1100pxを上限に中央寄せ */
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1.4fr; /* 左案内 : 右フォーム */
  gap: 48px;
  align-items: start;
}

/* ===== 左カラム：見出しブロック ===== */
.section-en {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0b6bdc;
  margin-bottom: 6px;
}
.section-ja {
  margin: 0 0 10px;
  font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.2rem);
  font-weight: 700;
  letter-spacing: .02em;
}
.contact-phone {
  font-size: clamp(1.1rem, .9rem + .6vw, 1.4rem);
  font-weight: 700;
  color: #007acc;
  margin: 6px 0 4px;
}
.contact-hours {
  font-size: .9rem; color:#5b6773;
}

/* ===== 右カラム：フォーム ===== */
.contact-form {
  width: 100%;
  background: #fff;
  border-radius: 14px;
  padding: clamp(18px, 2.5vw, 28px);
  box-shadow: 0 8px 30px rgba(15, 30, 50, .08);
  border: 1px solid #e8edf3;
}

.form-group { margin: 0 0 18px; }
.form-group label {
  display: block;
  font-weight: 700;
  color: #022d53;
  margin-bottom: 6px;
  font-size: .95rem;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
  width: 100%;
  font-size: 16px;
  padding: 12px 14px;
  border: 1px solid #cfd8e3;
  border-radius: 10px;
  background: #fff;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  appearance: none;
}
textarea { min-height: 140px; resize: vertical; }

input:focus, textarea:focus {
  border-color: #4c9aff;
  box-shadow: 0 0 0 3px rgba(76,154,255,.2);
  background: #fff;
}

/* 電話フィールド（既定で幅が詰まる事故対策） */
input.fix-phone { width: 100% !important; }

/* 必須表記 */
.required { color:#e02424; margin-left:.2em; }

/* 同意チェック行 */
.policy-check {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
  font-size: .95rem; color:#334155;
}
.policy-check input[type="checkbox"] {
  width: 18px; height: 18px; accent-color:#0b6bdc;
}
.policy-check a {
  color:#0b6bdc; text-decoration: none; border-bottom:1px solid transparent;
}
.policy-check a:hover { border-bottom-color:#0b6bdc; }

/* 送信ボタン */
.submit-button{
  display: inline-flex; align-items:center; justify-content:center;
  min-width: 180px;
  padding: 12px 28px;
  font-size: 16px; font-weight: 700; letter-spacing: .02em;
  color:#fff; background:#0b6bdc;
  border:0; border-radius: 12px;
  cursor:pointer;
  transition: transform .05s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: 0 8px 20px rgba(11,107,220,.18);
}
.submit-button:hover { background:#095ebf; box-shadow:0 10px 24px rgba(11,107,220,.22); }
.submit-button:active { transform: translateY(1px); }

/* ハニーポットは画面外へ */
.hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

/* reCAPTCHA 注意書き */
.recaptcha-notice{
  width:min(100%, 1100px);
  margin: 12px auto 0;
  padding: 0 20px;
  font-size: 12px; color:#64748b; line-height:1.7; text-align:center;
}
.recaptcha-notice a { color:#0b6bdc; text-decoration:none; }
.recaptcha-notice a:hover { text-decoration:underline; }

/* ========== モバイル ========== */
@media (max-width: 900px){
  .contact{ padding: 56px 16px; }
  .contact-inner{
    width: 100%;
    grid-template-columns: 1fr;  /* 縦並び */
    gap: 28px;
  }
  .contact-form{ padding: 18px; border-radius: 12px; }
  .section-en{ font-size:.9rem; }
  .section-ja{ font-size: 1.6rem; }
  .recaptcha-notice{ padding: 0 16px; }
}

/* ========== さらに狭い画面の安全策 ========== */
@media (max-width: 360px){
  .submit-button{ width: 100%; }
}

/* ========== 念のため：テーマが入れる横線の無効化 ========== */
body.page-template-page-information hr { display:none !important; }














/**** =====================================================
  page-information（固定ID:300）専用：ヘッダーを全PCで統一
  - ロゴ左端 / メニュー右端
  - 中央幅制限を解除（全幅行）
  - ロゴサイズ・メニュー間隔・縦幅を変数で統一管理
===================================================== ****/

/* トークン（数値を好みで調整OK） */
body.page-id-300{
  --info-hd-pad-x: 32px;   /* ヘッダー左右パディング */
  --info-hd-pad-y: 0px;   /* ヘッダー上下パディング＝縦幅感 */
  --info-logo-h:   22px;   /* ロゴ高さ */
  --info-gap:      40px;   /* メニュー間隔 */
  --info-font:     17px;   /* メニュー文字サイズ */
}

/* PC幅のみ */
@media (min-width: 769px){

  /* ヘッダー行を全幅にし、左右端に配置 */
  body.page-id-300 .site-header .inside-header{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding: var(--info-hd-pad-y) var(--info-hd-pad-x) !important;
    box-sizing:border-box !important;
  }

  /* ロゴ */
  body.page-id-300 .site-branding,
  body.page-id-300 .site-logo{
    flex:0 0 auto !important;
    margin:0 !important;
  }
  body.page-id-300 .custom-logo{
    height: var(--info-logo-h) !important;
    width:auto !important;
    max-height:none !important;
    display:block !important;
  }
  body.page-id-300 .site-title,
  body.page-id-300 .main-title{ display:none !important; }

  /* メニュー */
  body.page-id-300 .main-navigation{
    margin-left:auto !important;
    margin-right:0 !important;
    float:none !important;
    display:flex !important;
    align-items:center !important;
  }
  body.page-id-300 .main-navigation .main-nav > ul{
    display:flex !important;
    gap: var(--info-gap) !important;
    margin:0 !important;
    padding:0 !important;
    list-style:none !important;
    flex-wrap:nowrap !important;
    white-space:nowrap !important;
  }
  body.page-id-300 .main-navigation .main-nav > ul > li > a{
    font-size: var(--info-font) !important;
    line-height:1.5 !important;
    padding:0 !important;
    font-weight:500 !important;
    text-decoration:none !important;
    color:#111 !important;
  }

  /* 過去の位置ズレを無効化 */
  body.page-id-300 .site-header,
  body.page-id-300 .inside-header,
  body.page-id-300 .site-branding,
  body.page-id-300 .site-logo,
  body.page-id-300 .main-navigation{
    position:relative !important;
    left:auto !important; right:auto !important; transform:none !important;
    float:none !important;
  }
}

/* モバイル時（任意でロゴ小さめに） */
@media (max-width: 768px){
  body.page-id-300 .custom-logo{
    height: 20px !important;
    width:auto !important;
  }
}

/* ===== page-information（お問い合わせ：page-id-300）ロゴサイズ強制 ===== */
body.page-id-300 .site-logo img,
body.page-id-300 .site-branding img,
body.page-id-300 img.custom-logo {
  height: 22px !important;   /* ← 好きな高さに調整 */
  width: auto !important;
  max-height: none !important;
  display: block !important;
}


/* お問い合わせページ専用：ロゴ＆メニューを下へ寄せる（上余白で調整） */
body.page-id-300 .site-header .inside-header {
  display: flex !important;
  align-items: flex-start !important;  /* 上基準に揃える */
  justify-content: space-between !important;
  padding-top: 30px !important;        /* ★ 上に余白を追加して下へ押す */
}