/* features-th32.css — ベースライン(自動読込・module-base.css前提)。編集せず上書きで調整。 */
@charset "UTF-8";

._th32_module .button.add_arrow {
  display: inline-block;
  border-radius: 0;
  padding: 1.5em 5em;
}
._th32_module .button.add_arrow:after {
  border-top: 1px solid var(--color-on-primary);
  border-right: 1px solid var(--color-on-primary);
}
._th32_module .button.add_arrow:hover:after {
  border-top: 1px solid var(--color-on-primary);
  border-right: 1px solid var(--color-on-primary);
}

body.two_column ._th32_module .button.add_arrow {
  display: inline-block;
  border-radius: 0;
  padding: 1.5em 5em;
  margin-bottom: 0;
}

._th32_module ._th32_module_wrap {
  position: relative;
}
._th32_module ._th32_module_wrap:after {
  content: "";
  clear: both;
  height: 0;
  display: block;
  visibility: hidden;
}
._th32_module ._th32_module_wrap ._th32_module_img_wrap {
  width: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  overflow: hidden;
}
._th32_module ._th32_module_wrap ._th32_module_img_wrap img {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto 0 auto auto;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap {
  width: 50%;
  float: right;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 {
  position: relative;
  background: url("");
  overflow: hidden;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: -1;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
  height: 100%;
  display: table;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
  display: table-cell !important;
  vertical-align: middle;
  width: calc(1200px / 2);
  padding-left: 45px;
  color: var(--color-on-primary);
  overflow: hidden;
  font-weight: bold;
  text-align: left;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])):after, ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])):before {
  content: none;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span {
  display: inline-block;
  position: relative;
  font-size: 1.3rem;
  margin-bottom: 1.8em;
  font-weight: normal;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  display: inline-block;
  height: 1px;
  background: #FFF;
  width: 50vw;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
  position: static;
  max-width: calc(1200px / 2);
  padding: 45px 0 0 45px;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button {
  margin-top: 1.5em;
}
@media (max-width: 1199px) {
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
    width: 95%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
    padding: 0 0 0 5%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
    padding: 5% 5% 0;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button {
    margin-top: 0;
  }
}
@media (max-width: 480px) {
  ._th32_module ._th32_module_wrap ._th32_module_img_wrap {
    width: 100%;
    position: static;
  }
  ._th32_module ._th32_module_wrap ._th32_module_img_wrap img {
    position: static;
    width: 100%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap {
    width: 100%;
    float: none;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 {
    height: auto !important;
    padding: 5% 5% 5% 0;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure img {
    width: auto;
    height: auto;
    max-width: 135%;
    min-height: 100%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
    width: auto;
    padding: 0 0 0 5%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
    padding: 0;
    font-size: 2.6rem;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span {
    margin-bottom: 1em;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span:after {
    width: 100vw;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
    padding: 5%;
    height: auto !important;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button {
    margin-top: 0;
  }
}

body.two_column ._th32_module .button {
  margin-left: 0;
}
@media (min-width: 481px) {
  body.two_column ._th32_module img {
    max-width: none;
  }
  body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
    width: 95%;
  }
  body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
    padding: 0 0 0 5%;
    font-size: 2.2rem;
  }
  body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
    padding: 5% 5% 0;
  }
  body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button {
    margin-top: 0;
  }
}

/* SM-FIX2-20260819 */
/* 2026-08-19: (1) 見出しが display:table-cell + width:calc(1200px/2) の【固定幅600px】で、
   器より広い画面幅未満では溢れて切れていた（実測 338px の器に 479px の中身）。
   (2) 見出しの背景は z-index:-1 の写真なので、var(--color-on-primary)（#111111）だと
   写真に埋もれる。器に暗幕を敷いて白文字にする。 */
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1{ position: relative; }
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1:before{
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 0;
  background: rgba(0,0,0,.42); pointer-events: none;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap{
  position: relative; z-index: 1;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])){
  width: auto; max-width: 100%;
  padding-left: min(45px, 6vw); padding-right: min(45px, 6vw);
  color: #fff;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span{ color: #fff; }

/* SM-FIX5-20260819 */
/* 2026-08-19(2): 見出しが display:table-cell のままなので、器より内容が広いと
   縮まず overflow:hidden で切れる（実測 338px の器に 502px の中身）。
   狭い幅では table レイアウトをやめて通常のブロックに戻し、折り返させる。 */
@media (max-width: 1023px){
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap{
    display: block; height: auto;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])){
    display: block !important; width: auto; max-width: 100%; word-break: break-word;
  }
}

/* SM-FIX6-20260819 */
/* 2026-08-19(2): 見出し帯の【背景写真がそもそも出ていなかった】。
   figure が z-index:-1 で、器 ._th32_module_text_box1 は z-index:auto のため
   スタッキングコンテキストが作られず、写真が祖先の背景の裏へ回り込んでいた。
   写真を通常の重なりに戻し、スクリム→見出しの順に重ねる。 */
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure{ z-index: 0; }
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1:before{ z-index: 1; }
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap{ z-index: 2; }

/* ==========================================================================
   SM-2026-09-16 / features-th32
   受領時の構図（左＝全高写真の壁 / 右上＝写真を背にした見出しの帯 / 右下＝白地の本文と
   CTA / 見出しから画面の端へ抜ける水平のヘアライン）は1つも変えていない。
   意匠も1つも足していない（角丸・影・新しい面・新しい線・新しい図形はゼロ）。
   直したのは実測で出た欠陥だけ。根拠と実測値:
   .company/engineering/plans/features-th32-plan.md
   ========================================================================== */

._th32_module {
  /* 帯と本文の左右内余白を1つの式にする。受領時は 1199px 以下が 5%・1200px 以上が
     min(45px,6vw) で、1199→1200px で帯の高さが 131.4→150.6px、セクション高が
     472.5→540.5px（+68px）跳ねていた。3.75vw ＝ 帯（50vw）の 7.5% で、
     1200px ちょうどで受領時の 45px にぴたりと着地する（1199px で 44.96px）。 */
  --th32-inset: clamp(18px, 3.75vw, 45px);
  /* 見出し帯のスクリム濃度。受領時の .42 は【純白の写真】の案件で実描画 3.03（AA未達）。
     純白から逆算した階段を実測して決めた（計画 §8-1）。 */
  --th32-scrim: 0.56;
  /* 土台 module-base.css の .lgx{font-family:Arial…} が、サイトのフォント設定を
     この部品の p / a へ1文字も届かせない（受領時 実測 1,536/1,536 で Arial）。
     ルート配下で明示して継承を取り戻す（規約 R-3）。 */
  font-family: var(--font-body);
  /* 土台 .lgx{font-size:1.4em} が配下の基準を 22.4px に持ち上げるため、本文もボタンも
     22.4px で描かれていた。トークンの基準へ戻す（規約 R-4）。 */
  font-size: var(--fs-body);
}

/* ── 左半分の主役写真 ──────────────────────────────────────────────────
   受領時は position:absolute ＋ margin:auto で【自然サイズのまま器の中央】に置かれ、
   common.css の img｛height:auto; max-height:800px｝と合わさって器を満たしていなかった。
   実測: 器を覆う割合が 12.8〜100%（78パターン中 56 が 100% 未満）、上下の白帯が最大
   447.4px。README 冒頭の「画面の左半分に写真を【全高で】敷き」が PC の主要幅で未成立。
   README は「左の写真は overflow:hidden で切られる。左右が切れる前提の構図で」と
   明記しているので、cover による切れは仕様どおり。
   ──────────────────────────────────────────────────────────────────── */
._th32_module ._th32_module_wrap ._th32_module_img_wrap img {
  inset: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  /* common.css の 800px の蓋を外す。外さないと縦長の写真で【幅】が頭打ちになる（既知） */
  max-height: none;
  object-fit: cover;
}

/* ── 見出し帯の背景写真 ────────────────────────────────────────────────
   器（figure）は top:0/bottom:0 で帯と同じ高さを持っているのに、中の img だけが
   自然サイズのままだった。実測: 帯を覆う割合 22.3〜100%（78中 28 が 100% 未満）で、
   481〜1024px では帯の下半分がスクリムだけの素の面になっていた。
   ★矩形検査を figure で採ると 100% と答えるので、img の矩形で測らないと出ない。
   ──────────────────────────────────────────────────────────────────── */
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure {
  left: 0;
  right: 0;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  display: block;
}

._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 {
  /* 受領時の background: url("") は空 URL で、ドキュメント自身を画像として取りに行く
     死に指定。見た目には出ないが全案件で無駄な要求になるので止める。 */
  background-image: none;
  /* 帯の内側の余白を四辺そろえる。左右の内余白と同じ変数を使うので、
     見出しは帯の中で「同じ幅の額」に収まり、幅が変わっても比が崩れない。
     ★これを器に持たせることで、上の h2 の margin / padding-block を 0 にでき、
       display:block ↔ table-cell の切り替わりで帯の高さが跳ねなくなる。 */
  padding-block: var(--th32-inset);
}

._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1:before {
  /* 写真の上に敷く黒スクリムは規約 R-1 の明示例外（生値でよい） */
  background: rgba(0, 0, 0, var(--th32-scrim));
}

/* ── 文字まわり ────────────────────────────────────────────────────────
   受領時は 見出し 38.4/41.6px・英字サブ 20.8px・本文 22.4px・ボタン 22.4px の
   全幅固定で、トークンを1つも経由していなかった（規約 R-4）。
   ──────────────────────────────────────────────────────────────────── */
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
  font-family: var(--font-heading);
  font-size: var(--fs-h2);
  /* 長い日本語見出しが2〜3行になっても字面が接しない行送り */
  line-height: 1.32;
  /* ★帯の天地の余白は【器】が持つ。見出し自身の margin / padding に持たせると、
     土台の `.lgx h2{ margin: 0 auto 1.5em; padding-bottom: .5em }` が
     display の切り替わる幅で効いたり効かなかったりして、帯の高さが跳ねる。
     実測（修正前）: 1023→1024px で帯 178.5→125.8px（margin が table-cell で無視されるため −52.7px）、
     1199→1200px で帯 125.8→143.3px（受領時の `padding: 0 0 0 5%` が外れて padding-bottom が復活し +17.5px）。 */
  margin: 0;
  padding-block: 0;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span {
  font-size: var(--fs-small);
  /* 主従はサイズと字送りだけで付ける。色を1段引くと淡色プリセットで比が落ちる（既知） */
  letter-spacing: 0.08em;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 p {
  font-family: var(--font-body);
  font-size: var(--fs-body);
}

/* ── MORE ボタン ───────────────────────────────────────────────────────
   受領時は 291.2 × 89.6px（padding:1.5em 5em × 22.4px）で全幅・全パターン同値。
   面と文字のトークンの組（--color-primary / --color-on-primary）は受領時のまま。
   角がゼロの平たい矩形も受領時のままで、これがこの部品の硬質なトーンそのもの。
   ──────────────────────────────────────────────────────────────────── */
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  padding: 1.15em 3.6em 1.15em 2.6em;
  /* 受領時は 1199px 以下が margin-top:0、1200px 以上が 1.5em で、
     本文とボタンの間隔が 1199↔1200px で 16px → 40px に跳ねていた。全幅で1つの値にする */
  margin-top: 1.2em;
}

._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow:hover,
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow:focus-visible {
  /* 土台に、同じ a.button.add_arrow へ効く【2つの独立したホバー用パッチ】が同点の
     詳細度で当たっていて、面も文字も primary 由来になり同化していた。
     実測（実描画画素）: 既定 6.07→3.16 / 高彩度 4.82→3.28 / 淡色 11.22→4.61 /
     濃色 15.59→5.79。60パターン中 30 が AA 未達。
     面と文字の組を rest のまま保てば、どの配色でも rest と同じ比が保証される。
     合図は土台が既に持っている【矢印の移動（right:5%→4%）】という幾何で取る。
     ★リング（box-shadow）は使えない。この部品の器は overflow:hidden で縁が刈られる（既知）。 */
  background: var(--color-primary);
  color: var(--color-on-primary);
  /* common.css の a:hover｛opacity:.8｝と土台の filter:brightness(.9) を両方打ち消す */
  opacity: 1;
  filter: none;
  /* 土台 .lgx .add_arrow:hover｛border:1px solid …｝が縁を生やして中身を 1px 動かす */
  border: 0;
  /* common.css の :focus-visible は `outline: 3px solid currentColor` ＋ `outline-offset: 2px`。
     文字色は --color-on-primary なので、濃色プリセット（on-primary が #fff）では
     【白いリングが .lgx の白い地の上】に描かれてキーボードフォーカスが見えなくなる。
     どの配色でも白地で読める濃色トークンに差し替える */
  outline-color: var(--color-heading-ink);
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow:after {
  /* 土台の right:5%→4% は【ボタン幅の割合】。ボタンを字幅に詰めたぶん移動量が
     7.17→5.73px（1.4px）まで痩せて合図にならない。幅によらない固定値に置き換える。
     rest の位置は受領時とほぼ同値（実測 7.17px → 8px）のまま */
  right: 0.5em;
}
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow:hover:after,
._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button.add_arrow:focus-visible:after {
  border-color: var(--color-on-primary);
  right: 0.15em;
}

/* ── PC（左右2分割）─────────────────────────────────────────────────── */
@media (min-width: 768px) {
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
    width: 100%;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
    padding-left: var(--th32-inset);
    padding-right: var(--th32-inset);
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span {
    /* 受領時の 1.8em は 20.8px 基準（実測 37.4px）。--fs-small へ載せ替えたぶん、
       英字サブと和文の間隔が受領時とほぼ同じになる値に置き直す */
    margin-bottom: 2.5em;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
    /* 受領時の max-width: calc(1200px / 2) はそのまま残す。README が「テキスト箱の幅は
       600px 固定が上限。本文は4〜6行程度に収める」と仕様として書いている行長の上限で、
       外すと 1920px で1行が 870px になる */
    padding: var(--th32-inset) var(--th32-inset) 0;
  }
}

/* ── SP（縦積み）────────────────────────────────────────────────────────
   受領時は 480px で縦積みへ切り替わっていたが、481〜767px の2分割は
   左写真の覆い率が 12.8〜52.1%、器の実効比が 0.234〜0.958（＝横長の写真が
   縦長の柱に倒れて左右の 70% 以上が捨てられる）まで破綻していた。
   規約 R-6（≤768px は必ず縦積み）に合わせ、【受領時の SP レイアウトの適用範囲を
   広げる】。新しい構図は1つも作っていない。
   ★境界を 768 ではなく 767 にしてあるのは `.lgx` 族の定石（土台の min-width:768 の
     規則と 1px だけ両方効く窓を作らないため）。この部品は .row/.col を持たないので
     実害は無いが、同じバンドルの兄弟と書き癖をそろえる。
   ──────────────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  ._th32_module ._th32_module_wrap ._th32_module_img_wrap {
    width: 100%;
    position: static;
  }
  ._th32_module ._th32_module_wrap ._th32_module_img_wrap img {
    position: static;
    width: 100%;
    height: auto;
    /* 素材と同じ比。器の高さを器【自身の幅】から決めるので、文章量に引きずられない */
    aspect-ratio: 1408 / 768;
    object-fit: cover;
    max-height: none;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap {
    width: 100%;
    float: none;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 {
    /* 受領時の !important は削除済みの jQuery tile() が入れるインライン高さを
       打ち消すためのもの。JS が無くなったので通常の宣言で足りる。
       天地の余白は無条件の padding-block（= var(--th32-inset)）が持つ */
    height: auto;
    padding-inline: 0;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 figure img {
    /* SP は帯が全幅になるので、受領時の 135% ハックをやめて器に張り付ける */
    width: 100%;
    height: 100%;
    max-width: none;
    min-height: 0;
    object-fit: cover;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
    /* display:block / height:auto は受領時の SM-FIX5（max-width:1023px）が既に当てている。
       ここで重ねると !important を新しく持ち込むだけなので、幅と余白だけを上書きする */
    width: auto;
    padding: 0;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
    padding-left: var(--th32-inset);
    padding-right: var(--th32-inset);
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span {
    margin-bottom: 1.6em;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) span:after {
    width: 100vw;
  }
  ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
    padding: var(--th32-inset);
    height: auto;
    max-width: none;
  }
}

/* ── 本番の2カラムページ（`<body class="two_column">`）──────────────────
   受領時は `body.two_column ._th32_module …`（詳細度 0,6,2）で
   `_h2wrap{width:95%}` / `h2{padding: 0 0 0 5%; font-size: 2.2rem}` /
   `_text_box2{padding: 5% 5% 0}` / `a.button{margin-top:0}` を当てている。
   これはこちらの修正（0,5,1）より強いので、**2カラムページでは上の修正が1つも効かない**。
   実測（body.two_column を付けて計測）: 見出しが全幅で 35.2px 固定（SP でも PC と同寸＝規約 R-6 違反）、
   `padding-right: 0`（長いキャッチが帯の右端に接する）、`_h2wrap` が 95% なので
   **水平線が画面の端に届かない**。同じ値を two_column 側にも当てて、1カラムと挙動をそろえる。
   ★セレクタを `body.two_column` で始めるのは受領時の書き癖に合わせたもので、
     宣言はすべてこのモジュールの class 配下に閉じている（規約 R-10）。
   ──────────────────────────────────────────────────────────────────── */
body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap {
  width: 100%;
}
body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box1 ._th32_module_h2wrap :is(h2:where(:not([data-sm-h])),:where([data-sm-h="h2"])) {
  font-size: var(--fs-h2);
  margin: 0;
  padding-block: 0;
  padding-left: var(--th32-inset);
  padding-right: var(--th32-inset);
}
body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 {
  /* 下余白は受領時どおり 0（セクションの padding が受ける）。左右と上だけをそろえる */
  padding-inline: var(--th32-inset);
  padding-top: var(--th32-inset);
}
body.two_column ._th32_module ._th32_module_wrap ._th32_module_text_wrap ._th32_module_text_box2 a.button {
  margin-top: 1.2em;
}
