h2 {
  background-color: #FFC905; /* お手本指定色 */
  position: relative;
  padding-left: 40px; /* アイコン+余白を広げる */
}

h2::before {
  content: "▶";
  position: absolute;
  left: 10px;
  top: 50%;
  /* transformのtranslateYを微調整して縦中央を合わせる */
  transform: translateY(-52%);
  color: #000;
  font-size: 1em; /* 少し大きめにしてバランス調整 */
  line-height: 1;
}

/* 見出しの上下マージンをやや詰める（PC）*/
h2 {
  margin: 28px 0 16px;
}

/* テキストとの間のスペース */
h2 > * {
  display: inline-block;
  margin-left: 14px; /* さらに広めの余白 */
}

/* アンカーリンクのスムーススクロール */
html {
  scroll-behavior: smooth;
}

/* レスポンシブ */
@media screen and (max-width: 768px) {
  /* 全体的な文字サイズ調整 */
  body {
    font-size: 18px; /* スマホでの基本文字サイズ（読みやすく拡大） */
  }
  
  h1 {
    font-size: 24px; /* スマホでのh1サイズ */
    line-height: 1.3;
  }
  
  h2 {
    padding-left: 36px;
    font-size: 22px; /* スマホでのh2サイズ */
    line-height: 1.3;
    margin: 20px 0 12px; /* 見出し間隔をさらに詰める */
  }
  
  h3 {
    font-size: 20px; /* スマホでのh3サイズ */
    line-height: 1.3;
  }
  
  p {
    font-size: 18px; /* スマホでの段落サイズ */
    line-height: 1.6;
  }
  
  h2::before {
    left: 6px;
    transform: translateY(-52%);
    font-size: 0.9em;
  }
  h2 > * {
    margin-left: 12px; /* モバイルでもさらに広めの余白 */
  }
}

/* レイアウトのベース幅（PC） */
.body-container--landing-page {
  max-width: 960px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
  display: grid;          /* セクション間隔はgapで管理 */
  row-gap: 6px;           /* PCのセクション間隔をさらに詰める */
}

/* コンテンツ幅を読みやすい最大幅に制限 */
.hs-richtext,
.dnd-section table {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

/* セクションの外側余白は使用せず（gapで管理）*/
.dnd-section {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.dnd-section:first-of-type { margin-top: 0 !important; }
.dnd-section:last-of-type { margin-bottom: 0 !important; }

/* セクション間の上下余白（PC）をさらに圧縮 */
.dnd-section {
  padding-top: 28px !important;
  padding-bottom: 18px !important;
}

/* セミナーヒーロー画像の中央寄せと自動縮小 */
.seminar-hero {
  max-width: 1200px;
  margin: 0 auto;
  display: flex; /* 子要素を中央に配置 */
  justify-content: center;
  padding: 0 20px; /* 左右の余白 */
}

.seminar-hero img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  width: auto; /* アスペクト比を保持 */
  box-shadow: none; /* HubSpot側のデフォルト装飾の影響を抑制 */
}

/* セミナー画像のレスポンシブ対応 */
@media screen and (max-width: 768px) {
  .seminar-hero {
    padding: 0 16px; /* モバイルでは余白を小さく */
  }
  
  .seminar-hero img {
    max-width: 100%;
    height: auto;
  }

  /* 固定幅のiframe（例: Google Map）が横スクロールを発生させないように */
  .body-container--landing-page iframe,
  .body-container--landing-page embed,
  .body-container--landing-page object {
    width: 100%;
    max-width: 100%;
  }
}

@media screen and (max-width: 480px) {
  .seminar-hero {
    padding: 0 12px; /* 小さいスマホではさらに余白を小さく */
  }
}

/* HubSpot画像モジュールの中央寄せ */
.seminar-hero .hs-image-module {
  text-align: center;
  width: 100%;
}

.seminar-hero .hs-image-module img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* 画像リンクウィジェット（linked_image）も中央寄せに */
.body-container--landing-page .widget-type-linked_image,
.body-container--landing-page .hs-image-widget {
  text-align: center;
  width: 100%;
}

.body-container--landing-page .widget-type-linked_image img,
.body-container--landing-page .hs-image-widget img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* 登壇者画像（HubSpot画像モジュール）のレスポンシブ化は下記の共通指定で包括 */

/*
  Disabled (anchor offset / transparent background / bottom margin)
  - スクロール位置補正や背景透過、下余白の手動調整を無効化
  - 必要になったらこのコメントを外してください

  #seminar-form {
    scroll-margin-top: 140px; /* アンカー位置を上にずらす */
  }

  @media screen and (max-width: 768px) {
    #seminar-form { scroll-margin-top: 100px; }
  }

  .body-container--landing-page #seminar-form form,
  .body-container--landing-page #seminar-form .submitted-message {
    background: transparent;
  }

  .body-container--landing-page #seminar-form .hs-form,
  .body-container--landing-page #seminar-form .hs-form fieldset {
    background: transparent;
  }

  .body-container--landing-page #seminar-form {
    margin-bottom: 10px !important;
  }
*/



@media (max-width: 768px) {
  #seminar-form .hs-form .legal-consent-container,
  #seminar-form .hs-form .legal-consent-container *,
  #seminar-form .hs-form .hs-richtext,
  #seminar-form .hs-form .hs-richtext * {
    font-size: inherit;
  }
}



/* LP-Seminar: 全体の段落と見出しを16pxに統一（このテンプレ限定CSS） */
.body-container--landing-page h1,
.body-container--landing-page h2,
.body-container--landing-page h3,
.body-container--landing-page h4,
.body-container--landing-page h5,
.body-container--landing-page h6,
.body-container--landing-page p,
.body-container--landing-page li {
  font-size: 16px;
  line-height: 1.6;
}

/* ヒーローボタンのPCサイズ調整 */
@media screen and (min-width: 769px) {
  /* ベースのタイポグラフィ（PC） */
  body { font-size: 24px; line-height: 1.9; }
  h1 { font-size: 40px; line-height: 1.25; }
  h2 { font-size: 28px; line-height: 1.35; }
  h3 { font-size: 24px; line-height: 1.35; }

  .hs-button {
    font-size: 20px !important; /* PCでのボタン文字サイズを大きく */
    padding: 24px 80px !important; /* PCでのボタンパディングを大きく */
    min-height: 60px; /* PCでのボタン高さを大きく */
    font-weight: bold; /* ボタンテキストを太字に */
  }
}

/* 表組のレスポンシブ対応 */
@media screen and (max-width: 768px) {
  table {
    font-size: 16px; /* テーブル文字も16pxに統一 */
  }
  
  table td {
    padding: 10px 8px !important; /* スマホではパディングを小さく */
    word-break: break-word; /* 長い文字を改行 */
  }
  
  /* 表の幅を画面に合わせる */
  table {
    width: 100% !important;
    min-width: 100%;
  }
  
  /* セミナー詳細表の項目名を短縮表示 */
  table td:first-child {
    width: 25% !important; /* 項目名の幅を少し広げる */
    font-size: 13px;
  }
  
  /* ボタンのレスポンシブ対応 */
  .hs-button {
    font-size: 16px !important; /* スマホでのボタン文字サイズ */
    padding: 12px 24px !important; /* タッチしやすいサイズ */
    min-height: 44px; /* タッチターゲットの最小サイズ */
  }
  
  /* フォームのレスポンシブ対応 */
  .hs-form input,
  .hs-form select,
  .hs-form textarea {
    font-size: 16px !important; /* スマホでのフォーム文字サイズ */
    padding: 12px !important; /* タッチしやすいサイズ */
  }
  
  /* リッチテキストのレスポンシブ対応 */
  .rich-text {
    font-size: 16px;
    line-height: 1.6;
  }
  
  /* セクションのパディング調整 */
  .dnd-section {
    padding-top: 20px !important;
    padding-bottom: 12px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* LP-Seminar: 表内文字サイズを16pxに統一 */
.body-container--landing-page table,
.body-container--landing-page th,
.body-container--landing-page td,
.body-container--landing-page .spec-dl dt,
.body-container--landing-page .spec-dl dd,
.body-container--landing-page .program-dl dt,
.body-container--landing-page .program-dl dd {
  font-size: 16px !important;
}

/* Mobile adjustments: titles, paragraphs, tables → 12px */
@media (max-width: 768px) {
  .body-container--landing-page h1,
  .body-container--landing-page h2,
  .body-container--landing-page h3,
  .body-container--landing-page h4,
  .body-container--landing-page h5,
  .body-container--landing-page h6,
  .body-container--landing-page p,
  .body-container--landing-page li {
    font-size: 14px;
    line-height: 1.6;
  }

  .body-container--landing-page table,
  .body-container--landing-page th,
  .body-container--landing-page td,
  .body-container--landing-page .spec-dl dt,
  .body-container--landing-page .spec-dl dd,
  .body-container--landing-page .program-dl dt,
  .body-container--landing-page .program-dl dd {
    font-size: 12px !important;
  }
}

/* セクション間の間隔はマージンで管理（モバイル）*/
@media screen and (max-width: 768px) {
  .body-container--landing-page { row-gap: 6px; }
  .dnd-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .dnd-section:first-of-type { margin-top: 0 !important; }
  .dnd-section:last-of-type { margin-bottom: 0 !important; }
}

/* 定義リスト版 表示切替（PC=表風、モバイル=縦積み）*/
.spec-dl, .program-dl { display: grid; grid-template-columns: 220px 1fr; gap: 0; }
/* セミナー詳細表（spec）内の背景は表内外とも#EEEEEEで固定 */
.seminar-spec { background: #EEEEEE !important; }
.seminar-spec .spec-dl dt {
  font-weight: 700;
  padding: 6px 10px;
  line-height: 1.4;
  border: none;
  background: #EEEEEE !important;
}
.seminar-spec .spec-dl dd {
  margin: 0;
  padding: 6px 10px;
  line-height: 1.4;
  border: none;
  background: #EEEEEE !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.spec-dl dd:nth-of-type(1), .program-dl dd:nth-of-type(1) { }

/* プログラム（program）内の背景も表内外とも#EEEEEEで固定 */
.program-spec { background: #EEEEEE !important; }
.program-spec .program-dl dt {
  font-weight: 700;
  padding: 6px 10px;
  line-height: 1.4;
  border: none;
  background: #EEEEEE !important;
}
.program-spec .program-dl dd {
  margin: 0;
  padding: 6px 10px;
  line-height: 1.4;
  border: none;
  background: #EEEEEE !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* URLリンクの強制改行（連続英数字でのはみ出し対策） */
.spec-dl dd a,
.program-dl dd a {
  word-break: break-all;
}

@media screen and (max-width: 768px) {
  .spec-dl, .program-dl { display: block; }
  /* モバイルでもspec内は#EEEEEE固定 */
  .seminar-spec .spec-dl dt { border: none; padding: 6px 10px; background: #EEEEEE !important; }
  .seminar-spec .spec-dl dd { border: none; padding: 6px 10px 10px; background: #EEEEEE !important; }
  /* モバイルでもprogram内は#EEEEEE固定 */
  .program-spec .program-dl dt { border: none; padding: 6px 10px; background: #EEEEEE !important; }
  .program-spec .program-dl dd { border: none; padding: 6px 10px 10px; background: #EEEEEE !important; }
}

/* 旧リスト表示は廃止 */

/* 見出しの行間を本文(p)と揃える（全ブレークポイント共通） */
.body-container--landing-page h1,
.body-container--landing-page h2,
.body-container--landing-page h3,
.body-container--landing-page h4,
.body-container--landing-page h5,
.body-container--landing-page h6 {
  line-height: 1.25;
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}

/* モバイルでも見出しの行間・余白を最小限に */
@media (max-width: 768px) {
  .body-container--landing-page h1,
  .body-container--landing-page h2,
  .body-container--landing-page h3,
  .body-container--landing-page h4,
  .body-container--landing-page h5,
  .body-container--landing-page h6 {
    line-height: 1.25;
    margin-top: 0.15em;
    margin-bottom: 0.15em;
  }
}