/*************************************************
  ✅ 1) テーブル（全ページ共通・スマホ横スクロール対応）
**************************************************/
table { width: 100%; border-collapse: collapse; table-layout: fixed; }
table th, table td {
  padding: 8px; border: 1px solid #000; vertical-align: middle;
  word-wrap: break-word; overflow-wrap: anywhere;
}
@media (max-width: 767px) {
  .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { font-size: 14px; }
}

/*************************************************
  ✅ 2) サイトタイトル（ヘッダーロゴ文字）
**************************************************/
h1.siteTitle, .siteTitle { text-align: center; white-space: nowrap; line-height: 1.3; letter-spacing: 0; }
@media (max-width: 767px) { h1.siteTitle, .siteTitle { font-size: 18px; } }

/*************************************************
  ✅ 3) メインビジュアル（見出し・サブコピー・ボタン）
**************************************************/
/* 見出し */
.eyecatch .catch, .kv .catch, .hero .catch,
.eyecatch .title, .mv-title, .main-visual .title {
  text-align: center; line-height: 1.25; white-space: normal;
  word-break: keep-all; overflow-wrap: anywhere;
}
@media (min-width: 768px) {
  .eyecatch .catch, .kv .catch, .hero .catch,
  .eyecatch .title, .mv-title, .main-visual .title { font-size: clamp(34px, 4vw, 56px); }
}
@media (max-width: 767px) {
  .eyecatch .catch, .kv .catch, .hero .catch,
  .eyecatch .title, .mv-title, .main-visual .title {
    font-size: clamp(22px, 7vw, 30px); line-height: 1.35; padding: 0 12px;
  }
}
/* サブコピー */
.eyecatch .desc, .eyecatch .lead,
.hero .desc, .hero .lead, .kv .lead,
.mv-subtitle, .main-visual .subTitle, .catchcopy {
  text-align: center; line-height: 1.9; white-space: normal; padding: 0 12px;
}
@media (min-width: 768px) {
  .eyecatch .desc, .eyecatch .lead, .hero .desc, .hero .lead,
  .kv .lead, .mv-subtitle, .main-visual .subTitle, .catchcopy {
    font-size: clamp(15px, 1.6vw, 18px);
  }
}
@media (max-width: 767px) {
  .eyecatch .desc, .eyecatch .lead, .hero .desc, .hero .lead,
  .kv .lead, .mv-subtitle, .main-visual .subTitle, .catchcopy { font-size: 14px; }
}
/* CTAボタン */
.eyecatch .btn, .hero .btn, .kv .btn { display: inline-block; }
@media (max-width: 767px) { .eyecatch .btn, .hero .btn, .kv .btn { width: 90%; max-width: 320px; } }

/*************************************************
  ✅ 4) グローバルナビ（スマホ横スクロール対応）
**************************************************/
@media (max-width: 767px) {
  .global-nav, .header-nav, .sp-nav { overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
}

/*************************************************
  ✅ 5) ヒーロータイトル（PC1行・スマホ折返し）
**************************************************/
@media (min-width: 768px) {
  .home .eyecatch .catch, .home .kv .catch, .home .hero .catch,
  .home .main-visual .title, .home .mv-title, .home .c-fv__title { white-space: nowrap !important; }
}
@media (max-width: 767px) {
  .home .eyecatch .catch, .home .kv .catch, .home .hero .catch,
  .home .main-visual .title, .home .mv-title, .home .c-fv__title {
    white-space: normal !important; text-align: center; padding: 0 12px; line-height: 1.4;
    word-break: keep-all; overflow-wrap: anywhere;
  }
}

/*************************************************
  ✅ 6) 料金表（横スクロール・線崩れ修正＋デザイン）
**************************************************/
.pricing-table { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; position: relative; }
.pricing-table::before, .pricing-table::after { display: none !important; }
.pricing-table { border: 2px solid #333; border-radius: 8px; box-sizing: border-box; margin: 40px 0; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.pricing-table table { width: 100%; min-width: 880px; border-collapse: collapse; border-spacing: 0; table-layout: fixed; }
.pricing-table th, .pricing-table td {
  border: 1px solid #ccc !important; padding: 14px 16px; text-align: center; vertical-align: middle;
  word-wrap: break-word; overflow-wrap: anywhere; font-size: 15px; line-height: 1.6; box-sizing: border-box;
}
.pricing-table th { background: #f7f8fa; color: #222; font-weight: 700; font-size: 16px; border-bottom: 2px solid #333; }
.pricing-table td:first-child { text-align: center; font-weight: 600; background: #fafafa; width: 28%; vertical-align: middle; }
.pricing-table tr:first-child th {
  background: linear-gradient(135deg, #4a90e2, #357ab8); color: #fff; font-size: 18px; font-weight: bold;
  letter-spacing: 0.5px; padding: 18px 0; text-transform: uppercase;
}
.pricing-table tr:nth-child(even) td { background: #fcfcfc; }
.pricing-table tr:nth-child(odd)  td { background: #ffffff; }
.pricing-table td { font-size: 15px; }
.pricing-table td:contains("〇") { color: #2ecc71; font-weight: bold; }
.pricing-table td:contains("×") { color: #e74c3c; font-weight: bold; }
@media (max-width: 767px) {
  .pricing-table th, .pricing-table td { font-size: 14px; padding: 10px 8px; }
  .pricing-table td:first-child { width: auto; white-space: nowrap; }
}

/*************************************************
  ✅ 8) 全ページワイド化（THE THOR 全面対応）
**************************************************/
html, body, #main, #content, #primary, #secondary,
.site-content, .content-area, .container, .container-inner,
.wrap, .l-inner, .inner, .main, .main-contents,
.entry-content, .page, .single, .archive, .post-content {
  max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important;
}
.section, .block, .article, .contents { width: 100% !important; background-size: cover !important; background-position: center !important; }
/* 最上位コンテナまで完全ワイド化 */
body > div, #wrapper, #page, #page-wrapper {
  max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important;
}

/*************************************************
  ✅ 9) 読み物用テキストだけ中央寄せ（任意）
**************************************************/
.text-content { max-width: 960px; margin: 0 auto; padding: 0 20px; }

/*************************************************
  ✅ 10) ホームのメインビジュアル（スマホ整え版）
**************************************************/
@media (max-width: 767px) {
  .home .eyecatch .catch, .home .kv .catch, .home .hero .catch, .home .main-visual .title, .home .mv-title, .home .c-fv__title {
    font-size: clamp(22px, 6.2vw, 28px); font-weight: 700; line-height: 1.45; letter-spacing: 0.03em;
    text-align: center; margin: 0 auto 0.8em; padding: 0 16px; word-break: keep-all; overflow-wrap: anywhere;
  }
  .home .eyecatch .desc, .home .eyecatch .lead, .home .hero .desc, .home .hero .lead,
  .home .kv .lead, .home .mv-subtitle, .home .main-visual .subTitle, .home .catchcopy {
    font-size: clamp(15px, 4.2vw, 17px); font-weight: 400; line-height: 1.9; color: #333; letter-spacing: 0.02em;
    text-align: center; margin: 0 auto 1.5em; padding: 0 18px; max-width: 90%;
  }
  .home .eyecatch .btn, .home .hero .btn, .home .kv .btn {
    font-size: 15px; font-weight: 600; padding: 14px 0; width: 85%; max-width: 300px; border-radius: 6px; letter-spacing: 0.05em;
    margin: 0 auto; display: block;
  }
}

/* =========================================================
   ✅ 11) YouTube埋め込み：スマホは100%、PCは中央寄せ＋最大幅900px（統一サイズ）
   - Gutenbergブロック / Classicの<p><iframe> / Jetpack すべて対応
   ========================================================= */

/* スマホ：100%・16:9（オーバーフロー防止） */
@media (max-width: 767.98px) {
  #main iframe[src*="youtube"], #main iframe[src*="youtu.be"],
  #content iframe[src*="youtube"], #content iframe[src*="youtu.be"],
  .content-area iframe[src*="youtube"], .content-area iframe[src*="youtu.be"],
  .entry-content iframe[src*="youtube"], .entry-content iframe[src*="youtu.be"],
  .post iframe[src*="youtube"], .post iframe[src*="youtu.be"],
  .page iframe[src*="youtube"], .page iframe[src*="youtu.be"],
  .widget iframe[src*="youtube"], .widget iframe[src*="youtu.be"],
  iframe[src*="youtube.com/embed/"], iframe[src*="youtu.be/"] {
    display: block !important; width: 100% !important; max-width: 100% !important;
    height: auto !important; aspect-ratio: 16 / 9; border: 0 !important; margin: 0 auto !important;
  }
  @supports not (aspect-ratio: 1/1) {
    #main iframe[src*="youtube"], #content iframe[src*="youtube"],
    .content-area iframe[src*="youtube"], .entry-content iframe[src*="youtube"],
    .post iframe[src*="youtube"], .page iframe[src*="youtube"],
    .widget iframe[src*="youtube"], iframe[src*="youtube.com/embed/"], iframe[src*="youtu.be/"] {
      height: calc(100vw * 9 / 16) !important;
    }
  }
  .content-area, .entry-content, .post, .page { overflow-x: hidden; }
}

/* PC：中央寄せ・最大幅900px（お好みで 800～1000 に変更可） */
@media (min-width: 768px) {
  /* 器（ラッパー）を900px上限で中央に */
  .wp-block-embed-youtube,
  figure.wp-block-embed.is-type-video,
  .wp-block-embed__wrapper,
  .jetpack-video-wrapper,
  /* Classicの<p>直下ケースも器として扱う */
  .entry-content p:has(> iframe[src*="youtube"]),
  .entry-content p:has(> iframe[src*="youtu.be"]) {
    width: 100% !important;
    max-width: 900px !important;   /* ← ここが標準サイズ */
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* iframe / 再生前のimgを器の幅に合わせてフィット */
  #main iframe[src*="youtube"], #main iframe[src*="youtu.be"],
  #content iframe[src*="youtube"], #content iframe[src*="youtu.be"],
  .content-area iframe[src*="youtube"], .content-area iframe[src*="youtu.be"],
  .entry-content iframe[src*="youtube"], .entry-content iframe[src*="youtu.be"],
  .post-content iframe[src*="youtube"], .post-content iframe[src*="youtu.be"],
  .main-contents iframe[src*="youtube"], .main-contents iframe[src*="youtu.be"],
  .post iframe[src*="youtube"], .post iframe[src*="youtu.be"],
  .page iframe[src*="youtube"], .page iframe[src*="youtu.be"],
  iframe[src*="youtube.com/embed/"], iframe[src*="youtu.be/"],
  .wp-block-embed-youtube img, figure.wp-block-embed.is-type-video img {
    display: block !important;
    width: 100% !important;      /* ラッパー幅にフィット */
    max-width: 900px !important; /* ここも同じ上限 */
    height: auto !important;
    aspect-ratio: 16 / 9;
    border: 0 !important;
    margin: 0 auto !important;
  }
}
