/**
 * Greenleaf Tourist Club — index 用レスポンシブ補助スタイル
 * 既存のテーブル構造は維持し、クラス .gl-* で上書きします。
 */

html {
  -webkit-text-size-adjust: 100%;
}

body.gl-page {
  margin: 0;
  background-color: #ffffff;
}


.gl-page,
.gl-page *,
.gl-page *::before,
.gl-page *::after {
  box-sizing: border-box;
}

.gl-wrap {
  width: 100%;
  max-width: 100%;
}

.gl-spacer-table {
  margin: 0 auto;
}

.gl-main-table {
  /* 列幅・HTML width に任せ、親を横幅いっぱいに伸ばさない（伸ばすと中央寄せが崩れる） */
  max-width: 100%;
  margin: 0 auto;
  border-collapse: collapse;
}

/*
 * PC：表は width="1920" でも、長い URL 等で intrinsic 幅がビューポートを超えると
 * margin:auto は CSS 2.1 で 0 になり左寄せになる。flex + justify-content:center で中央基準にする。
 */
@media (min-width: 769px) {
  /*
   * body の直下子限定（>）だと、先頭にコメント・空白以外のノードが入ると flex が効かず、
   * 下の margin:0 だけが当たって表が左寄せになる。div.gl-wrap で拾い、横は auto で二重に中央寄せ。
   */
  body.gl-page div.gl-wrap--top,
  body.gl-page div.gl-wrap--main {
    display: flex;
    flex-direction: row;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
  }

  body.gl-page div.gl-wrap--main {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.gl-page div.gl-wrap--top > .gl-spacer-table,
  body.gl-page div.gl-wrap--main > .gl-main-table {
    flex: 0 0 auto;
    display: table;
    max-width: none;
    margin-block: 0;
    margin-inline: auto;
  }

  /*
   * ヘッダー1行化後、1行目だけ colspan=40 だと組み込み幅が狭く出ることがある。
   * 従来どおり設計幅 1920px を明示して全体横幅を維持する。
   */
  body.gl-page .gl-main-table {
    width: 1920px;
    min-width: 1920px;
    max-width: none;
    box-sizing: border-box;
  }

  body.gl-page div.gl-wrap--top > .gl-spacer-table {
    width: 1920px;
    min-width: 1920px;
    box-sizing: border-box;
  }
}

/* 共通フッター（inc/footer-nav.html）：ロゴ images/sp_logo.png — PC・スマホとも上段・中央 */
.gl-footer-sp-logo-wrap {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.45rem 0 0.75rem;
  box-sizing: border-box;
}

.gl-footer-sp-logo-wrap .gl-footer-sp-logo {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: auto;
  height: auto;
  max-width: min(280px, 34vw);
}

/* ヘッダー：1 セル（colspan=40）内レイアウト — 表の列数は維持 */
.gl-main-table tr.gl-header-brand > td.gl-header-brand-wrap {
  padding: 0;
  vertical-align: middle;
}

.gl-header-logo-link {
  display: inline-flex;
  align-items: flex-end;
  justify-content: flex-start;
  line-height: 0;
  flex-shrink: 0;
}

/* PC：ヘッダー（横幅最大 1920px・左ロゴ／右ナビ） */
@media (min-width: 769px) {
  .gl-main-table tr.gl-header-brand > td.gl-header-brand-wrap {
    padding-bottom: 0;
  }

  .gl-header-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: space-between;
    width: 100%;
    max-width: none;
    margin: 0;
    box-sizing: border-box;
    /* 左右を広めに取り、ロゴ・ナビを内側へ。下余白なし。 */
    padding: 8px clamp(3rem, 6.5vw, 6.5rem) 0;
    gap: 1.25rem;
    transform: translateY(-5px);
  }

  .gl-main-table tr.gl-header-brand .gl-nav-toggle {
    display: none !important;
  }

  .gl-header-pc-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-end;
    gap: clamp(1.25rem, 2.4vw, 2.75rem);
    flex: 0 0 auto;
    /* リンク直下に余白（ヘッダー行下端との間） */
    padding-bottom: 0.75rem;
  }

  .gl-header-pc-nav-link {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Light", "游ゴシック Light", sans-serif;
    font-size: 14pt;
    line-height: 1.35;
    color: #000000;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
  }

  .gl-header-pc-nav-link:hover {
    color: #000000;
  }

  .gl-header-pc-nav-link:focus-visible {
    color: #000000;
    outline: 2px solid #3a7c22;
    outline-offset: 3px;
  }

  .gl-main-table tr.gl-header-brand .gl-header-sp-logo {
    width: auto;
    height: auto;
    max-height: 100px;
    max-width: min(360px, 50vw);
    vertical-align: middle;
    object-fit: contain;
  }

  /*
   * 共通フッター（.gl-main-table 内）：PC は旧フッターと同じ 4 列×3 行（3 行目 2 列目は空セル）
   */
  .gl-main-table .gl-footer-nav-index2 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(3, auto);
    justify-items: center;
    align-items: baseline;
    column-gap: 2rem;
    row-gap: 1.75rem;
    width: 100%;
    max-width: min(1320px, 100%);
    margin: 0 auto;
    padding: 1.35rem 1rem 1.35rem;
    box-sizing: border-box;
  }

  .gl-main-table .gl-footer-nav-index2 a[href*="youtube.com/channel"] {
    grid-column: 1;
    grid-row: 1;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="about-gorilla-tracking.html"] {
    grid-column: 2;
    grid-row: 1;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="uganda-information.html"] {
    grid-column: 3;
    grid-row: 1;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="payment-cancellation.html"] {
    grid-column: 4;
    grid-row: 1;
  }

  .gl-main-table .gl-footer-nav-index2 a[href^="https://www.facebook.com/Greenleaftouristclub"] {
    grid-column: 1;
    grid-row: 2;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="about-rwenozri-mountains.html"] {
    grid-column: 2;
    grid-row: 2;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="travel-tips.html"] {
    grid-column: 3;
    grid-row: 2;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="company.html"] {
    grid-column: 4;
    grid-row: 2;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="https://green.co.ug/blog/"] {
    grid-column: 1;
    grid-row: 3;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="what-to-prepare.html"] {
    grid-column: 3;
    grid-row: 3;
  }

  .gl-main-table .gl-footer-nav-index2 a[href="companye.html"] {
    grid-column: 4;
    grid-row: 3;
  }

  .gl-main-table .gl-footer-nav-index2 a {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", sans-serif;
    font-size: 19px;
    line-height: 1.7;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 3px;
    min-width: 0;
    white-space: normal;
  }
}

/* モバイル専用ドロワー・ハンバーガー（768px 超では非表示） */
.gl-mobile-nav-backdrop,
.gl-mobile-nav-drawer {
  display: none !important;
}

.gl-nav-toggle {
  display: none;
}

/* 募集型企画旅行の案内（.gl-disclaimer-travel）の下に余白 */
.gl-main-table td:has(> span.gl-disclaimer-travel) {
  padding-bottom: 2.75rem;
}

/* フッター コピーライト */
.gl-main-table td.gl-copyright {
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
  color: #555;
  padding-top: 1.5rem !important;
  padding-bottom: 1.85rem !important;
  vertical-align: middle;
}

.gl-main-table td.gl-copyright font {
  font-size: inherit !important;
}

/* コピーライト：PC のみ大きく（上の共通 0.75rem !important より後に書くことで上書き） */
@media (min-width: 769px) {
  .gl-main-table td.gl-copyright {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .gl-main-table td.gl-copyright font {
    font-size: inherit !important;
  }
}

/*
 * Weather in Uganda / ウガンダの気候
 * PC：枠線・背景・装飾色は付けず文字は黒。文字サイズは元 Word 出力に合わせる（英見出し 24pt／日 16pt／表本体 18pt／説明行 14pt）
 * スマホは下記 @media 内でカードデザイン
 */
.gl-weather {
  max-width: 100%;
  font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", sans-serif;
}

.gl-weather-hr {
  margin: 0.35rem 0 1rem;
  border: none;
  border-top: 1px solid #000;
}

.gl-weather-heading {
  text-align: center;
  margin-bottom: 1rem;
}

.gl-weather-title-en {
  margin: 0;
  font-size: 24pt;
  font-weight: 500;
  color: #3b7d23;
  line-height: 1.3;
}

.gl-weather-title-ja {
  margin: 0.35rem 0 0;
  font-size: 16pt;
  font-weight: 400;
  color: #000;
}

.gl-weather-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 0.75rem;
}

.gl-weather-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 18pt;
  line-height: 1.45;
  color: #000;
  background: transparent;
}

.gl-weather-table th,
.gl-weather-table td {
  border: none;
  padding: 0.35rem 0.5rem;
  vertical-align: middle;
}

.gl-weather-table thead th {
  background: transparent;
  color: #000;
  font-size: 18pt;
  font-weight: 400;
  text-align: center;
}

/* 地名行 th：親 .gl-weather のフォントを継承。Web フォント読込後は 800 が太すぎるため bold（700） */
.gl-weather-table tbody th[scope="row"] {
  background: transparent;
  color: #000;
  font-size: 18pt;
  font-weight: 700 !important;
  text-align: left;
}

.gl-weather-table tbody td {
  text-align: center;
  color: #000;
  font-size: 18pt;
}

.gl-weather-table .gl-weather-desc td {
  text-align: left;
  font-size: 14pt;
  color: #000;
  background: transparent;
  line-height: 1.55;
}

.gl-weather-footnote {
  margin: 0;
  font-size: 12pt;
  color: #000;
  line-height: 1.5;
  text-align: left;
}

.gl-weather-footnote a {
  color: #000;
}

/* PC：気候表は横幅およそ 950px・中央寄せ。列間は横パディングを詰める。「地域」見出しのみ非表示（スマホは影響なし） */
@media (min-width: 769px) {
  .gl-weather-heading {
    margin-top: 3.5rem;
    margin-bottom: 3.5rem;
  }

  .gl-weather-table-wrap {
    max-width: 950px;
    margin-inline: auto;
  }

  .gl-weather-table th,
  .gl-weather-table td {
    padding: 0.28rem 0.08rem;
  }

  .gl-weather-table thead th:first-child {
    visibility: hidden;
  }

  /* 脚注は表ラッパーと同じ幅・左端をそろえる */
  .gl-weather-footnote {
    max-width: 950px;
    margin-inline: auto;
  }

  /* tour_list：スマホ専用改行用 br を PC では無効化（1行見出しのまま） */
  .gl-main-table br.gl-tour-list-heading-br {
    display: none;
  }
}

/* 固定幅画像のはみ出し防止（width/height 属性はそのまま、表示は縮小） */
.gl-page img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

/*
 * 折り返し
 * anywhere を td / 全 p に付けると、継承で日本語が「国立公園」「チンパンジー」等の字の途中で折れやすい。
 * 本文は normal。長い無空白の URL 等はリンク（a）にだけ anywhere を付与する。
 */
.gl-page td,
.gl-page p {
  word-wrap: normal;
  overflow-wrap: normal;
}

.gl-page a {
  overflow-wrap: anywhere;
  word-wrap: break-word;
}

/* PC: ツアー各見出し — font-family は HTML 側（親 span の 游ゴシック 等）を継承させるため指定しない */
.gl-page .gl-tour-title {
  color: #3b7d23 !important;
  font-size: 28pt !important;
  font-weight: 400 !important;
  line-height: 1.35;
  margin-top: 0.35rem;
}

/* PC: ヒーロー英字「Tour Category」 */
.gl-page .gl-hero-en-title {
  font-family: Inter, "Hiragino Sans", sans-serif !important;
  color: #275317 !important;
  font-size: 28pt !important;
  line-height: 1.35;
}

/* PC: 「ツアー・カテゴリー」日本語サブ見出し */
.gl-page .gl-tour-category-ja {
  font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", sans-serif !important;
  font-size: 16pt !important;
  line-height: 1.4;
}

/* PC: 野生動物サファリ行・見出しと本文のあいだ */
.gl-main-table tr.gl-row-wildlife .gl-wildlife-heading {
  padding-bottom: 0.5rem;
}

/*
 * tour-uganda-gorilla-classic-7.html：タイトル直下リード（<br> 非表示ルールの影響を受けず行を確実に分ける）
 */
.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table .gl-tour-classic-7-hero-desc-line {
  display: block !important;
}

/*
 * classic-7 ヒーローセル：グローバル td の折り返し指定の継承をセル単位で normal に（タイトル等も含む）
 * keep-all / line-break はリード p のみ（見出しの折り返しを過度に制限しない）
 */
.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table td.gl-tour-classic-7-hero-cell,
.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table td.gl-tour-classic-7-hero-cell * {
  overflow-wrap: normal !important;
  word-wrap: normal !important;
}

.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table p.gl-tour-classic-7-hero-desc,
.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table p.gl-tour-classic-7-hero-desc * {
  overflow-wrap: normal !important;
  word-wrap: normal !important;
  word-break: keep-all !important;
  line-break: strict;
}

.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table .gl-tour-classic-7-hero-desc-line + .gl-tour-classic-7-hero-desc-line {
  margin-top: 0.25em;
}

/* 1 行目内で「ムブロ湖…」と「マバンバ湿地…」のあいだにだけ入る不自然な折り返しを防ぐ（親の white-space: normal の継承を上書き） */
.gl-page--tour-uganda-gorilla-classic-7 .gl-main-table .gl-tour-classic-7-hero-desc-nowrap {
  white-space: nowrap !important;
}

/* タップしやすいリンク（モバイル） */
@media (max-width: 768px) {
  .gl-page a {
    -webkit-tap-highlight-color: rgba(58, 124, 34, 0.2);
  }
}

/* ---------- スマホ・狭い画面 ---------- */
@media (max-width: 768px) {
  .gl-wrap--top {
    display: none;
  }

  .gl-wrap--main {
    /* 横はみ出し防止。clip 対応では hidden の代わりに clip（子の position:sticky が効きやすい） */
    overflow-x: hidden;
    overflow-x: clip;
    padding-left: max(12px, env(safe-area-inset-left, 0px));
    padding-right: max(12px, env(safe-area-inset-right, 0px));
    /* align=center 由来の text-align で子ブロックが縮むのを防ぐ */
    text-align: start !important;
  }

  .gl-wrap--main > .gl-main-table {
    margin-inline: 0 !important;
    max-width: 100% !important;
  }

  /* 共通ヘッダー行を fixed にしたぶん、本文が隠れないよう予約（.gl-header-inner の上下＋ロゴ高に合わせる） */
  .gl-wrap--main > .gl-main-table:has(tr.gl-header-brand) {
    padding-top: calc(max(0.5rem, env(safe-area-inset-top, 0px)) + 1rem + 44px);
  }

  /* アンカーリンクが固定ヘッダーに隠れないよう scroll-margin-top を設定 */
  .gl-page a[id] {
    scroll-margin-top: calc(max(0.5rem, env(safe-area-inset-top, 0px)) + 1rem + 44px + 0.75rem);
  }

  .gl-main-table,
  .gl-main-table tbody,
  .gl-main-table tr,
  .gl-main-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .gl-main-table tr {
    margin: 0;
  }

  .gl-main-table td {
    padding-left: 0;
    padding-right: 0;
    text-align: left !important;
  }

  /* YouTube 埋め込み：固定 width/height によるスマホでの横はみ出し防止（16:9） */
  .gl-main-table iframe[src*="youtube.com/embed"] {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    border: 0;
  }

  /* Word 由来の height 属性（空セルを縦に巨大化する）を無効化 */
  .gl-main-table td[height] {
    height: auto !important;
    min-height: 0 !important;
  }

  /*
   * 1) colspan 付きセルがある行では、グリッド用の「colspan なし」セルを出さない（40 セル縦積み防止）
   * 2) colspan も中身（画像・hr・ネスト表）も無い行は空行として非表示
   */
  .gl-main-table > tbody > tr:has(> td[colspan]) > td:not([colspan]) {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: none !important;
  }

  /*
   * colspan が1つも無く、画像・hr・ネスト表も無い「長い」行は Word の空ガター行（例: 40 個の &nbsp; セル）とみなして非表示。
   * 閾値 20：本文が細かく分割された行は通常ここまで td 数が揃わない。
   */
  .gl-main-table > tbody > tr:not(.gl-header-brand):not(.gl-testimony-pad):not(.gl-testimony-rule):not(.gl-testimony-heading):not(.gl-testimony-body):not(.gl-about-rule):not(.gl-about-heading):not(.gl-weather-section):not(.gl-table-spacer):not(.gl-footer-rule):not(:has(> td[colspan])):not(:has(> td img)):not(:has(> td hr)):not(:has(> td > table)):has(> td:nth-child(20)) {
    display: none !important;
  }

  .gl-main-table td.gl-copyright {
    padding-top: 1rem !important;
    padding-bottom: 1.15rem !important;
  }

  .gl-main-table td:has(> span.gl-disclaimer-travel) {
    padding-bottom: 2.5rem !important;
  }

  /*
   * 各種ツアー：お問い合わせブロック末尾「詳しくは、ツアー申し込みの手順をご覧ください。」を含む colspan="28" の下余白
   * （ヘッダーの colspan="4" ナビ内リンクは対象外）
   */
  .gl-main-table td[colspan="28"]:has(a[href="how_to_organize_tour.html"]) {
    padding-bottom: 2.35rem !important;
  }

  /*
   * メインアイキャッチ：スマホは横幅いっぱい・縦横比そのまま（object-fit によるトリミングは行わない）
   */
  .gl-main-table td.gl-hero-eyecatch {
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table td.gl-hero-eyecatch .gl-hero-eyecatch-img {
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0;
  }

  /*
   * mountain_gorilla_tour 等：ヒーロー行の次が空行 tr（非表示）のあと、最初の colspan 24 ブロックに上余白（tour_list 系レイアウトと同程度）
   */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] {
    padding-top: 0.625rem !important;
  }

  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr > td[colspan="32"] {
    padding-top: 0.625rem !important;
  }

  /*
   * tour-uganda-gorilla-classic-7.html：タイトル直下リード（.gl-tour-classic-7-hero-desc-line で行分割済み・左寄せ）
   */
  .gl-page--tour-uganda-gorilla-classic-7 .gl-main-table p.gl-tour-classic-7-hero-desc {
    text-align: left !important;
    margin-top: 0.35rem !important;
    margin-bottom: 0.5rem !important;
    line-height: 1.65 !important;
  }

  .gl-page--tour-uganda-gorilla-classic-7 .gl-main-table .gl-tour-classic-7-hero-desc-line {
    display: inline !important;
  }

  .gl-page--tour-uganda-gorilla-classic-7 .gl-main-table p.gl-tour-classic-7-hero-desc,
  .gl-page--tour-uganda-gorilla-classic-7 .gl-main-table p.gl-tour-classic-7-hero-desc * {
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: normal !important;
    line-break: auto !important;
  }

  /*
   * Testimony / お客様の声：width=44 の空セルが display:block で縦に積み、上下に大きな余白になるのを解消
   */
  .gl-main-table tr.gl-testimony-pad {
    display: none !important;
  }

  .gl-main-table tr.gl-testimony-rule > td:not([colspan="34"]),
  .gl-main-table tr.gl-testimony-heading > td:not([colspan="24"]),
  .gl-main-table tr.gl-testimony-body > td:not([colspan="24"]),
  .gl-main-table tr.gl-about-rule > td:not([colspan="34"]),
  .gl-main-table tr.gl-about-heading > td:not([colspan="24"]) {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: none !important;
  }

  .gl-main-table tr.gl-testimony-rule td[colspan="34"],
  .gl-main-table tr.gl-about-rule td[colspan="34"] {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }

  .gl-main-table tr.gl-testimony-rule hr,
  .gl-main-table tr.gl-about-rule hr {
    margin: 0.35rem 0 !important;
  }

  .gl-main-table p.gl-testimony-title {
    margin-top: 0 !important;
    margin-bottom: 0.35rem !important;
  }

  .gl-main-table tr.gl-testimony-heading td[colspan="24"] {
    text-align: center !important;
  }

  .gl-main-table tr.gl-testimony-body td[colspan="24"] {
    padding-top: 0.25rem !important;
  }

  /* About Uganda's Tourism：見出しブロックのみ中央、本文は左（td 全体を center にすると本文も中央になるため分離） */
  .gl-main-table tr.gl-about-heading td[colspan="24"] {
    text-align: left !important;
    padding-top: 0 !important;
  }

  .gl-main-table tr.gl-about-heading td[colspan="24"] > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    text-align: center !important;
  }

  /* 見出しの英語（24pt 系）のみスマホで調整（ツアー見出し 1.25rem より一回り大きめに読みやすく） */
  .gl-main-table tr.gl-about-heading td[colspan="24"] > p.MsoNormal:first-of-type span[style*="font-size:24.0pt"] {
    font-size: 1.48rem !important;
  }

  /* tour_list / about_uganda_national_parks / how_to_organize_tour 等：ページ見出し（PC は 28pt のまま、スマホは 21pt 太字） */
  .gl-main-table .gl-tour-list-heading-ja {
    font-size: 21pt !important;
    font-weight: 700 !important;
  }

  .gl-main-table .gl-tour-list-heading-ja a {
    font-size: inherit !important;
    font-weight: 700 !important;
  }

  /*
   * ツアー系：アイキャッチ直下の最初の colspan="24" ブロック内のページ見出し（入れ子 span の別サイズ・色も mountain_gorilla_tour と揃える）
   */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] .gl-tour-list-heading-ja,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] .gl-tour-list-heading-ja * {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-size: 21pt !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: #3a7c22 !important;
  }

  /* 同上：見出し内の先頭 <br>（Word 由来）がスマホで空行になるのを防ぐ */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] .gl-tour-list-heading-ja br {
    display: none !important;
  }

  /* 同上：見出しを包む先頭 p の下詰め（本文リードとの間隔） */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] > p.MsoNormal:first-of-type:has(.gl-tour-list-heading-ja) {
    margin-top: 0 !important;
    margin-bottom: 0.2rem !important;
  }

  /* 同上：ヒーロー直下リード段落の上下マージン */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] > p.gl-mountain-gorilla-lead,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] > p.gl-uganda-mice-lead,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] > p.gl-uganda-car-hire-lead {
    margin-top: 0.35rem !important;
    margin-bottom: 0.75rem !important;
    line-height: 1.68 !important;
  }

  /*
   * 同上：ヒーロー直下リードの本文（Word の style 属性で 24px 等が付いたページを mountain_gorilla_tour の 16pt 相当に揃える）
   */
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-mountain-gorilla-lead span,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-mountain-gorilla-lead font,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-uganda-car-hire-lead span,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-uganda-car-hire-lead font,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-uganda-mice-lead span,
  .gl-main-table tr:has(> td.gl-hero-eyecatch) + tr + tr > td[colspan="24"] p.gl-uganda-mice-lead font {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-size: 0.95rem !important;
    line-height: 1.68 !important;
  }

  /* mountain_gorilla_tour.html 等：冒頭リード（インライン text-align:-webkit-center を左寄せに） */
  .gl-main-table .gl-mountain-gorilla-lead,
  .gl-main-table .gl-uganda-car-hire-lead,
  .gl-main-table .gl-uganda-mice-lead {
    text-align: left !important;
    line-height: 1.68 !important;
  }

  .gl-main-table .gl-mountain-gorilla-lead span,
  .gl-main-table .gl-uganda-car-hire-lead span,
  .gl-main-table .gl-uganda-mice-lead span {
    text-align: left !important;
  }

  .gl-main-table .gl-mountain-gorilla-lead br,
  .gl-main-table .gl-uganda-car-hire-lead br,
  .gl-main-table .gl-uganda-mice-lead br {
    display: none !important;
  }

  /* mountain_gorilla_tour.html／bird_watching_tour.html：「お客様の希望される…お問い合わせをお送りください。」ブロックの上余白 */
  .gl-main-table td.gl-mountain-gorilla-cta-lead {
    padding-top: 1.5rem !important;
  }

  /*
   * mountain_gorilla_tour.html／nile_perch_tour.html／uganda-car-hire.html／uganda-mice.html：太字タイトル（colspan 5 の b）＋本文 colspan 20 の行
   */
  .gl-page--mountain-gorilla-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"] > b) > td[colspan="5"][valign="top"],
  .gl-page--rwenzori-mountains-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"] > b) > td[colspan="5"][valign="top"],
  .gl-page--nile-perch-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"] > b) > td[colspan="5"][valign="top"],
  .gl-page--uganda-car-hire .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"] > b) > td[colspan="5"][valign="top"],
  .gl-page--uganda-mice .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"] > b) > td[colspan="5"][valign="top"] {
    padding-top: 1.25rem !important;
  }

  /*
   * uganda-car-hire.html：長期リース等、見出しと本文が同一 p（.gl-uganda-car-hire-lead）のブロック向け。スマホで br を消したあと見出し直下が詰まらないよう余白
   */
  .gl-page--uganda-car-hire .gl-main-table .gl-uganda-car-hire-lead .gl-tour-list-heading-ja {
    display: block;
    margin-bottom: 0.65rem !important;
  }

  /*
   * uganda-mice.html：colspan 24 ブロック内の .gl-tour-list-heading-ja（ヒーロー見出し・セクション見出し）の下余白
   */
  .gl-page--uganda-mice .gl-main-table td[colspan="24"] .gl-tour-list-heading-ja {
    display: block;
    margin-bottom: 0.65rem !important;
  }

  /*
   * uganda-car-hire.html／uganda-mice.html：「お問い合わせフォーム」22pt Zen（colspan 26）。wildlife-safari の 26 列ルールは align=center 限定のため別途指定
   */
  .gl-page--uganda-car-hire .gl-main-table td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"],
  .gl-page--uganda-mice .gl-main-table td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"] {
    font-size: 1.28rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
  }

  .gl-page--uganda-car-hire .gl-main-table tr:has(> td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"]) > td[colspan="26"],
  .gl-page--uganda-mice .gl-main-table tr:has(> td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"]) > td[colspan="26"] {
    padding-top: 1.15rem !important;
    padding-bottom: 0.35rem !important;
  }

  .gl-page--uganda-car-hire .gl-main-table tr:has(> td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"]) + tr > td[colspan="26"],
  .gl-page--uganda-mice .gl-main-table tr:has(> td[colspan="26"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"]) + tr > td[colspan="26"] {
    padding-top: 0.15rem !important;
    padding-bottom: 1.35rem !important;
  }

  /* ─── ツアー概要 メタ情報（日数・開始場所・目的地と活動内容）スマホスタイル ─── */

  /* colspan=5+23 の行で .gl-tour-meta-inline でないもの（旅程などの見出し行）に上余白 */
  .gl-main-table tbody tr:not(.gl-tour-meta-inline):has(> td[colspan="23"]):has(> td[colspan="5"][valign="top"]) > td[colspan="5"][valign="top"] {
    padding-top: 1.1rem !important;
  }

  /* セクション見出しセルに上余白 */
  .gl-main-table td:has(.gl-tour-list-section-heading) {
    padding-top: 1.1rem !important;
  }

  /* メタ情報行：グリッドで「ラベル 11rem ｜ 値 1fr」の2列表示 */
  .gl-main-table tbody tr.gl-tour-meta-inline {
    display: grid !important;
    grid-template-columns: 11rem 1fr;
    column-gap: 0.5rem;
    row-gap: 0;
    align-items: baseline;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* 「目的地と活動内容」行：1列全幅、ラベルと箇条書きを縦積み */
  .gl-main-table tbody tr.gl-tour-meta-inline.gl-tour-meta-inline--activity-list {
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
    row-gap: 0.35rem !important;
    align-items: start !important;
  }

  /* 「目的地と活動内容」行：ラベル列・値列ともに全幅 */
  .gl-main-table tbody tr.gl-tour-meta-inline.gl-tour-meta-inline--activity-list > td[colspan="5"][valign="top"],
  .gl-main-table tbody tr.gl-tour-meta-inline.gl-tour-meta-inline--activity-list > td[colspan="23"][valign="top"] {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* メタ情報セル共通：ブロック化・余白・罫線リセット */
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="5"][valign="top"],
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="23"][valign="top"] {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.25rem 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    line-height: 1.5 !important;
  }

  /* ラベル列・日数や開始場所の値列：やや大きめ */
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="5"][valign="top"],
  .gl-main-table tbody tr.gl-tour-meta-inline:not(.gl-tour-meta-inline--activity-list) > td[colspan="23"][valign="top"] {
    font-size: 1.1875rem !important;
  }

  /* 「目的地と活動内容」の箇条書き列：標準サイズ */
  .gl-main-table tbody tr.gl-tour-meta-inline.gl-tour-meta-inline--activity-list > td[colspan="23"][valign="top"] {
    font-size: 1rem !important;
  }

  /* 内部 span は親の font-size を継承 */
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="5"][valign="top"] span,
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="23"][valign="top"] span {
    font-size: inherit !important;
  }

  /* 箇条書き li も継承 */
  .gl-main-table tbody tr.gl-tour-meta-inline.gl-tour-meta-inline--activity-list > td[colspan="23"][valign="top"] li {
    font-size: inherit !important;
  }

  /* 空 span を非表示（行ボックスのズレ防止） */
  .gl-main-table tbody tr.gl-tour-meta-inline > td span:empty {
    display: none !important;
  }

  /* 値列の min-width リセット（折り返し対応） */
  .gl-main-table tbody tr.gl-tour-meta-inline > td[colspan="23"][valign="top"] {
    min-width: 0;
  }

  /* ─── 旅程 スマホスタイル（汎用） ────────────────────────────────── */
  .gl-main-table tbody tr.gl-itinerary-ampm-row {
    display: grid !important;
    grid-template-columns: 4.25rem 1fr;
    column-gap: 0.5rem;
    row-gap: 0.25rem;
    align-items: baseline;
    width: 100% !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* グリッド崩れ防止：&nbsp; 等の非分類TDを非表示（leading/trailing spacer TDs）
     :not(:has(*)) で要素子を持たないTDのみ対象にし、実コンテンツを含むTDは隠さない */
  .gl-main-table tbody tr.gl-itinerary-ampm-row > td:not(.gl-itinerary-day-cell):not(.gl-itinerary-ampm-label):not(.gl-itinerary-slot-desc):not(:has(*)) {
    display: none !important;
  }

  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell {
    grid-column: 1 / -1;
    margin-top: 2rem !important;
    padding-top: 0.35rem !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
  }

  /*
   * 「旅程」直下の余白：汎用ルール「tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell { margin-top: 2rem }」と
   * 詳細度が拮抗するため、body で詳細度を上げる。
   */
  body .gl-main-table tbody tr:has(> td[colspan="2"] .gl-tour-list-section-heading) + tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell {
    margin-top: 0 !important;
    padding-top: 0.25rem !important;
  }

  body .gl-main-table tbody tr:has(> td[colspan="2"] .gl-tour-list-section-heading) + tr.gl-itinerary-ampm-row {
    margin-top: 0.65rem !important;
  }

  /* 「旅程」セル：ツアー概要と共用の td:has(.gl-tour-list-section-heading) padding-top 1.1rem を上書き（旅程のみ colspan="2"） */
  .gl-main-table td[colspan="2"]:has(.gl-tour-list-section-heading) {
    padding-top: 0.5rem !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell strong,
  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell span,
  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell b {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
  }

  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-ampm-label,
  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-slot-desc {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.15rem 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    line-height: 1.45 !important;
  }

  .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-slot-desc {
    min-width: 0;
  }

  /*
   * 旅程：スペーサー行を非表示
   * ① Python が付与した gl-itinerary-spacer-row クラスで直接非表示（最優先・全ブラウザ対応）
   * ② colspan="2"+"22" にコンテンツなし（空・&nbsp; 共通）
   * ③ colspan="24" にコンテンツなし（:has(*) で要素子を持たない空セルのみ対象）
   * ④ 個別 &nbsp; TD のみ・colspan なし（Word 生成の行間スペーサー）
   */
  .gl-main-table tbody tr.gl-itinerary-spacer-row {
    display: none !important;
  }

  .gl-main-table tbody tr:not(.gl-itinerary-ampm-row):not(.gl-itinerary-lodge-row):has(> td[colspan="2"]:not(:has(*))):has(> td[colspan="22"]:not(:has(*))) {
    display: none !important;
  }

  .gl-main-table tbody tr:not(.gl-itinerary-ampm-row):not(.gl-itinerary-lodge-row):has(> td[colspan="24"]:not(:has(*))) {
    display: none !important;
  }

  .gl-main-table tbody tr:not(.gl-itinerary-ampm-row):not(.gl-itinerary-lodge-row):not(:has(> td[colspan])):not(:has(> td:has(*))) {
    display: none !important;
  }

  /* ampm_no_day 行（午後等）は spacer 非表示後も上余白が必要なため設定 */
  .gl-main-table tbody tr.gl-itinerary-ampm-row:not(:has(> td.gl-itinerary-day-cell)) {
    margin-top: 0.6rem !important;
  }

  /* 同上：宿泊地の直後に来る「日付入り」旅程行は、他日付との段差を揃える（汎用の日付 margin-top: 2rem を上書き） */
  body.gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr.gl-itinerary-lodge-row + tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell,
  body.gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr.gl-itinerary-lodge-row + tr + tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell {
    margin-top: 0.45rem !important;
    padding-top: 0.2rem !important;
  }

  /* tour-ethiopia-omo-hammer-mursi-karo-8：colspan24 が要素子なし（&nbsp; のみ等）の行はスマホで空ブロックになるため非表示 */
  .gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr:not(.gl-itinerary-ampm-row):not(.gl-itinerary-lodge-row):has(> td[colspan="24"]:not(:has(*))) {
    display: none !important;
  }

  /*
   * tour-ethiopia-omo-hammer-mursi-karo-8：「夕方」など gl-itinerary-ampm-row 未付与の続き行はブロック積みになり余白が崩れるため、
   * 午前／午後行と同じ 2 列グリッドにそろえる（日付セル無し・colspan2 に strong がある行のみ）
   */
  .gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr:not(.gl-itinerary-lodge-row):not(.gl-itinerary-ampm-row):not(:has(td.gl-itinerary-day-cell)):has(> td[colspan="2"]:has(> strong)):has(> td[colspan="22"]) {
    display: grid !important;
    grid-template-columns: 4.25rem 1fr;
    column-gap: 0.5rem;
    row-gap: 0.25rem;
    align-items: baseline;
    width: 100% !important;
    margin-top: 0.35rem !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr:not(.gl-itinerary-lodge-row):not(.gl-itinerary-ampm-row):not(:has(td.gl-itinerary-day-cell)):has(> td[colspan="2"]:has(> strong)):has(> td[colspan="22"]) > td[colspan="2"],
  .gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr:not(.gl-itinerary-lodge-row):not(.gl-itinerary-ampm-row):not(:has(td.gl-itinerary-day-cell)):has(> td[colspan="2"]:has(> strong)):has(> td[colspan="22"]) > td[colspan="22"] {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.15rem 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    line-height: 1.45 !important;
  }

  .gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr:not(.gl-itinerary-lodge-row):not(.gl-itinerary-ampm-row):not(:has(td.gl-itinerary-day-cell)):has(> td[colspan="2"]:has(> strong)):has(> td[colspan="22"]) > td[colspan="22"] {
    min-width: 0;
  }

  /* 同上：日付行の上余白を全体的にやや詰める（「旅程」直後・宿泊地直後はより詳細度の高いルールが優先） */
  body.gl-page--tour-ethiopia-omo-hammer-mursi-karo-8 .gl-main-table tbody tr.gl-itinerary-ampm-row > td.gl-itinerary-day-cell {
    margin-top: 1.35rem !important;
  }

  /* ─── 旅程 宿泊地スタイル（汎用） ─────────────────────────────────── */
  .gl-main-table tbody tr.gl-itinerary-spacer-row {
    display: none !important;
  }

  .gl-main-table tbody tr:has(+ tr.gl-itinerary-lodge-row):has(> td[colspan="24"]):not(:has(.gl-itinerary-ampm-label)):not(:has(.gl-itinerary-lodge-label)) {
    display: none !important;
  }

  /*
   * 旅程・宿泊地：行内の空き <td> はグリッド子になると列が崩れるため非表示にし、
   * 「宿泊地」と施設名の2セルだけが 4.25rem + 1fr の1行になるようにする。
   */
  .gl-main-table tbody tr.gl-itinerary-lodge-row > td:not(.gl-itinerary-lodge-label):not(.gl-itinerary-lodge-desc) {
    display: none !important;
  }

  /* 旅程：「宿泊地」と施設名をスマホで横並び（午前/午後と同幅グリッド） */
  .gl-main-table tbody tr.gl-itinerary-lodge-row {
    display: grid !important;
    grid-template-columns: 4.25rem 1fr;
    column-gap: 0.5rem;
    row-gap: 0;
    align-items: baseline;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-label,
  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-desc {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.15rem 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    line-height: 1.45 !important;
    font-size: 1rem !important;
  }

  /* 宿泊地名は折り返し可（長い施設名もはみ出さない） */
  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-desc {
    min-width: 0;
    white-space: normal !important;
  }

  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-desc * {
    white-space: normal !important;
  }

  /* 宿泊地ラベル・施設名：Wordインラインfont-sizeを上書きして両者を揃える */
  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-label *,
  .gl-main-table tbody tr.gl-itinerary-lodge-row > td.gl-itinerary-lodge-desc * {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
  }

  /*
   * GALLERY／ツアーの様子：画像の直下にキャプション・スマホは1列で順に表示
   */
  .gl-main-table tbody tr.gl-tour-gallery-spacer {
    display: none !important;
  }

  /* 「ツアーの様子」と最初の写真行のあいだ */
  .gl-main-table tbody tr:has(> td[colspan="40"]:not(.gl-hero-eyecatch) .gl-tour-list-section-heading.gl-mountain-gorilla-meet-heading) > td[colspan="40"] {
    padding-bottom: 1.1rem !important;
  }

  .gl-main-table tbody tr.gl-tour-gallery-row > td.gl-tour-gallery-item {
    text-align: center !important;
    padding-bottom: 1.15rem !important;
  }

  .gl-main-table tbody tr.gl-tour-gallery-row .gl-tour-gallery-item-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    max-width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
  }

  .gl-main-table tbody tr.gl-tour-gallery-row .gl-tour-gallery-item-inner img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
  }

  .gl-main-table tbody tr.gl-tour-gallery-row .gl-tour-gallery-caption {
    margin: 0 !important;
    padding: 0 0.35rem !important;
    text-align: center !important;
    line-height: 1.45 !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  .gl-main-table tbody tr.gl-tour-gallery-row .gl-tour-gallery-caption span,
  .gl-main-table tbody tr.gl-tour-gallery-row .gl-tour-gallery-caption font {
    font-size: 0.9rem !important;
  }

  /* tour-uganda-kibale-2：GALLERY 2 段目は PC で 3 カラム枠のまま空セルあり／スマホでは画像のない枠を出さない */
  .gl-page--tour-uganda-kibale-2 .gl-main-table tbody tr.gl-tour-gallery-row > td.gl-tour-gallery-item:not(:has(.gl-tour-gallery-item-inner img)) {
    display: none !important;
  }

  /*
   * tour_list.html：東アフリカ・ツアー一覧ブロック直下の説明文（左寄せ・行間をやや詰める）
   */
  .gl-main-table td:has(a[id="東アフリカ・ツアー一覧"]) p.MsoNormal:nth-of-type(2) {
    text-align: left !important;
    font-size: 0.9rem !important;
    line-height: 1.45 !important;
  }

  .gl-main-table td:has(a[id="東アフリカ・ツアー一覧"]) p.MsoNormal:nth-of-type(2) span {
    text-align: left !important;
    font-size: inherit !important;
    line-height: inherit !important;
  }

  /* エチオピア〜の長文：PC は改行のまま、スマホでは <br> を無効化して折り返しのみ */
  .gl-main-table td:has(a[id="東アフリカ・ツアー一覧"]) p.MsoNormal:nth-of-type(2) .gl-tour-list-east-africa-continuous br {
    display: none !important;
  }

  /*
   * tour_list.html：緑の「〜日程案」見出し。
   * 見出しの後に続く td 直下の空 span（24pt/21pt 等）が別行のように行ボックスを取るため、
   * 「本文 p の前までの」直下 span をまとめて潰し、見出しだけ inline-block で行高を決める。
   */
  /* 見出し span が td 直下のときも潰さない（:not で 0 にしない） */
  .gl-main-table td:has(.gl-tour-list-section-heading) > span:not(.gl-tour-list-section-heading) {
    font-size: 0 !important;
    line-height: 0 !important;
    letter-spacing: normal !important;
    vertical-align: top !important;
  }

  .gl-main-table .gl-tour-list-section-heading {
    font-size: 18pt !important;
    letter-spacing: normal !important;
    line-height: 1.28 !important;
    display: inline-block !important;
    vertical-align: top !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* mountain_gorilla_tour.html：「マウンテン・ゴリラに会いに行く」見出しのみやや小さく */
  .gl-main-table .gl-mountain-gorilla-meet-heading {
    font-size: 16.75pt !important;
  }

  .gl-main-table td:has(.gl-tour-list-section-heading) > p.MsoNormal:first-of-type {
    margin-top: 0.65rem !important;
    font-size: 0.9rem !important;
    line-height: 1.65 !important;
    text-align: left !important;
  }

  /*
   * 日程案直下の説明：ネスト span ごとに別ルールの line-height（1.5 等）が当たり行間が不均等になるのを防ぐ
   * ※見出しが p 内（mountain_gorilla の「ゴリラ基本情報」等）にある場合、inherit が .gl-tour-list-section-heading の font-size を潰すため除外
   */
  .gl-main-table td:has(.gl-tour-list-section-heading) > p.MsoNormal:first-of-type span:not(.gl-tour-list-section-heading):not(.gl-mountain-gorilla-meet-heading) {
    text-align: left !important;
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .gl-main-table td:has(.gl-tour-list-section-heading) > p.MsoNormal:first-of-type br {
    display: none !important;
  }

  /*
   * 日程案ブロック（colspan=24・height=100・上揃えでないセル）の先頭説明 p。
   * .gl-tour-list-section-heading 未設置の各ツアーページで、Word 由来の <br> を無効化して連続文にし、
   * インライン text-align:-webkit-center を左寄せで上書きする（既存の見出し付きセルとも整合）。
   */
  .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > p.MsoNormal:first-of-type {
    text-align: left !important;
  }

  .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > p.MsoNormal:first-of-type span {
    text-align: left !important;
  }

  .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > p.MsoNormal:first-of-type br {
    display: none !important;
  }

  /*
   * tour_list.html：「詳しくはこちら」左のツアー名（太字・Zen Kaku）をスマホで 12pt に統一、上は見出し前に十分な余白
   */
  .gl-page--tour-list .gl-main-table td[colspan="15"][valign="bottom"] {
    padding-top: 3rem !important;
    padding-bottom: 0.55rem !important;
  }

  .gl-page--tour-list .gl-main-table td[colspan="15"][valign="bottom"] b span[style*="font-size:18.0pt"][style*="Zen Kaku Gothic New"] {
    font-size: 12pt !important;
    line-height: 1.45 !important;
  }

  .gl-page--tour-list .gl-main-table td[colspan="15"][valign="bottom"] b span[style*="font-size:18.0pt"][style*="Zen Kaku Gothic New"] span[lang="EN-US"] {
    font-size: inherit !important;
  }

  /*
   * 「目的地：…」行（ツアー一覧・各ツアー紹介で共通の colspan="19"）：
   * 空の lang="EN-US" の 13.5pt やネストした游ゴシック等の差をスマホで 12pt に揃える
   */
  .gl-main-table td[colspan="19"] span {
    font-size: 12pt !important;
    line-height: 1.45 !important;
  }

  /*
   * 「～詳しくはこちら～」セル（colspan="7"）：Word の p 既定マージンで縦に空きすぎるので詰める
   */
  .gl-main-table td[colspan="7"][valign="bottom"] {
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
  }

  .gl-main-table td[colspan="7"][valign="bottom"] p.MsoNormal {
    margin-top: 0.15rem !important;
    margin-bottom: 0.15rem !important;
  }

  /*
   * ウガンダの気候：外周の空 td を隠し、ネストした気候表だけ表示
   */
  .gl-main-table tr.gl-weather-section > td:not([colspan="34"]) {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: none !important;
  }

  .gl-main-table tr.gl-weather-section td[colspan="34"] {
    padding-top: 0.25rem !important;
    padding-bottom: 0.35rem !important;
  }

  /* Word 由来の空行：スマホでは各 td が display:block で縦に積み、脚注〜フッター間が巨大になるため非表示 */
  .gl-main-table tr.gl-table-spacer {
    display: none !important;
  }

  .gl-main-table tr.gl-footer-rule > td:not([colspan="32"]) {
    display: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: none !important;
  }

  .gl-main-table tr.gl-footer-rule td[colspan="32"] {
    padding-top: 2.75rem !important;
    padding-bottom: 1.35rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .gl-main-table tr.gl-footer-rule hr {
    margin: 0.65rem 0 !important;
  }

  .gl-weather-hr {
    border-top-color: #b8d4a8 !important;
  }

  /* スマホ：見出しは従来の強調色（PC はベースで黒のみ） */
  .gl-weather-title-en {
    font-size: 1.6rem !important;
    font-weight: 600 !important;
    color: #3b7d23 !important;
    margin-top: 3rem !important;
  }

  .gl-weather-title-ja {
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    color: #111 !important;
  }

  .gl-weather-footnote {
    color: #333 !important;
    font-size: 0.82rem !important;
    text-align: left !important;
    margin: 0 0 0.25rem !important;
  }

  .gl-main-table .gl-weather .gl-weather-table-wrap {
    margin-bottom: 0.4rem !important;
  }

  .gl-weather-footnote a {
    color: inherit !important;
  }

  /* 狭い画面：見出し行を隠し、地点ごとにカード状のブロックへ */
  .gl-main-table .gl-weather-table thead {
    display: none !important;
  }

  .gl-main-table .gl-weather-table {
    display: block !important;
    table-layout: auto !important;
  }

  /* 地点ごとに tbody を1カード化し、グリッドの order で「地名 → 説明 → 数値」を縦に並べる */
  .gl-main-table .gl-weather-table tbody {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 0.75rem;
    border: 1px solid #c5d9b8;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
  }

  .gl-main-table .gl-weather-table tbody tr {
    display: contents !important;
  }

  .gl-main-table .gl-weather-table tbody th[scope="row"] {
    grid-column: 1 / -1;
    order: 1;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    text-align: center !important;
    padding: 0.5rem 0.65rem !important;
    background: #e8f2e0 !important;
    color: #1a1a1a !important;
    font-size: 0.93rem !important;
    font-weight: 700 !important;
    border: none !important;
    border-bottom: 1px solid #c5d9b8;
    white-space: normal;
  }

  .gl-main-table .gl-weather-table tbody tr:not(.gl-weather-desc) > td {
    order: 3;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center !important;
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    padding: 0.45rem 0.4rem !important;
    border: none !important;
    border-top: 1px solid #e8ebe5 !important;
    min-height: 3rem;
    font-size: 0.85rem !important;
  }

  .gl-main-table .gl-weather-table tbody tr:not(.gl-weather-desc) > td::before {
    content: attr(data-label);
    font-size: 0.68rem;
    font-weight: 600;
    color: #275317;
    margin-bottom: 0.2rem;
    line-height: 1.2;
  }

  .gl-main-table .gl-weather-table tbody tr.gl-weather-desc td {
    grid-column: 1 / -1;
    order: 2;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    border: none !important;
    border-bottom: 1px solid #e8ebe5 !important;
    padding: 0.5rem 0.65rem !important;
    text-align: center !important;
    font-size: 0.8rem !important;
    background: #f9fbf7 !important;
    border-radius: 0;
  }

  .gl-main-table .gl-weather-table tbody tr.gl-weather-desc td::before {
    content: none !important;
  }

  /* テーブル内画像の下のギャップ（インライン画像のベースライン分）を解消 */
  .gl-main-table td img {
    display: block;
  }

  /*
   * ツアー・カテゴリー内「～詳しくはこちら～」：td の左寄せ／右セル中央寄せを打ち消して右揃え、上下余白を統一
   */
  .gl-main-table .gl-tour-more {
    display: block !important;
    text-align: right !important;
    margin-top: 0.875rem !important;
    margin-bottom: 1.35rem !important;
  }

  /* Gorilla_Bwindi_A 画像直下〜「マウンテンゴリラ・ツアー」見出しまでの余白を詰める */
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) td {
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  /* 写真と見出しが重ならないよう、わずかな正の余白だけ確保（負マージンは使わない） */
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr {
    margin-top: 0 !important;
  }

  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr td {
    padding-top: 0.625rem !important;
    margin-top: 0 !important;
  }

  /*
   * 先頭の空 span / font（24pt 装飾）が行の高さを取るのを防ぎ、見出しを写真に近づける
   */
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    /* 見出し〜本文の隙間は .gl-tour-title の margin-bottom。段落末尾〜「詳しくは」はこの下マージンで確保 */
    margin-bottom: 0.5rem;
    /* 先頭の空 24pt/36pt span が行の高さを取らないようにする */
    font-size: 0;
    line-height: 0;
  }

  /*
   * 見出しと本文のあいだに <br> があり、その手前に空の 24pt/36pt span が続くため行高だけ大きく空いていた。
   * .gl-tour-title は display:block なので br は不要 → 非表示。装飾 span/font は !important で潰す。
   */
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type br {
    display: none !important;
  }

  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type font,
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type span[style*="font-size:24.0pt"]:not(.gl-tour-title),
  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type span[style*="font-size:36.0pt"] {
    font-size: 0 !important;
    line-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .gl-main-table tr:has(img[src*="Gorilla_Bwindi_A_1200x500"]) + tr p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
  }

  /*
   * ナイルパーチ画像と見出しは同一 tr 内の別 td。マウンテンゴリラ見出しと同じ余白・タイポに揃える。
   */
  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(> img[src*="MVI_79480043"]) {
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(> img[src*="MVI_79480043"]) img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(.gl-tour-title) {
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2) {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * バード・ウォッチング / シニア向け / カンパラ週末 / 業務渡航：いずれも「画像 td ＋ 見出し td」が同一 tr。
   * 余白・タイポをナイルパーチ・マウンテンゴリラ見出しに揃える。
   */
  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(> img[src*="Shoebill_Mabamba_B"]),
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(> img[src*="Cessna_Caravan"]),
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(> img[src*="Nature_walk_Lake_Mburo_B"]),
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(> img[src*="Kampala_City_700x456"]) {
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(> img[src*="Shoebill_Mabamba_B"]) img,
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(> img[src*="Cessna_Caravan"]) img,
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(> img[src*="Nature_walk_Lake_Mburo_B"]) img,
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(> img[src*="Kampala_City_700x456"]) img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(.gl-tour-title),
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(.gl-tour-title),
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title),
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(.gl-tour-title) {
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
  }

  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type,
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type,
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type,
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type .gl-tour-title,
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type .gl-tour-title,
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type .gl-tour-title,
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  /* 業務渡航者向け：見出し p 内の 24pt/32px ラッパーと空 span が行高を増やさないようにする（他ツアー見出しと同じ詰まりに） */
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(.gl-tour-title) p.MsoNormal:first-of-type span:not(.gl-tour-title) {
    font-size: 0 !important;
    line-height: 0 !important;
  }

  /* 2 段落目が本文（カンパラ週末以外） */
  .gl-main-table tr:has(img[src*="Shoebill_Mabamba_B"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2),
  .gl-main-table tr:has(img[src*="Cessna_Caravan"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2),
  .gl-main-table tr:has(img[src*="Kampala_City_700x456"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2) {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /* カンパラ発週末：装飾だけの段落は非表示（max-height では子の margin が残る端末がある） */
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) > p.MsoNormal:nth-of-type(2),
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) > p.MsoNormal:nth-of-type(4),
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) > p.MsoNormal:nth-of-type(6),
  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) > p.MsoNormal:nth-of-type(7) {
    display: none !important;
  }

  .gl-main-table tr:has(img[src*="Nature_walk_Lake_Mburo_B"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(3) {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * 野生動物サファリ・ツアー行：PC は左テキスト＋右画像のまま。
   * スマホでは Elephant 写真 → 見出し → 本文・リンクの順に並べる。
   */
  .gl-main-table tr.gl-row-wildlife {
    display: flex !important;
    flex-direction: column;
  }

  .gl-main-table tr.gl-row-wildlife > td.gl-wildlife-text {
    display: contents !important;
  }

  .gl-main-table tr.gl-row-wildlife > td.gl-wildlife-img {
    order: 1;
    width: 100% !important;
    /* ゴリラ画像セルと同じく下側の不要なすき間をなくす */
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-wildlife > td.gl-wildlife-img img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr.gl-row-wildlife .gl-wildlife-heading {
    order: 2;
    width: 100%;
    /* 画像下〜見出しは 0.625rem。見出し〜本文の余白は p の margin で他ツアーと統一 */
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
  }

  /* 見出しの p：先頭の空 span が行高を取らない（マウンテンゴリラ見出しと同じ考え方） */
  .gl-main-table tr.gl-row-wildlife .gl-wildlife-heading p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-wildlife .gl-wildlife-heading p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr.gl-row-wildlife .gl-wildlife-body {
    order: 3;
    width: 100%;
    margin-top: 0 !important;
  }

  /* 本文先頭の空 24pt span を潰し、見出しとの隙間をマウンテンゴリラ側の本文開始に近づける */
  .gl-main-table tr.gl-row-wildlife .gl-wildlife-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }


  /* 野生動物サファリ：ムブロ湖・キデポ渓谷の公園ブロック直前の余白（スマホ。空行 tr が非表示で詰まるため） */
  .gl-page--wildlife-safari .gl-main-table tr.gl-wildlife-savannah-park-heading {
    margin-top: 1.5rem !important;
  }

  /*
   * 野生動物サファリ：「野生動物サファリ・ツアー日程案」行詰め（スマホ）
   * Word の空 span が行ボックスを取る／a 内の 28→21→22pt の多重ラッパーで行高が膨らむため、装飾 span を潰し a 全体で line-height を統一する。
   */
  .gl-page--wildlife-safari .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > span:first-of-type {
    line-height: 0 !important;
    font-size: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
  }

  .gl-page--wildlife-safari .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > a ~ span {
    display: none !important;
  }

  .gl-page--wildlife-safari .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > a {
    display: inline-block !important;
    line-height: 1.05 !important;
    letter-spacing: normal !important;
    vertical-align: top !important;
  }

  .gl-page--wildlife-safari .gl-main-table td[colspan="24"][align="center"][height="100"]:not([valign="top"]) > a span {
    line-height: inherit !important;
    letter-spacing: normal !important;
  }

  /* 野生動物サファリ：「ウガンダにあるサバンナの国立公園」見出しの行間を詰める（スマホ） */
  .gl-page--wildlife-safari .gl-main-table td[colspan="26"][align="center"] span[style*="font-size:24.0pt"][style*="游ゴシック Medium"],
  .gl-page--wildlife-safari .gl-main-table td[colspan="26"][align="center"] span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"] {
    line-height: 1.12 !important;
  }

  /* ワイルドライフ・クラシック・北部ツアー7日間（紹介行）：ツアー一覧・野生動物サファリページのスマホで上余白 */
  .gl-main-table tr.gl-tour-promo-wildlife-north7 {
    margin-top: 1.5rem !important;
  }

  /*
   * ルウェンゾリ山地登山ツアー行：スマホでは Rwenzori 写真 → 見出し → 本文（野生動物サファリ行と同じパターン）
   */
  .gl-main-table tr.gl-row-rwenzori {
    display: flex !important;
    flex-direction: column;
  }

  .gl-main-table tr.gl-row-rwenzori > td.gl-rwenzori-text {
    display: contents !important;
  }

  .gl-main-table tr.gl-row-rwenzori > td.gl-rwenzori-img {
    order: 1;
    width: 100% !important;
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-rwenzori > td.gl-rwenzori-img img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr.gl-row-rwenzori .gl-rwenzori-heading {
    order: 2;
    width: 100%;
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
  }

  .gl-main-table tr.gl-row-rwenzori .gl-rwenzori-heading p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-rwenzori .gl-rwenzori-heading p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr.gl-row-rwenzori .gl-rwenzori-body {
    order: 3;
    width: 100%;
    margin-top: 0 !important;
  }

  .gl-main-table tr.gl-row-rwenzori .gl-rwenzori-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * 文化体験ツアー行：スマホでは Dance_Rwanda 写真 → 見出し → 本文
   */
  .gl-main-table tr.gl-row-cultural {
    display: flex !important;
    flex-direction: column;
  }

  .gl-main-table tr.gl-row-cultural > td.gl-cultural-text {
    display: contents !important;
  }

  .gl-main-table tr.gl-row-cultural > td.gl-cultural-img {
    order: 1;
    width: 100% !important;
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-cultural > td.gl-cultural-img img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr.gl-row-cultural .gl-cultural-heading {
    order: 2;
    width: 100%;
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
  }

  .gl-main-table tr.gl-row-cultural .gl-cultural-heading p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-cultural .gl-cultural-heading p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr.gl-row-cultural .gl-cultural-body {
    order: 3;
    width: 100%;
    margin-top: 0 !important;
  }

  .gl-main-table tr.gl-row-cultural .gl-cultural-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * 東アフリカ、隣国でのツアー行：スマホでは CA8A2744 写真 → 見出し → 本文
   */
  .gl-main-table tr.gl-row-east-africa {
    display: flex !important;
    flex-direction: column;
  }

  .gl-main-table tr.gl-row-east-africa > td.gl-east-africa-text {
    display: contents !important;
  }

  .gl-main-table tr.gl-row-east-africa > td.gl-east-africa-img {
    order: 1;
    width: 100% !important;
    padding: 0 !important;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-east-africa > td.gl-east-africa-img img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr.gl-row-east-africa .gl-east-africa-heading {
    order: 2;
    width: 100%;
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
  }

  .gl-main-table tr.gl-row-east-africa .gl-east-africa-heading p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-east-africa .gl-east-africa-heading p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr.gl-row-east-africa .gl-east-africa-body {
    order: 3;
    width: 100%;
    margin-top: 0 !important;
  }

  .gl-main-table tr.gl-row-east-africa .gl-east-africa-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * 運転手付きレンタカー行：スマホでは Care_hire 写真 → 見出し → 本文（画像は右列 td 内の末尾のため .gl-care-hire-photo で包み、列内で先頭表示）
   */
  .gl-main-table tr.gl-row-care-hire {
    display: flex !important;
    flex-direction: column;
  }

  .gl-main-table tr.gl-row-care-hire > td.gl-care-hire-text {
    display: contents !important;
  }

  .gl-main-table tr.gl-row-care-hire > td.gl-care-hire-img {
    order: 1;
    width: 100% !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-care-hire > td.gl-care-hire-img > :not(.gl-care-hire-photo) {
    display: none !important;
  }

  .gl-main-table tr.gl-row-care-hire > td.gl-care-hire-img .gl-care-hire-photo {
    order: -1;
    width: 100%;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-care-hire > td.gl-care-hire-img .gl-care-hire-photo img {
    margin: 0 !important;
    vertical-align: bottom;
  }

  .gl-main-table tr.gl-row-care-hire .gl-care-hire-heading {
    order: 2;
    width: 100%;
    padding-top: 0.625rem !important;
    padding-bottom: 0 !important;
    margin: 0 !important;
  }

  .gl-main-table tr.gl-row-care-hire .gl-care-hire-heading p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-size: 0;
    line-height: 0;
  }

  .gl-main-table tr.gl-row-care-hire .gl-care-hire-heading p.MsoNormal:first-of-type .gl-tour-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
  }

  .gl-main-table tr.gl-row-care-hire .gl-care-hire-body {
    order: 3;
    width: 100%;
    margin-top: 0 !important;
  }

  .gl-main-table tr.gl-row-care-hire .gl-care-hire-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0.5rem;
    font-size: 0;
    line-height: 0;
  }

  /*
   * ツアー見出し〜本文の間隔を揃える：ラッパー span の 24pt、空の入れ子、先頭の空 24pt などが余白だけ増やすのを防ぐ
   */
  .gl-main-table td:has(.gl-tour-title) p.MsoNormal:first-of-type span:has(.gl-tour-title) {
    font-size: 0 !important;
    line-height: 0 !important;
  }

  .gl-main-table td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2) {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .gl-main-table tr:has(img[src*="MVI_79480043"]) > td:has(.gl-tour-title) p.MsoNormal:nth-of-type(2) > span:first-child:not(:has(font)) {
    display: none !important;
  }

  .gl-main-table tr.gl-row-wildlife .gl-wildlife-heading p.MsoNormal:first-of-type > span[style*="font-size:24.0pt"]:not(:has(.gl-tour-title)),
  .gl-main-table tr.gl-row-wildlife .gl-wildlife-body > p.MsoNormal:first-of-type > span[style*="font-size:24.0pt"] {
    font-size: 0 !important;
    line-height: 0 !important;
  }

  .gl-main-table .gl-rwenzori-body > p.MsoNormal:first-of-type,
  .gl-main-table .gl-cultural-body > p.MsoNormal:first-of-type,
  .gl-main-table .gl-east-africa-body > p.MsoNormal:first-of-type,
  .gl-main-table .gl-care-hire-body > p.MsoNormal:first-of-type {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  /* レイアウト用の 44px 幅セル（中身なし）を非表示。ロゴ入りセルだけ残す */
  .gl-main-table td[width="44"]:not(:has(img)) {
    display: none !important;
  }

  .gl-main-table td[width="44"]:has(img) {
    display: block !important;
    text-align: center !important;
    padding: 0.5rem 0;
  }

  /*
   * ヘッダー（スマホ）：親の overflow-x:clip で sticky が効きにくいため、行を viewport 固定。
   * 三本線の absolute の基準はこの fixed 行（tr）になる。
   */
  .gl-main-table tr.gl-header-brand {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    z-index: 900;
    background-color: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  }

  .gl-main-table tr.gl-header-brand > td.gl-header-brand-wrap {
    display: block !important;
    flex: 1 1 auto;
    align-self: stretch;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    vertical-align: middle !important;
    position: static;
    background-color: transparent;
  }

  /*
   * トグルは position:absolute。基準は position:relative を付けないことで
   * fixed の tr（行いっぱいの幅）になり、狭い inner に吸われない。
   */
  .gl-header-inner {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
    gap: 0.4rem;
    padding-top: max(0.5rem, env(safe-area-inset-top, 0px));
    padding-bottom: 0.5rem;
    padding-left: max(12px, env(safe-area-inset-left, 0px));
    /* 三本線（2.75rem）＋ 右余白・ノッチ */
    padding-right: calc(2.75rem + max(12px, env(safe-area-inset-right, 0px)) + 0.35rem);
  }

  .gl-header-logo-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    line-height: 0;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
  }

  .gl-main-table tr.gl-header-brand .gl-header-sp-logo {
    display: block;
    margin: 0;
    width: auto !important;
    max-width: min(200px, 58vw) !important;
    height: auto !important;
    max-height: 40px !important;
    object-fit: contain;
  }

  .gl-header-pc-nav {
    display: none !important;
  }

  .gl-main-table tr.gl-header-brand .gl-nav-toggle {
    display: inline-flex !important;
    position: absolute;
    top: 50%;
    /* .gl-wrap--main で safe-area 済みのため二重にしない */
    right: 12px;
    transform: translateY(-50%);
    z-index: 2;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin: 0;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    color: #3a7c22;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(58, 124, 34, 0.15);
  }

  .gl-nav-toggle:focus-visible {
    outline: 2px solid #3a7c22;
    outline-offset: 2px;
  }

  .gl-nav-toggle-bars {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 1.375rem;
  }

  .gl-nav-toggle-bar {
    display: block;
    height: 2px;
    width: 100%;
    background: currentColor;
    border-radius: 1px;
    transition: transform 0.2s ease, opacity 0.2s ease;
    transform-origin: center;
  }

  .gl-nav-toggle[aria-expanded="true"] .gl-nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .gl-nav-toggle[aria-expanded="true"] .gl-nav-toggle-bar:nth-child(2) {
    opacity: 0;
  }

  .gl-nav-toggle[aria-expanded="true"] .gl-nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .gl-mobile-nav-backdrop {
    display: block !important;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  body.gl-mobile-nav-open .gl-mobile-nav-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .gl-mobile-nav-drawer {
    display: flex !important;
    flex-direction: column;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1001;
    width: min(18.5rem, 88vw);
    max-width: 100%;
    height: 100%;
    height: 100dvh;
    padding: max(0.75rem, env(safe-area-inset-top, 0px)) 0 max(0.75rem, env(safe-area-inset-bottom, 0px));
    margin: 0;
    background: #fff;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
    transform: translateX(100%);
    transition: transform 0.25s ease;
    overflow-y: auto;
    box-sizing: border-box;
  }

  body:not(.gl-mobile-nav-open) .gl-mobile-nav-drawer {
    pointer-events: none;
  }

  body.gl-mobile-nav-open .gl-mobile-nav-drawer {
    transform: translateX(0);
  }

  .gl-mobile-nav-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0 1rem 0.75rem;
    border-bottom: 1px solid #e5ebe0;
    flex-shrink: 0;
  }

  .gl-mobile-nav-heading {
    margin: 0;
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #275317;
  }

  .gl-nav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    color: #444;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.06);
  }

  .gl-nav-close:focus-visible {
    outline: 2px solid #3a7c22;
    outline-offset: 2px;
  }

  .gl-mobile-nav-list {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0 1rem;
  }

  .gl-mobile-nav-list li {
    margin: 0;
    border-bottom: 1px solid #eef2ea;
  }

  .gl-mobile-nav-list a {
    display: block;
    padding: 1rem 1.25rem;
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", sans-serif;
    font-size: 0.95rem;
    color: #222;
    text-decoration: none;
    transition: background 0.15s ease;
  }

  .gl-mobile-nav-list a:hover,
  .gl-mobile-nav-list a:focus-visible {
    background: #f4faf0;
    outline: none;
  }

  body.gl-mobile-nav-open {
    overflow: hidden;
  }

  /* 見出し・ナビ行は中央寄せのまま読みやすく */
  .gl-main-table td[align="center"] {
    text-align: center !important;
  }

  /* フッターなど右寄せリンク */
  .gl-main-table td[align="right"] {
    text-align: center !important;
  }

  /*
   * ページ下部フッターナビ（YouTube / Facebook / 会社ブログ行）：14pt 相当を一段小さく
   */
  .gl-main-table tr:is(
      :has(a[href*="youtube.com/channel/UCB-RlJtwJ3M3BrNu9gcnyxA"]),
      :has(a[href*="facebook.com/Greenleaftouristclub"]),
      :has(a[href="https://green.co.ug/blog/"])
    )
    :is(span, font, a) {
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-variant: normal !important;
    letter-spacing: normal !important;
  }

  /* スマホのみツアー見出し（PC は上記 .gl-tour-title の pt 指定のまま） */
  /* 見出し上は margin-top、見出し〜本文は margin-bottom（親 p の余白や空 span 行高に引っ張られない） */
  .gl-page .gl-tour-title {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    display: block !important;
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
  }

  .gl-page .gl-hero-en-title {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-size: 1.7rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
  }

  .gl-page .gl-tour-category-ja {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
  }

  /*
   * ヒーロー「Tour Category」〜「ツアー・カテゴリー」：段落マージンと空の装飾 p を詰める
   */
  .gl-main-table td:has(> p .gl-hero-en-title) > p.MsoNormal {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .gl-main-table td:has(> p .gl-hero-en-title) > p.MsoNormal:has(.gl-hero-en-title) {
    margin-top: 3.75rem !important;
    margin-bottom: 0.15rem !important;
  }

  .gl-main-table td:has(> p .gl-hero-en-title) > p.MsoNormal:has(.gl-tour-category-ja) {
    margin-bottom: 2rem !important;
  }

  .gl-main-table td:has(> p .gl-hero-en-title) > p.MsoNormal:not(:has(.gl-hero-en-title)):not(:has(.gl-tour-category-ja)) {
    display: none !important;
  }

  /*
   * Word 由来のインライン（font-weight:500 等）をスマホでは正規化。見出し用クラスは除外
   */
  .gl-main-table p.MsoNormal span:not(.gl-tour-title):not(.gl-hero-en-title):not(.gl-tour-category-ja):not(.gl-tour-list-heading-ja) {
    font-weight: 400 !important;
    font-style: normal !important;
    font-variant: normal !important;
    font-variant-ligatures: normal !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    word-spacing: normal !important;
  }

  /* 見出し内の入れ子 span／font（lang 用など）までゴシック・太字で統一 */
  .gl-page .gl-tour-title,
  .gl-page .gl-tour-title * {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
    font-weight: 700 !important;
  }

  .gl-page .gl-tour-category-ja,
  .gl-page .gl-tour-category-ja * {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
  }

  /* 緑見出しを包む親 span（游ゴシック等のインライン）が優先されないよう、見出しブロック内をゴシックに */
  .gl-page .gl-main-table p.MsoNormal:has(.gl-tour-title) span[style*="游ゴシック"],
  .gl-page .gl-main-table p.MsoNormal:has(.gl-tour-title) font {
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", "Meiryo", sans-serif !important;
  }

  /*
   * メイン表内の本文：18pt / 22px ラッパーを同一サイズに（文化体験・シニア向け・週末などで 22px のみの層があった）
   * フッター社名・募集文などはより詳細度の高いルールで上書き
   */
  .gl-main-table span[style*="font-size:18.0pt"],
  /* Word 出力で font-size: と数値が改行で分かれたとき（[style*="font-size:18.0pt"] が一致しない） */
  .gl-main-table span[style*="18.0pt;font-family"] {
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
  }

  .gl-main-table span[style*="font-size: 22px"],
  .gl-main-table span[style*="font-size:22px"] {
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
  }

  /*
   * 旅程：時間帯（午前／午後／終日など）の列と、その直後のタイトル列（colspan 2 の直後が colspan 22）
   * 内の 18.0pt 太字だけ、汎用 0.95rem より少し大きく
   */
  .gl-page .gl-main-table tbody tr > td[colspan="2"]:has(+ td[colspan="22"]) span[style*="font-size:18.0pt"],
  .gl-page .gl-main-table tbody tr > td[colspan="2"] + td[colspan="22"] span[style*="font-size:18.0pt"] {
    font-size: 1.0625rem !important;
    line-height: 1.45 !important;
  }

  /*
   * 目的地ガイド：国立公園名など（左 colspan="7" の strong>b>Zen 18pt ＋ 右 colspan="20" の説明）
   * 汎用 18pt（0.95rem）より少し大きく、ブロック上に余白
   */
  .gl-main-table tbody tr > td[colspan="7"]:has(strong b span[style*="font-size:18.0pt"][style*="Zen Kaku Gothic New"]) {
    padding-top: 1.05rem !important;
  }

  .gl-main-table tbody tr > td[colspan="7"]:has(strong b span[style*="font-size:18.0pt"][style*="Zen Kaku Gothic New"]) span[style*="font-size:18.0pt"][style*="Zen Kaku Gothic New"] {
    font-size: 1.03rem !important;
    line-height: 1.4 !important;
  }

  .gl-main-table span[style*="font-size:16.0pt"],
  .gl-main-table span[style*="16.0pt;font-family"] {
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
  }

  /*
   * 「ツアー代金の例（参考価格）」見出しを含む colspan="24" セル（16pt Zen 系 span 内に b）
   * スマホで直前ブロックとの詰まりを解消
   */
  .gl-main-table td[colspan="24"]:has(span[style*="16.0pt"][style*="Zen Kaku Gothic New"] b) {
    padding-top: 4.25rem !important;
  }

  /* 同セル内「ツアー代金の例（参考価格）」の <b> 見出しのみ、16pt 正規化（0.95rem）より少し大きく */
  .gl-main-table td[colspan="24"]:has(span[style*="16.0pt"][style*="Zen Kaku Gothic New"] b) b {
    font-size: 1.08rem !important;
    line-height: 1.35 !important;
  }

  /* ブラウザから貼り付けた span（computed の px が直書きされることがある）を本文に揃える */
  .gl-main-table span[style*="19.9792px"] {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .gl-main-table td p.MsoNormal font {
    font-size: inherit !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-variant: normal !important;
    letter-spacing: normal !important;
  }

  /* 募集型企画旅行の案内文（14pt 相当）をスマホで一段小さく */
  .gl-main-table .gl-disclaimer-travel,
  .gl-main-table .gl-disclaimer-travel font {
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-variant: normal !important;
    letter-spacing: normal !important;
  }

  .gl-main-table .gl-disclaimer-travel a {
    font-size: inherit !important;
  }

  /*
   * about_uganda_national_parks.html：国立公園比較（ラベル列＋公園4列）をスマホで横並びのグリッドに
   * ガター td は非表示のため、見えるのは colspan 6（左ラベル）＋ colspan 5×4 のみ
   */
  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) {
    display: grid !important;
    grid-template-columns: minmax(4.6rem, 23%) repeat(4, minmax(0, 1fr));
    column-gap: 0.3rem;
    row-gap: 0;
    align-items: start;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    padding: 0.45rem 0;
    border-bottom: 1px solid #e4ebe3;
  }

  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) > td[colspan="6"],
  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) > td[colspan="5"] {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) > td[colspan="6"] {
    font-weight: 600 !important;
  }

  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) > td[colspan="5"] b,
  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="6"][align="left"]):has(> td[colspan="5"]) > td[colspan="5"] b span {
    font-weight: 600 !important;
  }

  /*
   * その他の観光地：名称列（colspan 6・align=left なし）＋本文 colspan 20 の行のみ
   */
  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="6"]:not([align="left"])) > td[colspan="6"]:not([align="left"]) {
    padding-top: 1.7rem !important;
    font-size: 1.16rem !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
  }

  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="6"]:not([align="left"])) > td[colspan="6"]:not([align="left"]) span {
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: inherit !important;
  }

  .gl-page--uganda-national-parks .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="6"]:not([align="left"])) > td[colspan="6"]:not([align="left"]) font {
    font-size: inherit !important;
    font-weight: inherit !important;
  }

  /*
   * how_to_organize_tour.html／payment-cancellation.html／uganda-information.html／about-rwenozri-mountains.html／travel-tips.html／company.html／what-to-prepare.html／companye.html／about-gorilla-tracking.html：見出し列（colspan 5）＋本文 colspan 20 の行。緑見出しをやや大きく・太字・上余白
   * （グローバル .gl-main-table span[style*="font-size:16.0pt"] の 0.95rem より詳細度で上書き）
   */
  .gl-page--how-to-organize-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--payment-cancellation .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--uganda-information .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--travel-tips .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--company .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--what-to-prepare .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--companye .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"],
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] {
    padding-top: 2.0rem !important;
    font-size: 0.96rem !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
  }

  .gl-page--how-to-organize-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--how-to-organize-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--payment-cancellation .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--payment-cancellation .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--uganda-information .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--uganda-information .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--travel-tips .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--travel-tips .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--company .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--company .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--what-to-prepare .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--what-to-prepare .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--companye .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--companye .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font,
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] span[style*="font-size:16.0pt"],
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] font {
    font-size: 0.96rem !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
  }

  /* 同上：本文列（colspan 20）の上下余白をラベル列と揃え、ブロック間の間隔を一定に */
  .gl-page--how-to-organize-tour .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--payment-cancellation .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--uganda-information .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--travel-tips .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--company .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--what-to-prepare .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--companye .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"],
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"] {
    padding-top: 0.25rem !important;
    padding-bottom: 1.1rem !important;
  }

  /* 規約・手順・国情報・ルウェンゾリ・旅情報・会社概要・準備するもの・英語会社概要・ゴリラ情報ページ：ヒロ見出し行は PC と同様に中央（グローバルの td { text-align:left } を上書き） */
  .gl-page--payment-cancellation .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--how-to-organize-tour .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--uganda-information .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--about-rwenozri-mountains .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--travel-tips .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--company .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--what-to-prepare .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--companye .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja),
  .gl-page--about-gorilla-tracking .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) {
    text-align: center !important;
    padding-bottom: 1.35rem !important;
  }

  .gl-page--payment-cancellation .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--how-to-organize-tour .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--uganda-information .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--about-rwenozri-mountains .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--travel-tips .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--company .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--what-to-prepare .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--companye .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal,
  .gl-page--about-gorilla-tracking .gl-main-table td[colspan="40"][align="center"]:has(.gl-tour-list-heading-ja) p.MsoNormal {
    text-align: center !important;
    margin-top: 0.5rem !important;
    margin-bottom: 0 !important;
  }

  /*
   * about-gorilla-tracking.html：PC 用の空ガター行（colspan 5+20 に width なし・本文列に width="880" なし）。スマホでは空の 2 段ブロックになり「ゴリラへの病気の感染」等の前後が開きすぎるため非表示。
   */
  .gl-page--about-gorilla-tracking .gl-main-table > tbody > tr:has(> td[colspan="20"]:not([width])):has(> td[colspan="5"][align="left"]:not([width])):not(:has(> td[width="880"])) {
    display: none !important;
  }

  /* 同上：本文のみの行でラベル列が空（width なしの colspan 5）のとき、スマホでは空の 1 段になるため非表示 */
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr:has(> td[width="880"][colspan="20"]) > td[colspan="5"][align="left"]:not([width]) {
    display: none !important;
  }

  /*
   * how_to_organize_tour.html／about-gorilla-tracking.html：セクション見出し（24pt span を含む colspan 26）。
   * 先頭子が <font> の複合セル（本文＋末尾の空 24pt ラッパー等）は除外。:has(> span[24pt]) だけだと本文 span まで 1.4rem になる。
   */
  .gl-page--how-to-organize-tour .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) {
    padding-top: 3.5rem !important;
    padding-bottom: 0.65rem !important;
    line-height: 1.35 !important;
  }

  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) {
    padding-top: 2rem !important;
    padding-bottom: 0.45rem !important;
    line-height: 1.35 !important;
  }

  /* 手順／ゴリラ：全文幅の本文ブロック（先頭子が font）。直後の見出し・次行との縦リズムを揃える */
  .gl-page--how-to-organize-tour .gl-main-table tbody tr > td[colspan="26"]:has(> font:first-child) {
    padding-top: 1.05rem !important;
    padding-bottom: 1.2rem !important;
  }

  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"]:has(> font:first-child) {
    padding-top: 0.85rem !important;
    padding-bottom: 0.9rem !important;
  }

  .gl-page--how-to-organize-tour .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) span,
  .gl-page--how-to-organize-tour .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) font,
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) span,
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"]:not(:has(> font:first-child)):has(> span[style*="font-size:24.0pt"]) font {
    font-size: 1.4rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
  }

  /*
   * about-rwenozri-mountains.html：見出し専用の colspan 26 のみ 1.4rem 一括。
   * 本文が先頭の <font> で始まりその直後に 24pt span が続く複合セルは除外（> font + span で検出）。
   */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"]:has(> span:first-of-type[style*="font-size:24.0pt"]):not(:has(> font + span)) {
    padding-top: 1.6rem !important;
    padding-bottom: 0.3rem !important;
    line-height: 1.35 !important;
  }

  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"]:has(> span:first-of-type[style*="font-size:24.0pt"]):not(:has(> font + span)) span,
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"]:has(> span:first-of-type[style*="font-size:24.0pt"]):not(:has(> font + span)) font {
    font-size: 1.4rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
  }

  /* about-rwenozri-mountains：ラベル列（colspan=5）の上余白を詰める
     ※ 詳細度の高い共通ルール（L2627）を同詳細度で後方上書き */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="5"][align="left"] {
    padding-top: 0.55rem !important;
  }

  /* about-rwenozri-mountains：本文列（colspan=20）の下余白を詰める */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr:has(> td[colspan="20"]):has(> td[colspan="5"][align="left"]) > td[colspan="20"] {
    padding-top: 0 !important;
    padding-bottom: 0.3rem !important;
  }

  /* about-rwenozri-mountains：本文の colspan=26（font始まり）の余白を詰める */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"]:has(> font) {
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
  }

  /* 本文内の連続 <br> による余分な空白行を除去 */
  .gl-page--about-rwenozri-mountains .gl-main-table td br + br {
    display: none !important;
  }

  /* タイトル行（colspan=40, align=center）の上下余白を削減 */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="40"][align="center"] {
    padding-top: 0.6rem !important;
    padding-bottom: 0.4rem !important;
  }
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="40"][align="center"] p.MsoNormal {
    margin-top: 0 !important;
    margin-bottom: 0.25rem !important;
  }

  /* 複合セル：本文の font の直後にある 24pt 見出しラッパー（空見出し含む）のみスマホ用に縮小 */
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"] > font + span[style*="font-size:24.0pt"],
  .gl-page--about-rwenozri-mountains .gl-main-table tbody tr > td[colspan="26"] > font + span[style*="font-size:24.0pt"] span,
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"] > font + span[style*="font-size:24.0pt"],
  .gl-page--about-gorilla-tracking .gl-main-table tbody tr > td[colspan="26"] > font + span[style*="font-size:24.0pt"] span {
    font-size: 1.15rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
  }

  /* Word が出力した「font-size : 22pt」（スペース入り）は [style*="font-size:22"] と一致しないため明示 */
  .gl-page--about-rwenozri-mountains .gl-main-table td[colspan="26"] span[style*="22pt"][style*="Zen Kaku Gothic New"],
  .gl-page--about-gorilla-tracking .gl-main-table td[colspan="26"] span[style*="22pt"][style*="Zen Kaku Gothic New"] {
    font-size: 1.22rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
  }

  /* 狭い画面ではロゴを横幅に合わせて少し小さく */
  .gl-footer-sp-logo-wrap .gl-footer-sp-logo {
    max-width: min(240px, 76vw) !important;
  }

  /*
   * 共通フッター：フッターリンクをスマホで 2 列グリッド（左列・右列の並びは HTML の a 順で制御）
   */
  .gl-main-table tr.gl-footer-nav-index2-row {
    display: block !important;
    width: 100% !important;
  }

  .gl-main-table tr.gl-footer-nav-index2-row > td.gl-footer-nav-index2-cell {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.45rem 0 0.85rem !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }

  .gl-main-table .gl-footer-nav-index2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 0.85rem;
    row-gap: 0.88rem;
    align-items: start;
    width: 100%;
  }

  .gl-main-table .gl-footer-nav-index2 a,
  .gl-main-table .gl-footer-nav-index2 a:visited {
    display: block;
    font-family: "Zen Kaku Gothic New", "Yu Gothic Medium", "Hiragino Sans", sans-serif !important;
    font-size: 0.84rem !important;
    line-height: 1.62 !important;
    font-weight: 500 !important;
    color: #000000 !important;
    text-decoration: underline;
    text-underline-offset: 2px;
    min-width: 0;
    word-break: break-word;
  }

  /*
   * 目的地ガイド末尾「エンテベ野生生物教育センター」本文の下余白
   * （:has だけの指定は環境によって効かないことがあるため、HTML の tr.gl-destination-guide-entebbe-last で明示）
   */
  .gl-main-table tbody tr.gl-destination-guide-entebbe-last {
    margin-bottom: 1.25rem !important;
  }

  .gl-main-table tbody tr.gl-destination-guide-entebbe-last > td[colspan="20"] {
    padding-bottom: 1.5rem !important;
  }

  /*
   * GALLERY（英語）：gl-mountain-gorilla-meet-heading の 16.75pt より大きく表示
   * メイン表の span 正規化（18pt/16pt 等）より後に置き、確実に上書きする
   */
  .gl-main-table td[colspan="40"][align="center"]:not(.gl-hero-eyecatch) .gl-tour-list-section-heading.gl-mountain-gorilla-meet-heading,
  .gl-main-table td[colspan="40"][align="center"]:not(.gl-hero-eyecatch) span[style*="font-size:22.0pt"][style*="Zen Kaku Gothic New"] {
    font-size: 1.65rem !important;
    line-height: 1.28 !important;
  }
}

