@charset "UTF-8";
/* CSS Document */

.row {margin-bottom: 20px;}

/* 右カラム追従（JSでtransformする） */
@media (min-width: 768px){
  .ir-top__news-side{
    will-change: transform;
  }
}


/* ===================================================================================================
   Basic Parts 
=================================================================================================== */

/* =========================================
   Lower Parts : H1 Title (h1-title-01)
   ※HTML変更不可のため class に直当て
========================================= */

.ir-top__news-main .h1-title-01{
  position: relative;
  margin: 0 0 28px;
  padding: 0 0 14px;
  font-size: 25px;
  line-height: 1.35;
  font-weight: 700;
  color: #2E3A20; /* 既存トーンに寄せ（必要なら後で調整） */
}

.ir-top__news-main .h1-title-01::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(
    90deg,
    #E57F14 0,
    #E57F14 74px,
    #6EB92B 74px,
    #6EB92B 100%
  );
  pointer-events: none;
}

/* =========================================
   Lower Parts : H2 (vcH2)
========================================= */

.ir-top__news-main .vcH2{
  margin: 0 0 16px;
  padding: 0 0 14px;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  color: #2E3A20; /* 既存トーンに寄せ（必要なら後で調整） */
  border-bottom: 3px solid #6EB92B;
}

/* テキストブロック側（任意：詰まり防止の最低限） */
.ir-top__news-main .cmsSec-A{
  margin: 0 0 28px;
}

.ir-top__news-main .vcP{
  margin: 0;
  line-height: 1.9;
}

/* =========================================
   Lower Parts : image + text wrap (vcImgD + p.vc)
   - float left
   - width about 50%
   - margin-right/bottom 20px
   - override inline style
========================================= */

.ir-top__news-main .cmsSec-A .vcImgD{
  float: left;
  width: 50%;
  height: auto;
  max-width: 100%;
  margin: 0 20px 20px 0 !important; /* inline style を上書き */
  border-radius: 8px; /* 不要なら削除OK */
  display: block;
}

.ir-top__news-main .cmsSec-A p.vc{
  margin: 0;
  line-height: 1.9;
}

/* clearfix（HTMLに clearfix クラスが付いている前提） */
.ir-top__news-main .cmsSec-A.clearfix::after{
  content: "";
  display: block;
  clear: both;
}

/* SPでは縦積みにして読みやすく */
@media (max-width: 767px){
  .ir-top__news-main .cmsSec-A .vcImgD{
    float: none;
    width: 100%;
    margin: 0 0 16px 0 !important;
  }
}

/* =========================================
   Lower Parts : image + text wrap (RIGHT)  vcImgE
   - float right (override inline)
   - width about 50%
   - margin-left/bottom 20px
========================================= */

.ir-top__news-main .cmsSec-A .vcImgE{
  float: right!important;
  width: 50%;
  height: auto;
  max-width: 100%;
  margin: 0 0 20px 20px !important; /* 左20px・下20px（inlineを上書き） */
  border-radius: 8px; /* 不要なら削除OK */
  display: block;
}

/* p内に入っている前提なので、段落の余白を整理 */
.ir-top__news-main .cmsSec-A .vcP{
  margin: 0;
  line-height: 1.9;
}

/* clearfix（HTMLに clearfix クラスが付いている前提） */
.ir-top__news-main .cmsSec-A.clearfix::after{
  content: "";
  display: block;
  clear: both;
}

/* SPでは縦積みにして読みやすく */
@media (max-width: 767px){
  .ir-top__news-main .cmsSec-A .vcImgE{
    float: none;
    width: 100%;
    margin: 0 0 16px 0 !important;
  }
}

/* =========================================
   Lower Parts : H2 Title (h2-title-01)
========================================= */

.ir-top__news-main .h2-title-01{
  margin: 0 0 16px;
  padding: 2px 0 2px 14px; /* 左の線と文字の間隔 */
  border-left: 4px solid #E57F14;

  min-height: 32px;        /* 最低高さ */
  display: flex;           /* 高さが低い場合でも見栄えを揃える */
  align-items: center;     /* 1行時は中央寄せ */
  
  font-size: 20px;         /* 必要なら調整（デザインに合わせて） */
  line-height: 1.4;        /* 複数行でも自然に伸びる */
  font-weight: 700;
  color: #2E3A20;
}

/* 複数行になった時は中央寄せが不自然になるので上寄せに戻す */
.ir-top__news-main .h2-title-01{
  align-items: flex-start;
}

/* =========================================
   Lower Parts : H3 (vcH3)  - same as h2-title-01
========================================= */

.ir-top__news-main .vcH3{
  margin: 0 0 16px;
  padding: 2px 0 2px 14px;
  border-left: 4px solid #E57F14;

  min-height: 32px;

  font-size: 20px;   /* H3なので一段小さめ（必要なら20pxでもOK） */
  line-height: 1.4;
  font-weight: 700;
  color: #2E3A20;
}

/* =========================================
   Lower Parts : centered image (max 930px)
   HTML:
   .ml-30 > .content_wrap > p.ta_center > img
========================================= */

.ir-top__news-main .ta_center{
  text-align: center;
}

.ir-top__news-main .ta_center img{
  display: inline-block;
  height: auto;
  vertical-align: top;
	margin-bottom: 20px;
	border-radius: 8px;
}

/* もし ir-top__news-main の横幅が狭い場合でも確実に収まる */
.ir-top__news-main .ml-30,
.ir-top__news-main .mr-30{
  max-width: 100%;
}

/* =========================================
   Lower Parts : 2 images side-by-side (clearfix + inline float)
   HTML:
   <div class="clearfix">
     <div class="mb-20 ml-30 mr-30" style="width:40%; float:left;">
       <img class="ro">
     </div>
     <div class="mb-20 ml-30 mr-30" style="width:40%; float:left;">
       <img class="ro">
     </div>
   </div>
========================================= */

/* floatレイアウトのまま、はみ出さないように幅を調整（inlineを上書き） */
.ir-top__news-main .clearfix > .mb-20{
  width: calc(50% - 15px) !important; /* 2カラムにして中央の隙間を確保 */
  margin-left: 0 !important;          /* 既存ml-30を無効化（はみ出し防止） */
  margin-right: 0 !important;         /* 既存mr-30を無効化 */
  margin-bottom: 20px !important;     /* mb-20を担保 */
}

/* 2つ目だけ左に隙間（ガター）を作る */
.ir-top__news-main .clearfix > .mb-20 + .mb-20{
  margin-left: 30px !important;
}

/* 画像は枠にフィット */
.ir-top__news-main .clearfix > .mb-20 img{
  display: block;
  width: 100%;
  height: auto;
}

/* 角丸（必要なら） */
.ir-top__news-main img.ro{
  border-radius: 10px;
}

/* clearfixが効かない環境に備えて保険 */
.ir-top__news-main .clearfix::after{
  content:"";
  display:block;
  clear:both;
}

/* SP：縦積み */
@media (max-width: 767px){
  .ir-top__news-main .clearfix > .mb-20{
    float: none !important;
    width: 100% !important;
  }
  .ir-top__news-main .clearfix > .mb-20 + .mb-20{
    margin-left: 0 !important;
  }
}


/* ===================================================================================================
   Add Parts 
=================================================================================================== */


/* =========================================
   Add Parts : Movie + Text (2 columns)
========================================= */

.ir-top__news-main .ir-add-movie{
  display: flex;
  gap: 30px;
  align-items: flex-start;
  margin: 0 0 30px;
}

/* 左：vcImgD相当（約50%） */
.ir-top__news-main .ir-add-movie__media{
  flex: 0 0 50%;
  max-width: 50%;
}

/* レスポンシブ動画（16:9） */
.ir-top__news-main .ir-add-movie__video{
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #F4FAEE; /* 読み込み中の面（不要なら消してOK） */
  border-radius: 10px;
  overflow: hidden;
}

.ir-top__news-main .ir-add-movie__video iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* 右 */
.ir-top__news-main .ir-add-movie__body{
  flex: 1 1 auto;
  min-width: 0;
}

/* 見出し系：既存パーツのトーンに寄せる */
.ir-top__news-main .ir-add-movie__title{
  margin: 0 0 6px;
  font-size: 25px;   /* 参考：大きめの見出し感 */
  line-height: 1.35;
  font-weight: 700;
  color: #52645A;
}

.ir-top__news-main .ir-add-movie__sub{
  margin: 0 0 14px;
  font-size: 20px;
  line-height: 1.6;
  font-weight: 700;
  color: #52645A;
}

.ir-top__news-main .ir-add-movie__text{
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.9;
}

/* ボタン余白（既存に合わせて） */
.ir-top__news-main .ir-add-movie .c-btn-wrap{
  margin-top: 18px;
}

/* SP：縦積み */
@media (max-width: 767px){
  .ir-top__news-main .ir-add-movie{
    display: block;
  }
  .ir-top__news-main .ir-add-movie__media{
    max-width: none;
    width: 100%;
    margin: 0 0 16px;
  }
}


/* =========================================
   Add Parts : Image + Text (same as movie layout)
   - image behavior similar to vcImgD (50% area, no overflow)
========================================= */

.ir-top__news-main .ir-add-media{
  display: flex;
  gap: 30px;
  align-items: flex-start;
  margin: 0 0 30px;
}

/* 左：vcImgD相当（約50%） */
.ir-top__news-main .ir-add-media__media{
  flex: 0 0 50%;
  max-width: 50%;
  overflow: hidden;
  border-radius: 10px;
  background: #F4FAEE; /* 面が欲しい時用（不要なら消してOK） */
}

.ir-top__news-main .ir-add-media__media img{
  display: block;
  width: 100%;
  height: auto;
}

/* 右 */
.ir-top__news-main .ir-add-media__body{
  flex: 1 1 auto;
  min-width: 0;
}

.ir-top__news-main .ir-add-media__title{
  margin: 0 0 6px;
  font-size: 25px;
  line-height: 1.35;
  font-weight: 700;
}

.ir-top__news-main .ir-add-media__sub{
  margin: 0 0 14px;
  font-size: 20px;
  line-height: 1.6;
  font-weight: 700;
}

.ir-top__news-main .ir-add-media__text{
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.9;
}

.ir-top__news-main .ir-add-media .c-btn-wrap{
  margin-top: 18px;
}

/* SP：縦積み（vcImgDのSP挙動と同等） */
@media (max-width: 767px){
  .ir-top__news-main .ir-add-media{
    display: block;
  }
  .ir-top__news-main .ir-add-media__media{
    max-width: none;
    width: 100%;
    margin: 0 0 16px;
  }
}

/* =========================================
   Add Parts : Image + Text (reverse)
   - keep typography same as ir-add-media
========================================= */

.ir-top__news-main .ir-add-media--rev{
  flex-direction: row-reverse;
}

/* gapは既存のままでOKだが、必要なら左右の“寄り”調整だけ */
/* SP：reverse版は「テキスト→画像」の順にする */
@media (max-width: 767px){
  .ir-top__news-main .ir-add-media--rev{
    display: flex;              /* block をやめる */
    flex-direction: column-reverse; /* body → media */
    gap: 16px;                  /* 縦の間隔（必要なら調整） */
  }

  /* 既存のSP用マージンが残ってる場合の保険 */
  .ir-top__news-main .ir-add-media--rev .ir-add-media__media{
    margin: 0;                  /* 元の margin-bottom を打ち消す */
    max-width: none;
    width: 100%;
  }
}

/* =========================================
   Add Parts : mini cards inside float columns
========================================= */

.ir-top__news-main .ir-mini-card__title{
  margin: 16px 0 10px;
  text-align: center;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  color: #2E3A20;
}

/* 文章の左右寄せはデザインに合わせて左寄せのまま */
.ir-top__news-main .clearfix > .mb-20 .vcP{
  margin: 0;
  line-height: 1.9;
}

/* ボタン中央寄せ（既存に無ければここで定義） */
.ir-top__news-main .c-btn-wrap.is-center{
  display: flex;
  justify-content: center;
  margin-top: 18px;
}

/* =========================================
   Add Parts : Menu Cards (no list version)
   based on ir-top__menu-card
========================================= */


.ir-top__cal-list {
	border-top: none!important;
}

.ir-top__news-main .ir-add-menu-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
margin-bottom: 40px;
}

/* カード本体：ドロップシャドー追加 */
.ir-top__news-main .ir-add-menu-card{
  position: relative;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

/* タイトル下のテキスト */
.ir-top__news-main .ir-add-menu-text{
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.9;
}

/* 右下の矢印 */
.ir-top__news-main .ir-add-menu-arrow{
  position: absolute;
  right: 16px;
  bottom: 16px;
  width: 14px;
  height: 14px;
  background: url("../img/arrow_01.png") no-repeat center / contain;
  opacity: .9;
}

/* hover時にほんのり反応（任意・他カードとトーン合わせ） */
.ir-top__news-main .ir-add-menu-card:hover{
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}

/* SP */
@media (max-width: 767px){
  .ir-top__news-main .ir-add-menu-grid{
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
/* =========================================
   Link Card : stretch link (force to card)
========================================= */

.ir-top__news-main .ir-add-menu-card{
  position: relative;
}

/* 既存CSSで a に position が付いている可能性があるので潰す */
.ir-top__news-main .ir-add-menu-card .ir-top__menu-title a{
  position: static !important;  /* ★重要：カード基準に戻す */
  display: inline;              /* ここは見た目維持（blockにしない） */
  color: inherit;
  text-decoration: none;
}
/* hover（任意） */
.ir-top__news-main .ir-add-menu-card:hover{
  cursor: pointer;
}

/* =========================================
   Lower FIX : ir-top__news-list (strong scope)
   scope: main.ir-lower
========================================= */

.ir-lower .ir-top__news-list{
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border-top: 1px solid rgba(60,96,28,.18);
		margin-bottom: 40px;
}

.ir-lower .ir-top__news-item{
  position: relative;
  display: grid !important;
  grid-template-columns: 110px 110px 1fr;
  column-gap: 18px;
  align-items: center;
  padding: 18px 34px 18px 0;
  border-bottom: 1px solid rgba(60,96,28,.18);
}

.ir-lower .ir-top__news-date{
  white-space: nowrap;
  font-weight: 700;
}

.ir-lower .ir-top__news-meta{
  display: flex !important;
  gap: 8px;
  flex-wrap: wrap;
}

.ir-lower .ir-top__news-title a{
  color: inherit;
  text-decoration: none;
}

.ir-lower .ir-top__news-item::after{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background: url("../img/arrow_01.png") no-repeat center / contain;
  opacity: .9;
  pointer-events: none;
}

@media (max-width: 767px){
  .ir-lower .ir-top__news-item{
    grid-template-columns: 1fr;
    row-gap: 8px;
    padding: 14px 28px 14px 0;
    align-items: start;
  }
}

/* =========================================
   Lower Parts : cal list inline (date + title in a row)
========================================= */

.ir-sidecard-grid3 {margin-bottom: 40px;}

.ir-top__cal-list--inline .ir-top__cal-item{
  display: flex;
  align-items: center;
  gap: 18px;
}

/* 日付列は固定幅にして揃える */
.ir-top__cal-list--inline .ir-top__cal-meta{
  flex: 0 0 110px;
}

/* タイトル側は伸びる（はみ出し防止） */
.ir-top__cal-list--inline .ir-top__cal-text{
  flex: 1 1 auto;
  min-width: 0;
  margin: 0; /* 既存でpにmarginがある場合の保険 */
}

/* SPでは縦積みに戻す（見やすさ優先） */
@media (max-width: 767px){
  .ir-top__cal-list--inline .ir-top__cal-item{
    display: block;
  }
  .ir-top__cal-list--inline .ir-top__cal-meta{
    margin-bottom: 6px;
  }
}

/* =========================================
   Side card derived : 3-column list (Z flow)
   - keep base look of .ir-top__side-card
========================================= */

.ir-sidecard-grid3 ul.ir-top__side-list { margin-bottom: 10px!important;}

.ir-top__news-main .ir-sidecard-grid3 .ir-top__side-list{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 40px;   /* スクショの列間っぽく */
  row-gap: 0;
  margin-top: 10px;
	margin-bottom: 40px;
}

/* 1セル（=li） */
.ir-top__news-main .ir-sidecard-grid3 .ir-top__side-item{
  border-bottom: 1px solid rgba(60,96,28,.18); /* 既存に合わせて薄く */
  padding: 14px 0;
}

/* 既存のliがflex等の場合の保険：中身が崩れないよう最小限 */
.ir-top__news-main .ir-sidecard-grid3 .ir-top__side-item-name{
  margin: 0;
}

/* 右端のPDFアイコン等が詰まる場合の保険（既存レイアウトを尊重） */
.ir-top__news-main .ir-sidecard-grid3 .ir-top__side-item{
  align-items: center;
}

/* SP：2列→1列 */
@media (max-width: 767px){
  .ir-top__news-main .ir-sidecard-grid3 .ir-top__side-list{
    grid-template-columns: repeat(2, 1fr);
    column-gap: 18px;
  }
}

@media (max-width: 480px){
  .ir-top__news-main .ir-sidecard-grid3 .ir-top__side-list{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px){
	.ir-top__side-head_br {
  display: block;
}
	
.ir-top__side-head_br .ir-top__side-download {
  margin: 0;
  text-align: right;
}
}

/* ===== FIX: 「一括ダウンロード」リンクをテキストのみにした場合の整形 ===== */
.ir-top__side-download{
  display: inline-flex;
  align-items: center;
  gap: 8px;              /* テキストとアイコンの間隔 */
  white-space: nowrap;   /* 折り返し防止 */
}

/* テキスト側：リンクはインラインのままでOK */
.ir-top__side-download-text a{
  text-decoration: none; /* 既存仕様に合わせる（必要なら） */
}

/* アイコンがズレる場合の保険（既に指定があれば不要） */
.ir-top__side-download-icon{
  display: inline-flex;
  align-items: center;
}
.ir-top__side-download-text a:hover + .ir-top__side-download-icon{
  opacity: .85;
}


/* =========================================
   Side card derived : Year list (horizontal)
========================================= */

.ir-top__news-main .ir-sidecard-year__list{
  display: flex;
  flex-wrap: wrap;          /* 横に増えて折り返し */
  gap: 18px 22px;           /* 縦 横 */
  margin: 14px 10px 10px;
  padding: 0;
  list-style: none;
}

/* 各年 */
.ir-top__news-main .ir-sidecard-year__item a{
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  color: #2E3A20;
  text-decoration: none;
  white-space: nowrap;
}

/* hover */
.ir-top__news-main .ir-sidecard-year__item a:hover{
  text-decoration: underline;
}

/* SP */
@media (max-width: 767px){
  .ir-top__news-main .ir-sidecard-year__list{
    gap: 14px 20px;
  }
}

.ir-top__news-main .ir-sec-title-center{
  position: relative;
  display: table;            /* ★親の text-align 影響を受けない */
  margin: 20px auto 40px;    /* ★中央寄せ */
  padding-bottom: 16px;
  font-size: 25px;
  line-height: 1.35;
  font-weight: 700;
  color: #2E3A20;
  text-align: center;
}

.ir-top__news-main .ir-sec-title-center::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;               /* ★文字幅 = 要素幅 */
  height: 4px;
  background: linear-gradient( 90deg, #E57F14 0, #E57F14 74px, #6EB92B 74px, #6EB92B 100% );
  pointer-events: none;
}

/* ir-1clmn の時だけ：中央タイトルを大きく */
.ir-1clmn .ir-sec-title-center{
  font-size: 35px;
}
@media (max-width: 767px){
  .ir-1clmn .ir-sec-title-center{
    font-size: 25px;
  }
}




/* =========================================
   vcH2 inside date (right aligned)
========================================= */

.ir-top__news-main .vcH2{
  display: flex;
  align-items: flex-end;      /* 文字の下端を揃える */
  justify-content: space-between;
  gap: 16px;
}

/* 日付 */
.ir-top__news-main .vcH2 .h2-date{
  margin-left: auto;          /* 右へ寄せる保険 */
  font-size: 15px;
  line-height: 1.4;
  font-weight: normal;
  color: #6B7664;
  white-space: nowrap;        /* 折り返さない */
}

/* タイトルが長い時に日付を押し出さない */
.ir-top__news-main .vcH2{
  min-width: 0;
	margin: 20px 0;
}

/* =========================================
   Parts : Accordion
========================================= */

.ir-top__news-main .ir-acc{
  margin: 0;
	margin-bottom: 40px;
}

.ir-top__news-main .ir-acc__item{
  border-top: 1px solid rgba(60,96,28,.18);
}

.ir-top__news-main .ir-acc__item:last-child{
  border-bottom: 1px solid rgba(60,96,28,.18);
}

/* クリック行 */
.ir-top__news-main .ir-acc__trigger{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: #2E3A20;
}

.ir-top__news-main .ir-acc__title{
  font-size: 18px;
  line-height: 1.6;
  font-weight: 700;
}

/* 右端矢印（arrow_06.png） */
.ir-top__news-main .ir-acc__icon{
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  background: url("../img/arrow_06.png") no-repeat center / contain;
  transition: transform .35s ease; /* 少しゆっくり */
}

/* 開いた状態：回転ではなく上下反転 */
.ir-top__news-main .ir-acc__item.is-open .ir-acc__icon{
  transform: scaleY(-1);
}

/* パネル：高さアニメーションのため */
.ir-top__news-main .ir-acc__panel{
  overflow: hidden;
  height: 0;
  transition: height .45s ease; /* ゆっくり開く */
  padding: 0; /* 開閉中はpaddingをcontent側に持たせる */
}

/* 中身側に余白（パネルのheightに含まれるのでOK） */
.ir-top__news-main .ir-acc__content{
  padding: 0 0 18px;
  font-size: 15px;
  line-height: 1.9;
  color: #2E3A20;
}

.ir-acc .ir-acc__item {
  border-top: none!important;
	border-bottom: 1px solid rgba(60,96,28,.18);
}

.ir-acc__trigger:hover {color: #ed6d34 !important}




/* =========================================
   Tabs 5 (radio+label) - underline only
   - active: green underline 4px + ▼
   - inactive: underline 4px (transparent)
   - no vertical borders, 1px gap between tabs
========================================= */

.ir-top__news-main.ir-tab5{
  position: relative;
}

/* radioは見えないように */
.ir-top__news-main.ir-tab5 input[type="radio"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* タブ列 */
.ir-top__news-main.ir-tab5 .ir-tab5__tabs{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  column-gap: 1px;                 /* タブ間の隙間 */
  border-bottom: 9px solid #D6D6D6; /* 全体の薄い下線（ベース） */
}

/* タブ */
.ir-top__news-main.ir-tab5 .ir-tab5__tabs label{
  position: relative;
  padding: 16px 10px;
  text-align: center;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 700;
  color: #8C8C8C;
  cursor: pointer;

  /* 縦ボーダー無し */
  border-right: 0;

  /* 非アクティブも太さ4px（色は透明） */
  border-bottom: 9px solid transparent;

  /* 親のborder-bottom(2px)と重ねるため少し下に重ねる */
  margin-bottom: -9px;
}

/* hover（任意：文字だけ少し濃く） */
.ir-top__news-main.ir-tab5 .ir-tab5__tabs label:hover{
  color: #2E3A20;
}

/* ---------------------------------------------------------
   ▼（下向き）はアクティブ時だけ表示
--------------------------------------------------------- */
.ir-top__news-main.ir-tab5 .ir-tab5__tabs label::before{
  content: none;
	bottom: -17px!important;
}

/* 以前の::after(緑バー)はこのモジュールでは使わない */
.ir-top__news-main.ir-tab5 .ir-tab5__tabs label::after{
  content: none !important;
}

/* ---------------------------------------------------------
   Active styles
--------------------------------------------------------- */
.ir-top__news-main.ir-tab5 #ir-tab-all:checked ~ .ir-tab5__tabs label[for="ir-tab-all"],
.ir-top__news-main.ir-tab5 #ir-tab-kessan:checked ~ .ir-tab5__tabs label[for="ir-tab-kessan"],
.ir-top__news-main.ir-tab5 #ir-tab-sokai:checked ~ .ir-tab5__tabs label[for="ir-tab-sokai"],
.ir-top__news-main.ir-tab5 #ir-tab-release:checked ~ .ir-tab5__tabs label[for="ir-tab-release"],
.ir-top__news-main.ir-tab5 #ir-tab-info:checked ~ .ir-tab5__tabs label[for="ir-tab-info"]{
  color: #2E3A20;
  border-bottom-color: #6EB92B; /* アクティブ下線（緑） */
}

/* ▼（緑） */
.ir-top__news-main.ir-tab5 #ir-tab-all:checked ~ .ir-tab5__tabs label[for="ir-tab-all"]::before,
.ir-top__news-main.ir-tab5 #ir-tab-kessan:checked ~ .ir-tab5__tabs label[for="ir-tab-kessan"]::before,
.ir-top__news-main.ir-tab5 #ir-tab-sokai:checked ~ .ir-tab5__tabs label[for="ir-tab-sokai"]::before,
.ir-top__news-main.ir-tab5 #ir-tab-release:checked ~ .ir-tab5__tabs label[for="ir-tab-release"]::before,
.ir-top__news-main.ir-tab5 #ir-tab-info:checked ~ .ir-tab5__tabs label[for="ir-tab-info"]::before{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px; /* ▼の位置（必要なら微調整） */
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #6EB92B;
}

/* ---------------------------------------------------------
   Panels switching
--------------------------------------------------------- */
.ir-top__news-main.ir-tab5 .ir-top__news-panels .ir-top__news-panel{
  display: none;
}

.ir-top__news-main.ir-tab5 #ir-tab-all:checked ~ .ir-top__news-panels .ir-top__news-panel--all{
  display: block;
}
.ir-top__news-main.ir-tab5 #ir-tab-kessan:checked ~ .ir-top__news-panels .ir-top__news-panel--kessan{
  display: block;
}
.ir-top__news-main.ir-tab5 #ir-tab-sokai:checked ~ .ir-top__news-panels .ir-top__news-panel--sokai{
  display: block;
}
.ir-top__news-main.ir-tab5 #ir-tab-release:checked ~ .ir-top__news-panels .ir-top__news-panel--release{
  display: block;
}
.ir-top__news-main.ir-tab5 #ir-tab-info:checked ~ .ir-top__news-panels .ir-top__news-panel--info{
  display: block;
}

/* ---------------------------------------------------------
   Optional: SP調整（必要なら）
--------------------------------------------------------- */

@media (max-width: 767px){
  .ir-top__news-main.ir-tab5 .ir-tab5__tabs label{
    font-size: 14px;
    padding: 14px 6px;
  }
  .ir-top__news-main.ir-tab5 #ir-tab-all:checked ~ .ir-tab5__tabs label[for="ir-tab-all"]::before,
  .ir-top__news-main.ir-tab5 #ir-tab-kessan:checked ~ .ir-tab5__tabs label[for="ir-tab-kessan"]::before,
  .ir-top__news-main.ir-tab5 #ir-tab-sokai:checked ~ .ir-tab5__tabs label[for="ir-tab-sokai"]::before,
  .ir-top__news-main.ir-tab5 #ir-tab-release:checked ~ .ir-tab5__tabs label[for="ir-tab-release"]::before,
  .ir-top__news-main.ir-tab5 #ir-tab-info:checked ~ .ir-tab5__tabs label[for="ir-tab-info"]::before{
    bottom: -9px;
    border-left-width: 7px;
    border-right-width: 7px;
    border-top-width: 7px;
  }
	.ir-top__news-main.ir-tab5 .ir-tab5__tabs label::before {
  bottom: -16px !important;
}
}


/* =========================================
   Parts : Table (generic)
   - SPは横スクロール
   - デザイン：添付準拠
========================================= */

.ir-top__news-main .ir-table-wrap{
  margin: 20px 0 30px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ir-top__news-main .ir-table{
  width: 100%;
  min-width: 920px; /* SPで横スクロールさせるため */
  border: 1px solid #3C601C;
  border-radius: 8px;
  border-collapse: separate; /* 角丸を効かせる */
  border-spacing: 0;
  overflow: hidden; /* 角丸用 */
  background: #FFF;
  font-size: 13px;
  color: #617168;
}

.ir-top__news-main .ir-table th,
.ir-top__news-main .ir-table td{
  padding: 12px 14px;
  border-right: 1px solid #3C601C;
  border-bottom: 1px solid #3C601C;
  vertical-align: middle;
  background: #FFF;
}

.ir-top__news-main .ir-table tr > *:last-child{
  border-right: 0;
}

.ir-top__news-main .ir-table tbody tr:last-child > *{
  border-bottom: 0;
}

/* 見出し行（thead）は緑背景 */
.ir-top__news-main .ir-table thead th{
  background: #3C601C;
  color: #FFF;
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}

/* 行見出し（tbodyのth）は白背景のまま */
.ir-top__news-main .ir-table tbody th{
  font-weight: 700;
  background: #FFF;
  color: #617168;
  text-align: center; /* 添付に寄せ（必要ならleftに変更OK） */
  white-space: nowrap;
}

/* 右寄せ/中央寄せのユーティリティ（必要に応じてHTMLで使う） */
.ir-top__news-main .ir-table .is-right{ text-align: right; }
.ir-top__news-main .ir-table .is-center{ text-align: center; }
/* rowspan 見出しセルの下線を重ねない（1pxに統一） */
.ir-top__news-main .ir-table tbody th[rowspan]{
  border-bottom: 0;
}
/* ===== Table responsive control ===== */

/* PC（横スクロールさせない） */
@media screen and (min-width: 769px) {
  .ir-table-wrap {
    overflow-x: visible;
  }

  .ir-table {
    width: 100%;
    table-layout: fixed;
  }
}

/* SP（横スクロール） */
@media screen and (max-width: 768px) {
  .ir-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .ir-table {
    min-width: 900px; /* 列数に応じて調整可 */
  }
}

.ta_right {text-align: right; margin-bottom: 5px;}


/* =========================================
   Parts : Table (Scrollable / Wide)
   使い方：.ir-table-wrap に is-scroll を付けた時だけ横スクロール化
========================================= */

.ir-table-wrap.is-scroll{
  overflow-x: scroll; /* 常にスクロールバーを出す */
  overflow-y: hidden;
  scrollbar-gutter: stable both-edges; /* スクロールバー分の余白を常に確保（対応ブラウザのみ） */
  padding-bottom: 6px; /* bar が潰れない保険 */
	padding-right: 30px;
}
.ir-table-wrap.is-scroll p {margin-right: -30px;}

/* 横スクロール時は「中身幅＝内容に合わせる」 */
.ir-table-wrap.is-scroll .ir-table{
  width: max-content;   /* 内容幅に広がる */
  min-width: 1200px;    /* ある程度の広さを確保（必要なら数値は調整OK） */
}

/* 左列（行見出し）が文字数に合わせて広がるように */
.ir-table-wrap.is-scroll .ir-table tbody th{
  white-space: nowrap;  /* 折り返し防止 */
  /*min-width: 260px;      行見出しの最低幅（必要なら調整OK） */
}

/* iOS等の慣性スクロール（任意） */
.ir-table-wrap.is-scroll{
  -webkit-overflow-scrolling: touch;
}
/* 横スクロールテーブル時：左見出しは左寄せ */
.ir-table-wrap.is-scroll .ir-table tbody th{
  text-align: left;
}
.ir-table th {
  position: relative;
}

.ir-table .ir-table-unit {
  float: right;
  font-weight: normal;
  white-space: nowrap;
}

/* 配当テーブル限定：左の見出し列だけ広げる */
.ir-table.ir-table--dividend{
  table-layout: fixed; /* colgroup幅を確実に効かせる */
}

.ir-table.ir-table--dividend col.col-th{
  width: 24%; /* ←ここを少しずつ調整（例：22〜28%） */
}

/* 残りは均等（span=6分） */
.ir-table.ir-table--dividend col.col-td{
  width: calc((100% - 40%) / 6);
}

/* =========================================================
   SP：ir-table を“ページを広げず”に横スクロール（リキッド対応）
   - wrapper が必ず中に閉じ込める
   - table は「min-width:100%」＋「必要なら中でだけ横に伸びる」
========================================================= */
@media (max-width: 767px){

  /* 横溢れの元を潰す（is-scrollの右余白＆負マージン） */
  .ir-table-wrap.is-scroll{
    padding-right: 0 !important;
  }
  .ir-table-wrap.is-scroll p{
    margin-right: 0 !important;
  }

  /* wrapper：ここが“ページを広げない”肝 */
  .ir-table-wrap{
    display: block;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
  }

  /* table：コンテナより狭いなら100%／広いなら中でだけ伸びる */
  .ir-table-wrap .ir-table{
    width: max-content !important; /* 内容に応じて伸びる */
    min-width: 100% !important;    /* ただし最低でも枠幅は埋める */
    table-layout: auto !important; /* 固定レイアウト由来の崩れ防止 */
  }

  /* 見出しや行見出しの折り返し抑制（必要なら数値調整） */
  .ir-table-wrap .ir-table thead th,
  .ir-table-wrap .ir-table tbody th{
    white-space: nowrap;
  }
}

/* =========================================================
   ir-table-wrap が内容幅に引っ張られてレイアウトを崩す対策
   - Grid/Flex の「min-width:auto問題」を潰してリキッド化
========================================================= */

/* 1) テーブルを抱える“親”を縮められるようにする（重要） */
.ir-top__news-inner,
.ir-top__news-main,
.ir-top__news-main *{
  min-width: 0;
}

/* 2) ラッパー自体は必ずリキッド（親幅に追従） */
.ir-table-wrap{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 3) SP時：横スクロールは wrap の中だけで完結させる */
@media (max-width: 767px){
  .ir-table-wrap{
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  /* テーブルは必要なら中でだけ広がる（ページは広げない） */
  .ir-table-wrap .ir-table{
    min-width: 100%;
    width: max-content;
  }
}





/* ===== KPI（3列 / Z型ジグザグ / SPは2列） ===== */
.ir-kpi {
  padding: 24px 0 8px;
}

.ir-kpi__asof {
  margin: 0 0 18px;
  font-size: 14px;
  color: #6b6b6b;
  font-weight: 700;
}

.ir-kpi__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 38px 40px; /* 行/列 */
  align-items: start;
}

.ir-kpi__item {
  text-align: center;
}

.ir-kpi__label {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.45;
  color: #333;
  font-weight: 700;
}

.ir-kpi__value {
  margin: 0;
  line-height: 1;
  white-space: nowrap;
}

.ir-kpi__num {
  font-size: 56px;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #e7772c;
}

.ir-kpi__unit {
  margin-left: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #333;
}

.ir-kpi__prefix {
  margin-right: 6px;
  font-size: 14px;
  font-weight: 700;
  color: #333;
  vertical-align: baseline;
}

.ir-kpi__note {
  margin: 10px 0 0;
  font-size: 12px;
  font-weight: 700;
  color: #6b6b6b;
}

/* 2行表示用（育休取得率） */
.ir-kpi__value--stack {
  display: inline-flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.ir-kpi__row {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.ir-kpi__sub {
  font-size: 12px;
  font-weight: 700;
  color: #333;
}

/* ===== Z型（PC：3列）=====
   2行単位で「下がる→上がる」を繰り返してZの流れを作る */
.ir-kpi__item:nth-child(6n + 1) { transform: translateY(0); }
.ir-kpi__item:nth-child(6n + 2) { transform: translateY(14px); }
.ir-kpi__item:nth-child(6n + 3) { transform: translateY(28px); }
.ir-kpi__item:nth-child(6n + 4) { transform: translateY(28px); }
.ir-kpi__item:nth-child(6n + 5) { transform: translateY(14px); }
.ir-kpi__item:nth-child(6n)     { transform: translateY(0); }

/* ===== SP：2列 ===== */
@media (max-width: 767px) {
  .ir-kpi__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 18px;
  }

  .ir-kpi__num { font-size: 44px; }

  /* SP用のZ（2列）に調整：交互に上下 */
  .ir-kpi__item { transform: none; }
  .ir-kpi__item:nth-child(4n + 1) { transform: translateY(0); }
  .ir-kpi__item:nth-child(4n + 2) { transform: translateY(12px); }
  .ir-kpi__item:nth-child(4n + 3) { transform: translateY(12px); }
  .ir-kpi__item:nth-child(4n)     { transform: translateY(0); }

  .ir-kpi__label { font-size: 13px; }
}

/* ===== KPI：上揃え固定（Z型段差を無効化） ===== */
.ir-kpi__grid {
  align-items: start;
}

.ir-kpi__item {
  transform: none !important;
}
/* =========================================================
   cmsSec-A-2：画像 3 / テキスト 7（左右両対応）
   - パターンA：img + p（vcImgD + p.vc）…画像左
   - パターンB：p内にimg（p.vcP > img.vcImgE）…画像右
   ※既存の width:50% 等を想定して必要最小限 !important で上書き
========================================================= */

/* ===== パターンA：画像左（.vcImgD + p.vc） ===== */
.cmsSec-A-2 .vcImgD{
  float: left;
  width: 30%;
  max-width: 30%;
  height: auto;
  margin: 0 10px 10px 0;
  display: block;
}

.cmsSec-A-2 p.vc{
  float: left;
  width: calc(70% - 10px);
  max-width: none;
  margin: 0;
}

/* ===== パターンB：画像右（p内にimg：.vcP > .vcImgE） ===== */
/* 既存で p が 50% などになっているケースを潰して、pを70%に固定 */
.cmsSec-A-2 .vcP{
  float: left !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box;
}

/* img は右へ 30% */
.cmsSec-A-2 .vcP .vcImgE{
  float: right !important;
  width: 30% !important;
  max-width: 30% !important;
  height: auto !important;
  margin: 0 0 10px 10px !important;
  display: block;
}

/* ===== SP：縦積み（共通） ===== */
@media (max-width: 767px){
  /* パターンA */
  .cmsSec-A-2 .vcImgD,
  .cmsSec-A-2 p.vc{
    float: none;
    width: 100%;
    max-width: none;
  }

  .cmsSec-A-2 .vcImgD{
    margin: 0 0 10px 0;
  }

  /* パターンB */
  .cmsSec-A-2 .vcP{
    float: none !important;
    width: 100% !important;
  }

  .cmsSec-A-2 .vcP .vcImgE{
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 10px 0 !important;
  }
}

/* =========================================================
   ミニカード（ir-top__investor-cards 準拠 / 2列）
   - 画像高さを固定して object-fit: cover
   - カードは flex で高さ揃え（ボタンを下に寄せる）
========================================================= */

/* 2列グリッド */
.ir-mini-cards{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

/* 既存の float/width/余白ユーティリティを無効化して“カード”にする */
.ir-mini-cards > div{
  float: none !important;
  width: auto !important;

  /* 既存の ml-30 / mr-30 / mb-20 などの影響を消して grid に任せる */
  margin: 0 !important;

  display: flex;
  flex-direction: column;
  height: 100%;
}

/* ===== 画像ズーム（hover）対応 ===== */
.ir-mini-cards__media{
  border-radius: 18px;
  overflow: hidden;
}

/* 画像サイズ統一（高さは前と同じ場所で調整） */
.ir-mini-cards__media img.ro{
  width: 100%;
  height: 340px;            /* ←ここで高さ調整 */
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform .35s ease;
}

/* hoverでズーム（PC想定） */
@media (hover:hover) and (pointer:fine){
  .ir-mini-cards > div:hover .ir-mini-cards__media img.ro{
    transform: scale(1.06);
  }
}

/* SP */
@media (max-width: 767px){
  .ir-mini-cards__media img.ro{
    height: 220px;          /* ←SPの高さ */
  }
}

/* タイトル/本文 */
.ir-mini-cards .ir-mini-card__title{
  margin: 16px 0 8px;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.ir-mini-cards .vcP{
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  color: #617168;
}

/* ボタンをカード下に揃える */
.ir-mini-cards .c-btn-wrap{
  margin-top: auto;
  padding-top: 16px;
}
/* ir-mini-cards 内：c-btn の上余白をゼロ */
.ir-mini-cards .c-btn{
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* ir-mini-cards 内：ボタンwrapの余白をゼロ（autoも解除） */
.ir-mini-cards .c-btn-wrap{
  margin-top: 20px !important; 
  padding-top: 0 !important;
}
/* SP：1列にする（必要なら2列のままにも変更可） */
@media (max-width: 767px){
  .ir-mini-cards{
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ir-mini-cards img.ro{
    height: 180px;
  }
}

.ta-left {text-align: left!important;}
.ta-right {text-align: right!important;}

