@charset "utf-8";

/*
 * 8 AI Studio お問い合わせページ専用スタイル
 * page-templates/page-8aicontact.php からのみ読み込む（functions.php で enqueue）
 *
 * 既存 style.css は indented SASS からのコンパイル成果物のため、
 * 全体を再コンパイルすると無関係な差分が出る。1ページ限定の一点物なので
 * 10th.css と同じく独立した素のCSSとして持つ。
 * 命名は .p8ai- 接頭辞で統一し、グローバルなクラスと衝突させない。
 */

/* ===== ページ背景 ===== */

/*
 * テーマの共通スタイルが下層ページの本文背景に #F4F4F4 を当てている
 * （style.css の `.container.detail .content`）。
 * このページはデザイン上 #fff なので、同じ強さ以上のセレクタで上書きする。
 */
.container.detail.page-8ai .content {
  background: #fff;
}

/*
 * ヘッダーは position:fixed で、本文がその下を通り抜ける。
 * 他ページは本文が #F4F4F4 なので境目が出るが、このページは #fff で
 * 見分けが付かなくなるため、このページのときだけ薄い影で層を分ける。
 * 背景も明示しておく（下を流れる本文が透けないように）。
 */
.container.detail.page-8ai header {
  background: #fff;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
}

/* ===== レイアウト ===== */

.p8ai-wrap {
  padding: 40px 24px 96px;
}

.p8ai-inner {
  max-width: 1440px;
  margin: 0 auto;
}

.p8ai-cols {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

/* ===== 見出し（ロゴ） ===== */

.p8ai-head {
  margin-bottom: 32px;
}

.p8ai-logo {
  margin: 0;
  line-height: 1;
}

.p8ai-logo img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 48px;
}

/* ロゴ未着時のテキスト代替。ロゴが入ったらこの要素ごと消える */
.p8ai-logo-text {
  margin: 0;
  font-family: "Instrument Sans", sans-serif;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ===== リード文 ===== */

.p8ai-lead {
  margin: 0 0 40px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #606066;
}

/*
 * 1行目の見出し。本文と同じ字送り・行送りのまま、太さと濃さだけで差を付ける。
 * h2 なのでテーマ側の見出しスタイルが乗らないよう、サイズと余白を明示して打ち消す。
 */
.p8ai-lead .p8ai-lead-title {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  line-height: inherit;
  letter-spacing: inherit;
  color: #1a1a1a;
}

/*
 * デザイン上、見出しと本文2行は段落間の余白なしで1ブロックに見えている。
 * line-height の行送りだけで並べる。
 */
.p8ai-lead p {
  margin: 0;
}

/* ===== 動画 ===== */

.p8ai-movie {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #e8e8e8;
  overflow: hidden;
}

.p8ai-movie iframe,
.p8ai-movie video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* aspect-ratio 非対応ブラウザ向けフォールバック */
@supports not (aspect-ratio: 16 / 9) {
  .p8ai-movie {
    height: 0;
    padding-top: 56.25%;
  }
}

/* ===== 動画下の紹介テキスト ===== */
/* 字送り・行送り・色はリード文（.p8ai-lead）に合わせる */

.p8ai-movie-desc {
  margin: 32px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #606066;
}

/* 見出しはリード文の見出しと同じく、太さと濃さだけで差を付ける */
.p8ai-movie-desc .p8ai-movie-desc-title,
.p8ai-movie-desc .p8ai-movie-desc-subtitle {
  margin: 0 0 8px;
  font-family: inherit;
  font-size: inherit;
  font-weight: 700;
  line-height: inherit;
  letter-spacing: inherit;
  color: #1a1a1a;
}

.p8ai-movie-desc .p8ai-movie-desc-subtitle {
  margin-top: 32px;
}

.p8ai-movie-desc p {
  margin: 0 0 16px;
}

.p8ai-movie-desc p:last-child {
  margin-bottom: 0;
}

/* 番号は原稿側の「1.〜4.」をそのまま使うためマーカーは出さない */
.p8ai-movie-desc .p8ai-movie-desc-list {
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}

.p8ai-movie-desc .p8ai-movie-desc-list li {
  margin-bottom: 16px;
}

.p8ai-movie-desc .p8ai-movie-desc-list li:last-child {
  margin-bottom: 0;
}

.p8ai-movie-desc .p8ai-movie-desc-list li strong {
  display: block;
  font-weight: 700;
  color: #1a1a1a;
}

/* ===== フォーム ===== */

/* フォームはカード1枚。上に案内文、区切り線をはさんで下にフォーム本体 */
.p8ai-form-card {
  border: 1px solid #e3e3e6;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.p8ai-form-intro {
  margin: 0;
  padding: 24px;
  border-bottom: 1px solid #e3e3e6;
  background: #fafafb;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: #333;
}

.p8ai-form-body {
  padding: 24px;
}

/*
 * HubSpot（v2.js embed）の描画先。
 * 旧エディタ製フォームは親DOMに直接描画されるのでここのCSSが効くが、
 * 新エディタ製フォームは iframe で描画され親CSSが届かない。
 * その場合の見た目はHubSpot側のフォームエディタで整える。
 */
#p8ai-hs-form {
  width: 100%;
}

#p8ai-hs-form iframe {
  width: 100% !important;
  border: 0;
}

/* ===== 素材未着プレースホルダ（本番では出ない） ===== */

.p8ai-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  padding: 24px;
  border: 1px dashed #b5b5bb;
  background: #fafafa;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  line-height: 1.8;
  text-align: center;
  color: #8a8a90;
}

.p8ai-movie .p8ai-placeholder {
  position: absolute;
  inset: 0;
  min-height: 0;
  background: transparent;
}

/* ===== サンクスページ（/thanks_8ai/） ===== */

/*
 * ロゴだけの最小ヘッダー。グローバルナビを読まないので menu が無い。
 * 高さ・背景・影は共通の header 用スタイルと .page-8ai の指定に乗る。
 */
.p8ai-header .inner {
  display: flex;
  align-items: center;
}

/*
 * サンクスページは中身が2つで、それぞれ最適な幅が違う。
 * ・カード＝完了通知なので読みやすい幅に絞る
 * ・日程調整＝HubSpotのカレンダーが必要とする幅を確保する（下のコメント参照）
 * どちらも中央寄せするので、外側の .p8ai-inner は既定の広い幅のまま使う。
 */
.p8ai-thanks-card {
  max-width: 720px;
  margin: 0 auto;
  padding: 40px 24px;
  border: 1px solid #e3e3e6;
  border-radius: 8px;
  background: #fff;
  text-align: center;
}

.p8ai-thanks-logo {
  margin: 0 0 24px;
}

.p8ai-thanks-logo img {
  display: inline-block;
  width: auto;
  max-width: 100%;
  height: 40px;
}

.p8ai-thanks-heading {
  margin: 0 0 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p8ai-thanks-body,
.p8ai-thanks-sign {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #606066;
}

.p8ai-thanks-body p,
.p8ai-thanks-sign p {
  margin: 0;
}

/* 本文と結びを分ける短い罫線。デザイン上の区切りなので控えめに */
.p8ai-thanks-rule {
  width: 40px;
  height: 1px;
  margin: 32px auto;
  border: 0;
  background: #d6e4f0;
}

/* ===== サンクスページの日程調整（HubSpot ミーティング） ===== */

/*
 * 🔑 幅を絞りすぎないこと。
 * HubSpotのミーティング埋め込みは、iframeの幅が概ね800px未満になると
 * カレンダーと時間帯を縦に積むレイアウトへ切り替わり、その際に
 * 上へ500pxほどの空白が入って「何も表示されていない」ように見える。
 * カード幅（720px）に合わせるとちょうどこの状態に入るため、ここだけ広く取る。
 */
.p8ai-meetings {
  max-width: 900px;
  margin: 56px auto 0;
  text-align: center;
}

.p8ai-meetings-title {
  margin: 0 0 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p8ai-meetings-lead {
  margin: 0 0 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: #606066;
}

/*
 * HubSpotのミーティング埋め込み。スクリプトがこのdivの中にiframeを作り、
 * カレンダーの中身に合わせて高さを postMessage で調整してくる。
 * こちらで height を固定すると衝突するので、幅だけ整える。
 */
.p8ai-meetings .meetings-iframe-container {
  width: 100%;
}

.p8ai-meetings .meetings-iframe-container iframe {
  width: 100% !important;
  border: 0;
}

/* ===== PC ===== */

@media only screen and (min-width: 1024px) {
  .p8ai-wrap {
    padding: 60px 95px 140px;
  }

  /*
   * サンクスページのヘッダーは、最初からスクロール後の高さで固定する。
   * テーマ既定は .inner の上下padding 32px＋ロゴ50px＝114px、
   * スクロールすると header.hide が付いてpadding 24px＝98pxに縮む。
   * このページはナビが無く高さを取る必要がないので、常に縮んだ側に合わせる。
   * （1680px以上では既定paddingが70pxに増えるが、この指定の方が詳細度が高いので効く）
   */
  .p8ai-header > .inner {
    padding-top: 24px;
    padding-bottom: 24px;
  }

  /*
   * ヘッダーを98pxに縮めた分、本文側の逃げも合わせる。
   * テーマは .container.detail .content の padding-top をヘッダーの高さと同じ値にして、
   * position:fixed のヘッダーの下に本文が潜らないようにしている（1024〜=114px / 1680〜=190px）。
   * このページはヘッダーが98px固定なので、その対応が崩れて余白が余る（1680px以上で92px過剰）。
   * ヘッダーは fixed のままなので 0 にはできない。98pxに合わせる。
   * ※ style.css 側は他の下層ページ（/8aicontact/ を含む）が使っているので触らない。
   *   クラス4つでテーマ側（3つ）より詳細度が高いため、記述順に関係なく効く。
   */
  .container.detail.page-8ai-thanks .content {
    padding-top: 98px;
  }

  .p8ai-thanks-card {
    padding: 56px 48px;
  }

  .p8ai-thanks-logo img {
    height: 48px;
  }

  .p8ai-thanks-heading {
    font-size: 24px;
  }

  .p8ai-thanks-body,
  .p8ai-thanks-sign {
    font-size: 15px;
  }

  .p8ai-meetings-title {
    font-size: 19px;
  }

  .p8ai-meetings-lead {
    font-size: 15px;
  }

  .p8ai-cols {
    flex-direction: row;
    align-items: flex-start;
    gap: 64px;
  }

  .p8ai-col--main {
    flex: 1 1 auto;
    min-width: 0;
  }

  .p8ai-col--form {
    flex: 0 0 420px;
    width: 420px;
  }

  .p8ai-logo img {
    height: 56px;
  }

  .p8ai-logo-text {
    font-size: 42px;
  }

  .p8ai-lead {
    font-size: 16px;
  }

  .p8ai-form-intro {
    padding: 28px 32px;
  }

  .p8ai-form-body {
    padding: 32px;
  }
}

@media only screen and (min-width: 1680px) {
  .p8ai-col--form {
    flex-basis: 480px;
    width: 480px;
  }
}
