@charset "UTF-8";
/* ============================================================================
   /ir/ 専用スタイル（本体サイトから独立した 1 枚）
   ⚠️ /ir/ の外のリソースを参照しないこと。詳細は /ir/README.md
   Figma: 3G5vuzgwG827MU6FWSD4nE / ページ「実制作」
   ========================================================================== */

:root {
  --ir-dark: #111326;
  --ir-primary: #343976;
  --ir-accent: #f4b800;
  --ir-gray: #f1f1f1;
  --ir-text: #0f0f0f;
  --ir-line: #d9d9d9;
  --ir-hover-soft: #e8eaff; /* 経営情報の行ホバー（Figma バリアント2） */
  /* バナーのホバー。Figma は「濃紺の不透明度90%」指定なので、白背景に載せた実測値を色で持つ
     （opacity では下の要素まで薄くなるため色として持たせる） */
  --ir-primary-hover: #484d84;
  /* 財務ハイライトの表（Figma: 罫線は内外とも一律 #D7D7D7、ヘッダー帯は #F2F3FF） */
  --ir-table-line: #d7d7d7;
  --ir-table-head: #f2f3ff;
  --ir-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  /* 本文幅は Figma 実測 1080px（1440 の左右 180px マージン） */
  --ir-content: 1080px;
}

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

body {
  margin: 0;
  background: #fff;
  color: var(--ir-text);
  font-family: var(--ir-font);
  font-size: 16px;
  line-height: 2;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ホバーの既定フィードバック（独自演出を持つ要素は詳細度で上書きされる） */
:where(a, button) {
  transition: opacity 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  :where(a, button):hover {
    opacity: 0.7;
  }
}

/* ─────────────────────────────────────────────────────────────────────
   ヘッダー（本体サイトの solid バリアント相当。IR は常に下層ページ）
   ──────────────────────────────────────────────────────────────────── */

.ir-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--ir-primary);
}

.ir-header__inner {
  display: flex;
  align-items: center;
  height: 80px;
  padding: 0 24px;
}

.ir-header__logo-pc {
  width: 79px;
  height: 36px;
}

.ir-header__logo-sp {
  display: none;
}

.ir-header__nav {
  margin: 0 auto;
}

.ir-header__list {
  display: flex;
}

.ir-header__item {
  position: relative;
}

.ir-header__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 24px;
  height: 80px;
  color: #fff;
  font-weight: 500;
  line-height: 1;
}

/* ＋（子を持つ項目） */
.ir-header__plus {
  position: relative;
  width: 10px;
  height: 10px;
}

.ir-header__plus::before,
.ir-header__plus::after {
  content: "";
  position: absolute;
  background: currentColor;
}

.ir-header__plus::before {
  inset: 4px 0;
  height: 2px;
}

.ir-header__plus::after {
  inset: 0 4px;
  width: 2px;
}

.ir-header__item:hover > .ir-header__link,
.ir-header__item:focus-within > .ir-header__link {
  color: var(--ir-accent);
  opacity: 1;
}

/* 開いている項目の ＋ は − になる */
.ir-header__item:hover .ir-header__plus::after,
.ir-header__item:focus-within .ir-header__plus::after {
  opacity: 0;
}

.ir-header__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 256px;
  background: rgba(52, 57, 118, 0.9);
  backdrop-filter: blur(12px);
  border-radius: 4px;
  color: #fff;
  padding: 24px 32px 28px;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.2s,
    visibility 0.2s;
}

.ir-header__item:hover .ir-header__dropdown,
.ir-header__item:focus-within .ir-header__dropdown {
  opacity: 1;
  visibility: visible;
}

/* 外部リンクから別タブで戻った時に残る :hover / :focus を打ち消す */
.ir-header.is-nav-suppressed .ir-header__dropdown {
  opacity: 0 !important;
  visibility: hidden !important;
}

.ir-header__dropdown-title {
  font-weight: 700;
  font-size: 20px;
  margin-bottom: 12px;
}

.ir-header__dropdown ul a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  /* IR は「株主・投資家の皆様へ」等が 2 行になるため高さ可変 */
  min-height: 40px;
  padding: 6px 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.ir-header__dd-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* dropdownLines で指定した位置だけで改行する（ブラウザ任せの自動折り返しはさせない）。
   <br> は nowrap でも効くので、改行位置が全項目で揃う。 */
.ir-header__dd-text {
  white-space: nowrap;
}

.ir-header__ext {
  width: 12px;
  height: 12px;
}

.ir-header__arrow {
  flex: none;
  width: 24px;
  height: 24px;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ir-header__arrow img {
  width: 12px;
  height: 8px;
}

.ir-header__actions {
  display: flex;
  align-items: center;
  gap: 24px;
}

.ir-header__recruit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 36px;
  border-radius: 72px;
  background: var(--ir-accent);
  color: #000;
  font-weight: 500;
  line-height: 1;
}

.ir-header__menu-btn {
  display: none;
}

/* ---- SP ドロワー ---- */
.ir-header__drawer {
  position: fixed;
  inset: 56px 0 0;
  background: #fff;
  overflow-y: auto;
  z-index: 20;
}

@media (min-width: 900px) {
  .ir-header__drawer {
    display: none;
  }
}

.ir-header__drawer-list {
  padding: 9px 0 40px;
}

.ir-header__acc summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  padding: 0 32px;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
}

.ir-header__acc summary::-webkit-details-marker {
  display: none;
}

.ir-header__acc summary::after {
  content: "+";
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: 32px;
  font-weight: 300;
  line-height: 1;
}

.ir-header__acc[open] summary::after {
  content: "";
  background: currentColor;
  mask: url("/ir/assets/img/icon-minus.svg") center / 15px 2px no-repeat;
}

.ir-header__acc-children a {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 64px;
  padding: 12px 32px 12px 56px;
  background: var(--ir-gray);
  margin-bottom: 1px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}

.ir-header__acc-children img {
  width: 12px;
  height: 12px;
  filter: brightness(0);
}

.ir-header__drawer-link {
  display: flex;
  align-items: center;
  height: 64px;
  padding: 0 32px;
  font-size: 16px;
  font-weight: 500;
}

/* ─────────────────────────────────────────────────────────────────────
   本文の器
   ──────────────────────────────────────────────────────────────────── */

.ir-main {
  min-height: 60vh;
  padding-bottom: 96px;
}

.ir-section {
  width: min(var(--ir-content), calc(100% - 48px));
  margin: 0 auto 64px;
}

.ir-section:last-child {
  margin-bottom: 0;
}

/* パンくず（本体サイトと同じ 1328px / 24px の枠） */
.ir-breadcrumb {
  max-width: 1328px;
  margin: 0 auto;
  padding: 24px 24px 0;
  font-size: 12px;
}

.ir-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.ir-breadcrumb li {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ir-breadcrumb li + li::before {
  content: "＞";
  font-size: 11px;
}

.ir-breadcrumb a:hover {
  text-decoration: underline;
}

/* ページ見出し ┏ タイトル ┓ */
.ir-page-title {
  display: flex;
  justify-content: center;
  margin: 24px 0 64px;
}

.ir-page-title__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 10px 45px;
  color: #000;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: 1.4;
  text-align: center;
}

.ir-page-title__corner {
  position: absolute;
  width: 32px;
  height: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ir-page-title__corner img {
  width: 15px;
  height: 32px;
  flex: none;
}

.ir-page-title__corner--tl {
  left: 0;
  top: 0;
}
.ir-page-title__corner--tl img {
  transform: rotate(90deg);
}
.ir-page-title__corner--tr {
  right: 0;
  top: 0;
}
.ir-page-title__corner--tr img {
  transform: rotate(90deg) scaleY(-1);
}
.ir-page-title__corner--bl {
  left: 0;
  bottom: 0;
}
.ir-page-title__corner--bl img {
  transform: rotate(-90deg) scaleY(-1);
}
.ir-page-title__corner--br {
  right: 0;
  bottom: 0;
}
.ir-page-title__corner--br img {
  transform: rotate(-90deg);
}

/* セクション見出し。Figma 実測 24px / tracking 0.08em。
   下線は「直後にリストが来る見出し」だけ（IRニュース・株主総会）。
   本文やカード・図が続く見出し（コーポレート・ガバナンス、IRライブラリー等）は下線なしで下 24px。 */
.ir-section-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  margin-bottom: 24px;
}

.ir-section-title:has(+ .ir-list) {
  padding-bottom: 10px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--ir-line);
}

/* 共通の「＞」シェブロン（Figma は 45° 回転した角線。色はホバーで変わるので
   currentColor を継承できる border で描く） */
.ir-chevron {
  flex: none;
  display: inline-block;
  width: 12px;
  height: 12px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

/* ─────────────────────────────────────────────────────────────────────
   PDF リンク行（library / news / meeting / notice / governance / top）
   ──────────────────────────────────────────────────────────────────── */

.ir-list {
  border-top: 1px solid var(--ir-line);
}

/* 見出し直後のリストは、見出しの下線と二重線になるので上罫線を消す
   （見出しの無い notice / governance のリストは上罫線を保つ） */
.ir-section-title + .ir-list {
  border-top: 0;
}


.ir-row {
  border-bottom: 1px solid var(--ir-line);
}

/* 株主総会は各セクションが 1 行のみで、見出しの下線があるため行の下罫線は引かない */
.ir-list--no-rule .ir-row {
  border-bottom: 0;
}

.ir-row__link {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 104px;
  padding: 16px 24px;
  background: #fff;
  transition: background 0.2s;
}

@media (hover: hover) and (pointer: fine) {
  .ir-row__link:hover {
    background: var(--ir-gray);
    opacity: 1;
  }
}

.ir-row__date {
  flex: none;
  /* 行をまたいで日付・バッジ・タイトルの左端を揃えるための基準幅。
     「yyyy.mm.dd提出」のように長い表記でも折り返さないよう min-width + nowrap にする */
  min-width: 87px;
  white-space: nowrap;
  font-size: 16px;
  font-weight: 500;
  line-height: 32px;
}

.ir-row__badge {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 144px;
  height: 32px;
  padding: 0 23px;
  border-radius: 4px;
  background: var(--ir-primary);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 32px;
}

.ir-row__title {
  /* Figma は右揃えではなく、タイトルの直後に PDF アイコンが続く左詰めフロー */
  flex: 0 1 auto;
  font-size: 16px;
  line-height: 32px;
}

.ir-row__pdf {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.ir-row__pdf img {
  width: 22px;
  height: 27px;
}

.ir-row__size {
  font-size: 14px;
  line-height: 32px;
  white-space: nowrap;
}

/* ─────────────────────────────────────────────────────────────────────
   絞り込み UI（見た目のみ。動作は先方 JS）
   ──────────────────────────────────────────────────────────────────── */

/* Figma PC 実測: 246x56、タブまで 40px */
.ir-select {
  margin-bottom: 40px;
}

.ir-select__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.ir-select__control {
  width: 246px;
  height: 56px;
  padding: 0 40px 0 16px;
  border: 1px solid var(--ir-line);
  border-radius: 2px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23343976' stroke-width='1.5'/%3E%3C/svg%3E")
    no-repeat right 16px center / 14px 8px;
  color: var(--ir-text);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  appearance: none;
  cursor: pointer;
}

/* Figma PC 実測: タブ 246x64 × 4 + gap 32px = 1080px。
   直下に #343976 の線が隙間なく接する（Figma の Line 86）ので、
   タブ自身の border-bottom として持たせる（gap 部分もつながる）。 */
.ir-tabs {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 32px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--ir-primary);
}

/* タブの線と二重にならないよう、パネル内リストの上罫線は消す */
.ir-panel .ir-list {
  border-top: 0;
}

.ir-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  border: 0;
  background: var(--ir-gray);
  color: #000;
  font-family: inherit;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
}

.ir-tab[aria-selected="true"],
.ir-tab[aria-current="page"] {
  background: var(--ir-primary);
  color: #fff;
}

@media (hover: hover) and (pointer: fine) {
  .ir-tab:hover {
    background: var(--ir-primary);
    color: #fff;
    opacity: 1;
  }
}

/* ─────────────────────────────────────────────────────────────────────
   /ir/ トップ固有
   ──────────────────────────────────────────────────────────────────── */

/* IRライブラリーの 4 カード（Figma: 246x64・#f1f1f1 → hover #343976） */
.ir-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  /* Figma 実測: カード 246px × 4 + gap 32px × 3 = 1080px */
  gap: 32px;
}

.ir-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 64px;
  padding: 12px 16px;
  background: var(--ir-gray);
  color: #000;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
  transition:
    background 0.2s,
    color 0.2s;
}

@media (hover: hover) and (pointer: fine) {
  .ir-card:hover {
    background: var(--ir-primary);
    color: #fff;
    opacity: 1;
  }
}

/* 財務ハイライト / IRカレンダーの帯（Figma: hover は opacity 0.9） */
/* 背景は画面幅いっぱい、リンク領域は中央の本文幅（1080px）内に収める。 */
.ir-banners {
  background: var(--ir-primary);
  /* .ir-section と同じ下余白（full-bleed なので section を使えない） */
  margin-bottom: 64px;
}

.ir-banners__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(var(--ir-content), calc(100% - 48px));
  margin: 0 auto;
}

.ir-banner {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 200px;
  /* 2つのバナーでアイコン・文字・矢印の位置をそろえる */
  padding: 24px 25px;
  background: var(--ir-primary);
  color: #fff;
  transition: background 0.2s;
}

.ir-banner__icon {
  flex: none;
  width: 64px;
  /* アイコンごとに縦横比が違う（棒グラフ 64x54 / カレンダー 64x64）ので高さは自動 */
  height: auto;
}

.ir-banner__label {
  flex: 1;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
  .ir-banner:hover {
    background: var(--ir-primary-hover);
    opacity: 1;
  }
}

/* 経営情報 / 株式について（Figma: hover #e8eaff） */
.ir-linkcols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 88px;
}

.ir-linkcol__title {
  color: var(--ir-primary);
  font-size: 24px;
  letter-spacing: 0.08em;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 16px;
}

.ir-linkcol ul {
  border-bottom: 1px solid var(--ir-line);
}

.ir-linkcol li {
  border-top: 1px solid var(--ir-line);
}

/* 1件目の上には線を引かない（Figma: 見出しの下は空き、項目間と最下部のみ罫線） */
.ir-linkcol li:first-child {
  border-top: 0;
}

.ir-linkcol a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 88px;
  padding: 12px 20px;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.5;
  transition: background 0.2s;
}

@media (hover: hover) and (pointer: fine) {
  .ir-linkcol a:hover {
    background: var(--ir-hover-soft);
    opacity: 1;
  }
}

/* 角丸ボタン（ニュース一覧） */
.ir-btn-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 124px;
  height: 48px;
  padding: 0 32px;
  border: 1px solid #000;
  border-radius: 32px;
  font-size: 16px;
  letter-spacing: 0.08em;
  line-height: 1;
  transition:
    background 0.2s,
    color 0.2s;
}

.ir-btn-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 32px;
}

/* 四角ボタン（よくあるご質問 / IRお問い合わせ / 電子公告 / 免責事項） */
.ir-btns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.ir-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid #000;
  font-size: 16px;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-align: center;
  transition:
    background 0.2s,
    color 0.2s;
}

@media (hover: hover) and (pointer: fine) {
  .ir-btn:hover,
  .ir-btn-pill:hover {
    background: #000;
    color: #fff;
    opacity: 1;
  }
}

/* ─────────────────────────────────────────────────────────────────────
   財務ハイライト
   ──────────────────────────────────────────────────────────────────── */

.ir-highlight {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px 88px;
}

.ir-metric__title {
  font-size: 24px;
  letter-spacing: 0.08em;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 16px;
}

/* グラフは先方システムの PNG に差し替わる領域 */
.ir-chart {
  position: relative;
}

.ir-chart img {
  width: 100%;
  height: auto;
}

/* 単位はグラフ画像に焼き込まず HTML テキストで重ねる。
   Figma 実測: グラフ枠の右上角（右端揃え・上端 0）・14px */
.ir-chart__unit {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 14px;
  letter-spacing: 0.08em;
  line-height: 1.2;
}

.ir-table {
  margin-top: 16px;
  width: 100%;
  border-collapse: collapse;
  /* Figma: 14px / tracking 1.12px（＝0.08em）/ Regular */
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.6;
}

/* 罫線は内側・外周とも一律 1px #D7D7D7（Figma の Line 88〜100 と外枠が同色） */
.ir-table th,
.ir-table td {
  border: 1px solid var(--ir-table-line);
  height: 34px;
  padding: 4px 12px;
}

/* ヘッダー帯は左上のコーナーセルも含めて全幅（Figma: Rectangle 198 が表の全幅） */
.ir-table thead th {
  background: var(--ir-table-head);
  font-weight: 400;
  text-align: center;
}

/* 行ラベルのバッジ。3Q（黄）も含めて文字は白 */
.ir-table tbody th {
  width: 34px;
  padding: 0;
  color: #fff;
  font-weight: 400;
  text-align: center;
  text-indent: 0.08em;
  vertical-align: middle;
}

.ir-table tbody th[data-q="1Q"] {
  background: #999;
}
.ir-table tbody th[data-q="2Q"] {
  background: #333;
}
.ir-table tbody th[data-q="3Q"] {
  background: #f4b800;
}
.ir-table tbody th[data-q="通期"] {
  background: var(--ir-primary);
}

.ir-table td {
  text-align: right;
}

.ir-note {
  font-size: 16px;
  line-height: 2;
}

.ir-note--block {
  margin-top: 40px;
}

.ir-note__title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 16px;
}

.ir-note--block p + p {
  margin-top: 24px;
}

/* ─────────────────────────────────────────────────────────────────────
   IR カレンダー
   ──────────────────────────────────────────────────────────────────── */

.ir-quarters {
  --ir-calendar-spacing: 0.25rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ir-calendar-spacing);
  margin-bottom: 56px;
}

.ir-quarter {
  min-width: 0;
}

.ir-quarter__head {
  background: var(--ir-primary);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 48px;
  text-align: center;
}

.ir-quarter__months {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ir-calendar-spacing);
  margin-top: var(--ir-calendar-spacing);
}

.ir-month {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-height: 128px;
  padding: 16px 4px;
  background: var(--ir-gray);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.ir-month--event {
  background: var(--ir-hover-soft);
}

.ir-month__event {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3em;
  color: var(--ir-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.ir-year {
  margin-bottom: 48px;
}

.ir-year__title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ir-line);
}

.ir-year li {
  display: flex;
  align-items: baseline;
  gap: 56px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--ir-line);
  line-height: 1.6;
}

.ir-year li span:first-child {
  flex: none;
  width: 96px;
  font-weight: 500;
}

/* ─────────────────────────────────────────────────────────────────────
   テキスト系（message / disclosure / disclaimer / governance）
   ──────────────────────────────────────────────────────────────────── */

.ir-prose {
  width: min(936px, calc(100% - 48px));
  margin: 0 auto;
  font-size: 16px;
  line-height: 2;
}

.ir-prose p + p {
  margin-top: 16px;
}

.ir-prose h2 {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  margin-top: 48px;
  margin-bottom: 8px;
}

.ir-prose h2:first-child {
  margin-top: 0;
}

.ir-prose__lead {
  margin-bottom: 32px;
}

.ir-governance-intro {
  text-align: justify;
  text-justify: inter-character;
}

.ir-message-prose {
  line-height: 2rem;
}

.ir-message-prose > p:not(.ir-signature) {
  text-align: justify;
  text-justify: inter-character;
}

.ir-message-prose > .ir-signature {
  margin-top: 88px;
}

.ir-disclosure-prose {
  line-height: 2rem;
}

.ir-disclosure-prose .ir-numbered__body p {
  text-align: justify;
  text-justify: inter-character;
}

.ir-disclaimer-prose {
  line-height: 2rem;
}

.ir-disclaimer-prose p {
  text-align: justify;
  text-justify: inter-character;
}

/* ディスクロージャーポリシーの「（1） 見出し」＋ぶら下げ本文 */
.ir-numbered {
  margin-top: 40px;
}

.ir-numbered:first-child {
  margin-top: 0;
}

.ir-numbered__title {
  display: flex;
  gap: 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 8px;
}

.ir-numbered__title > span:first-child {
  flex: 0 0 52px;
}

.ir-numbered__body {
  padding-left: 64px;
}

.ir-signature {
  margin-top: 64px;
  text-align: right;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}

.ir-signature span {
  margin-right: 16px;
  font-size: 16px;
  font-weight: 400;
}

/* ガバナンス体制図（SVG の縦横比を保って表示） */
.ir-diagram img {
  display: block;
  width: 100%;
  height: auto;
}

/* ─────────────────────────────────────────────────────────────────────
   定義テーブル（株式情報）
   ──────────────────────────────────────────────────────────────────── */

.ir-deftable {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.8;
}

.ir-deftable th,
.ir-deftable td {
  border-top: 1px solid var(--ir-line);
  padding: 24px 8px;
  text-align: left;
  vertical-align: top;
}

.ir-deftable tr:last-child th,
.ir-deftable tr:last-child td {
  border-bottom: 1px solid var(--ir-line);
}

.ir-deftable th {
  width: 240px;
  padding-left: 24px;
  font-weight: 700;
}

/* ─────────────────────────────────────────────────────────────────────
   よくあるご質問
   ──────────────────────────────────────────────────────────────────── */

.ir-faq li {
  padding: 32px 0;
  border-bottom: 1px solid var(--ir-line);
}

.ir-faq li:first-child {
  padding-top: 0;
}

.ir-faq__q,
.ir-faq__a {
  display: flex;
  gap: 12px;
}

.ir-faq__q {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 12px;
}

.ir-faq__a {
  font-size: 16px;
  line-height: 2rem;
}

.ir-faq__q > span:last-child,
.ir-faq__a > span:last-child {
  flex: 1;
  min-width: 0;
}

.ir-faq__a > span:last-child {
  text-align: justify;
  text-justify: inter-character;
}

.ir-faq__mark {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-top: 3px;
  padding-bottom: 2px;
  border-radius: 50%;
  color: #fff;
  font-family: "Open Sans", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
}

.ir-faq__mark--q {
  background: #000;
}

.ir-faq__mark--a {
  background: var(--ir-primary);
}

.ir-faq a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ─────────────────────────────────────────────────────────────────────
   Adobe Acrobat Reader バナー
   ──────────────────────────────────────────────────────────────────── */

.ir-acrobat {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-top: 72px;
}

.ir-acrobat__banner img {
  width: 158px;
  height: 39px;
}

.ir-acrobat__text,
.ir-note.ir-stock-price-note {
  font-size: 14px;
}

.ir-acrobat__text {
  line-height: 1.7;
}

/* ─────────────────────────────────────────────────────────────────────
   フッター
   ──────────────────────────────────────────────────────────────────── */

.ir-footer {
  background: var(--ir-dark);
  color: #fff;
  padding: 40px 24px 24px;
}

.ir-footer__inner {
  display: flex;
  gap: 64px;
  max-width: 1264px;
  margin: 0 auto;
}

.ir-footer__logo {
  width: 128px;
  height: 58px;
}

.ir-footer__nav {
  display: flex;
  gap: 56px;
  margin-left: auto;
}

.ir-footer__heading {
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 12px;
}

.ir-footer__col li a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  line-height: 2;
  color: #fff;
}

.ir-footer__ext {
  width: 12px;
  height: 12px;
}

.ir-footer__bottom {
  display: flex;
  align-items: center;
  gap: 24px;
  max-width: 1264px;
  margin: 48px auto 0;
}

.ir-footer__policies {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  font-size: 12px;
}

.ir-footer__copy {
  margin-left: auto;
  font-size: 11px;
  white-space: nowrap;
}

/* ============================================================================
   SP（Figma: 375px の _SP フレーム群）
   ========================================================================== */

@media (max-width: 899px) {
  .ir-header {
    background: var(--ir-primary);
  }

  .ir-header.is-open {
    background: #fff;
  }

  .ir-header__inner {
    height: 56px;
    padding: 0 16px;
  }

  .ir-header__nav,
  .ir-header__actions {
    display: none;
  }

  .ir-header__logo-pc {
    width: 60px;
    height: 27px;
  }

  .ir-header.is-open .ir-header__logo-pc {
    display: none;
  }

  .ir-header.is-open .ir-header__logo-sp {
    display: block;
    width: 60px;
    height: 27px;
  }

  .ir-header__menu-btn {
    display: block;
    position: relative;
    margin-left: auto;
    width: 40px;
    height: 40px;
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer;
  }

  .ir-header__menu-btn span {
    position: absolute;
    left: 4px;
    right: 4px;
    height: 2px;
    border-radius: 2px;
    background: #fff;
    transition:
      transform 0.3s,
      opacity 0.3s,
      top 0.3s;
  }

  .ir-header.is-open .ir-header__menu-btn span {
    background: #040404;
  }

  .ir-header__menu-btn span:nth-child(1) {
    top: 7px;
  }
  .ir-header__menu-btn span:nth-child(2) {
    top: 19px;
  }
  .ir-header__menu-btn span:nth-child(3) {
    top: 31px;
  }

  .ir-header__menu-btn[aria-expanded="true"] span:nth-child(1) {
    top: 19px;
    transform: rotate(45deg);
  }
  .ir-header__menu-btn[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }
  .ir-header__menu-btn[aria-expanded="true"] span:nth-child(3) {
    top: 19px;
    transform: rotate(-45deg);
  }

  .ir-breadcrumb {
    padding: 8px 16px 0;
    font-size: 11px;
  }

  /* Figma SP のシェブロンは回転後 14.14px ＝ 10px 四方（PC は 12px 四方） */
  .ir-chevron {
    width: 10px;
    height: 10px;
  }

  /* Figma SP 実測: 見出しは PC の 0.833 倍 ＝ 20px */
  .ir-section-title,
  .ir-metric__title,
  .ir-linkcol__title {
    font-size: 20px;
  }

  .ir-page-title {
    margin: 28px 0 40px;
  }

  .ir-page-title__inner {
    padding: 10px 24px;
    letter-spacing: 0.08em;
  }

  .ir-main {
    padding-bottom: 64px;
  }

  .ir-section {
    width: calc(100% - 32px);
    margin-bottom: 48px;
  }

  .ir-prose {
    width: calc(100% - 32px);
    font-size: 15px;
  }

  .ir-message-prose > .ir-signature {
    margin-top: 64px;
  }

  /* IRライブラリーのカードは 1 列積み。Figma SP 実測: 左23px・右17px・文字16px */
  .ir-cards {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .ir-card {
    padding: 12px 17px 12px 23px;
    font-size: 16px;
  }

  /* PDF 行は日付・バッジ・タイトル・PDF を縦積み */
  /* Figma SP 実測: 内容は行(343px)の内側 8px、上 25px・下 20px。
     区切り線は .ir-row(li) 側なので行の全幅のまま。 */
  .ir-row__link {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 8px 12px;
    min-height: 0;
    padding: 25px 8px 20px;
  }

  .ir-row__date {
    grid-column: 1 / -1;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
  }

  .ir-row__badge {
    grid-column: 1 / -1;
    justify-self: start;
    min-width: 0;
    padding: 0 16px;
  }

  .ir-row__title {
    grid-column: 1 / -1;
    font-size: 16px;
    line-height: 1.6;
  }

  .ir-row__pdf {
    grid-column: 1 / -1;
  }

  .ir-banners__inner,
  .ir-linkcols,
  .ir-highlight {
    grid-template-columns: 1fr;
  }

  /* Figma SP 実測: 内側 8px・行高 64px・文字 16px */
  .ir-linkcol a {
    min-height: 64px;
    padding: 12px 8px;
    font-size: 16px;
  }

  /* SP のバナーは画面全幅（PC の 1080px 制約を外す） */
  .ir-banners__inner {
    width: 100%;
  }

  .ir-highlight {
    gap: 40px;
  }

  .ir-note {
    font-size: 16px;
    line-height: 1.5;
  }

  .ir-note--block {
    margin-top: 32px;
  }

  .ir-note__title {
    font-size: 20px;
    margin-bottom: 8px;
  }

  .ir-note--block p + p {
    margin-top: 16px;
  }

  /* Figma 実測: 高さ120px・左32px・右25px・アイコン48px・ラベル16px */
  .ir-banner,
  .ir-banner:last-child {
    min-height: 120px;
    padding: 20px 25px 20px 32px;
    gap: 16px;
  }


  /* 2枚のバナーの区切りの白線 */
  .ir-banner + .ir-banner {
    border-top: 1px solid #fff;
  }

  .ir-banner__icon {
    width: 48px;
    height: auto;
  }

  .ir-banner__label {
    font-size: 16px;
  }

  .ir-btns {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  /* Figma SP 実測: タブは一段（343x48 を縦積み・gap 8px）。
     SP は Figma にタブ下の線が無いので border は消し、リスト側の上罫線を戻す。 */
  .ir-tabs {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-bottom: 8px;
    border-bottom: 0;
  }

  /* SP はタブ直下の線もリストの上罫線も無し（Figma SP 準拠） */
  .ir-panel .ir-list {
    border-top: 0;
  }

  .ir-tab {
    height: 48px;
    font-size: 16px;
  }

  .ir-select {
    margin-bottom: 24px;
  }

  .ir-select__control {
    width: 100%;
    height: 56px;
  }

  /* Figma SP 実測: 四半期は 2 列 × 2 段（各 170px + gap 3px = 343px）。
     ヘッダー 26px・月セル 82px・その間 3px。 */
  .ir-quarters {
    --ir-calendar-spacing: 0.1875rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ir-quarter__head {
    font-size: 13px;
    line-height: 26px;
  }

  .ir-month {
    min-height: 82px;
    gap: 6px;
    padding: 10px 2px;
    font-size: 13px;
  }

  .ir-month__event {
    font-size: 10px;
  }

  .ir-year li {
    gap: 16px;
    padding: 12px 0;
  }

  .ir-year li span:first-child {
    width: 72px;
  }

  .ir-deftable th,
  .ir-deftable td {
    display: block;
    width: auto;
    border: 0;
    padding: 0;
  }

  .ir-deftable th {
    padding-top: 20px;
    border-top: 1px solid var(--ir-line);
  }

  .ir-deftable td {
    padding-bottom: 20px;
  }

  /* PC 用の tr:last-child th{border-bottom} は詳細度が高く .ir-deftable th{border:0} で
     消えないため、SP では明示的に打ち消す（ラベルと値の間に線が入るのを防ぐ）*/
  .ir-deftable tr:last-child th {
    border-bottom: 0;
  }

  .ir-deftable tr:last-child td {
    border-bottom: 1px solid var(--ir-line);
  }

  /* spBreak(): SP では 2 つの塊を改行し、間の全角スペースは消す */
  .ir-spbr {
    display: block;
  }

  .ir-spbr__sep {
    display: none;
  }

  .ir-numbered__body {
    padding-left: 0;
  }

  .ir-acrobat {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-top: 56px;
  }

  /* フッターは 2 カラムグリッド（Figma SP 準拠） */
  .ir-footer__inner {
    flex-direction: column;
    gap: 32px;
  }

  .ir-footer__logo {
    width: 72px;
    height: 33px;
  }

  .ir-footer__nav {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: start;
    margin-left: 0;
    gap: 32px 40px;
  }

  .ir-footer__col li a {
    font-size: 14px;
    color: #828282;
  }

  .ir-footer__col li a .ir-footer__ext {
    opacity: 0.5;
  }

  .ir-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .ir-footer__copy {
    margin: 0 auto;
  }
}
