/* =========================================================
   IR Header (PC)
   - vibit CMS rule: no class on <a>
   - coexist with parts.css (scoped)
========================================================= */

/* =========================================================
   Header fixed (PC)
========================================================= */

/* ヘッダーを常に上部固定＆最前面 */
.ir-top .ir-hd{
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 9999; /* 他要素より必ず上に */
  background: #fff; /* 透け防止（必要なら） */
}

.ir-top{
  padding-top: 104px;
	font-size: 15px;
  color: #617168;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.6;
}


.ir-top .ir-hd::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  pointer-events:none;

  /* 中央1280pxを基準にした“なめらか復帰” */
  background: linear-gradient(
    90deg,
    #375D16 0%,
    #6EB92B calc(50% - 340px),
    #6EB92B calc(50% + 340px),
    #375D16 100%
  );
}

.ir-top .ir-hd__inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}

.ir-top .ir-hd__top{
  background: linear-gradient(
    90deg,
    #E5E5E5 0%,
    #ffffff calc(50% - 640px),
    #ffffff calc(50% + 640px),
    #E5E5E5 100%
  );
  border-bottom: 1px solid #e6e6e6;
}


.ir-top .ir-hd__top .ir-hd__inner{
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.ir-top .ir-hd__brand{
  display: flex;
  align-items: center;
  gap: 14px;
}

.ir-top .ir-hd__brand img{
  display: block;
  height: 26px;
  width: auto;
}

.ir-top .ir-hd__utility-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

.ir-top .ir-hd__utility-item a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #2a2a2a;
  white-space: nowrap;
}

/* ユーティリティアイコン：CSS描画ではなく画像を表示 */
.ir-top .ir-hd__utility-icon{
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: url("../img/icon_info_01.png") center / contain no-repeat;
  border: 0;
  border-radius: 0;
  position: relative;
  box-sizing: border-box;
}

.ir-top .ir-hd__utility-icon::before,
.ir-top .ir-hd__utility-icon::after{
  content: none;
}


/* 帯そのものを 52px 固定 */
.ir-top .ir-hd__bar{
  height: 52px;
  background-color: #375D16;
  background-image: url("../img/bg_gnav.jpg");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: auto;

  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.16);
}

/* 中身の行も 52px に合わせる */
.ir-top .ir-hd__inner--bar{
  height: 52px;
}


.ir-top .ir-hd__inner--bar{
  height: 56px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.ir-hd__irbrand {margin-top: -6px;}
.ir-top .ir-hd__irbrand a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  white-space: nowrap;
}

.ir-top .ir-hd__irbrand-mark img{
  width: 22px;
  height: 20px;
}

.ir-top .ir-hd__global{
  flex: 1;
  min-width: 0;
	margin-top: -6px;
}

.ir-top .ir-hd__global-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end; /* ← 右寄せ */
  gap: 18px;
}

.ir-top .ir-hd__global-item a{
  display: inline-block;
  text-decoration: none;
  color: #ffffff;
  font-weight: 500;
  line-height: 1;
  padding: 6px 0;
  white-space: nowrap;
}

.ir-top .ir-hd__global-item.is-current a{
  font-weight: 800;
}
.ir-hd__lang {margin-top: -5px;}
.ir-top .ir-hd__lang a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 12px;
  text-decoration: none;
  color: #fff;
  background: #3C601C;
  white-space: nowrap;
}

/* 言語アイコン：CSS描画ではなく画像を表示 */
.ir-top .ir-hd__lang-icon{
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: url("../img/icon_lang_01.png") center / contain no-repeat;
  border: 0;
  border-radius: 0;
  position: relative;
  box-sizing: border-box;
}

.ir-top .ir-hd__lang-icon::before,
.ir-top .ir-hd__lang-icon::after{
  content: none;
}



.ir-top img {
  display: block;
  width: 100%;
  height: auto;
}

.ir-top__hero {
  background: linear-gradient(180deg, #4f7f1b 0%, #3d6412 100%);
  padding: 40px 0 0;
}

.ir-top__hero-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 24px;
  align-items: end;
}

.ir-top__hero-text {
  color: #fff;
  padding: 20px 0 40px;
}

.ir-top__hero-sub {
  letter-spacing: 0.2em;
  margin: 0 0 12px;
}

.ir-top__hero-title {
  font-size: 42px;
  margin: 0;
  font-weight: 700;
}

.ir-top__hero-image {
  border-radius: 16px 16px 0 0;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
}

.ir-top__pickup {
  padding: 20px 0 30px;
	z-index: 9;
  position: relative;
}

.ir-top__pickup-inner {
  max-width: 1220px;
  margin: 0 auto;
  background-color: #F4FAEE;
  border-radius: 24px;
  display: flex;
  align-items: center;
  padding: 18px 30px;
  gap: 24px;
}

.ir-top__pickup-label{
  font-weight: 700;
  color: #ef8c1b;
  font-size: 20px;
  letter-spacing: 0.1em;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ir-top__pickup-label::before{
  content: "";
  width: 18px;
  height: 18px;
  background: url("../img/icon_pickup.png") center/contain no-repeat;
  flex: none;
}
.ir-top__pickup-label{
  font-weight: 700;
  color: #ef8c1b;
  font-size: 20px;
  letter-spacing: 0.1em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-right: 35px;
}
.ir-top__pickup-list{
  list-style: none;
  margin: 0;

  border-left: 1px solid #D7EDC5; /* ← 縦線（リスト高さに自動追従） */
  padding: 12px 0 2px 45px;       /* ← 左だけ45px（線から文字まで） */

  display: grid;
  gap: 6px;
}


.ir-top__pickup-item{
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding-right: 46px; /* 矢印分の余白 */
	margin-bottom: 10px;
	font-weight: bold;
	font-size: 16px;
}

/* 変更：リンクがある時だけ矢印を出す */
.ir-top__pickup-item::after{
  content: none;
}

.ir-top__pickup-item.has-link::after{
  content: "";
  position: absolute;
  right: 0px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  opacity: 1;
  pointer-events: none;
  background: url(../img/arrow_01.png) center center / contain no-repeat;
}

.ir-top__pickup-item a {text-decoration: none;}


.ir-top__pickup-date {
  font-weight: 700;
  min-width: 110px;
}

/* PICK UP：右端まで伸ばす（テキスト量で幅が変わらないように） */
.ir-top__pickup-inner .ir-top__pickup-list{
  flex: 1 1 auto;
  min-width: 0;        /* これが無いと中身で縮まらず崩れることがある */
  width: auto;
}




.ir-top__cards {
  padding: 10px 0 40px;
		z-index: 9;
  position: relative;
}

.ir-top__cards-inner{
  width: min(1280px, 100%);
  margin: 0 auto;
  padding: 0 20px;
  display: block; /* ← 重要：親をgridにしない */
}


.ir-top__card {
  background-color: #fff;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
}

.ir-top__card--large {
  grid-row: span 2;
}

.ir-top__card-image {
  height: 100%;
}

.ir-top__card-title {
  position: absolute;
  bottom: 12px;
  left: 12px;
  margin: 0;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.55);
  padding: 6px 12px;
  border-radius: 999px;
}

.ir-top__card a {
  position: absolute;
  inset: 0;
}

.ir-top__news {
  padding: 20px 0 50px;
}

.ir-top__news-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 305px; /* ← 右を305px固定、左は残り全部 */
  gap: 30px;
align-items: start; /* ← これで右カラムが伸びなくなる（空白が消える） */
}


.ir-top__section-heading {
  text-align: center;
  margin-bottom: 20px;
}

.ir-top__section-title{
  position: relative;
  display: inline-block;  /* テキスト幅に合わせる */
  padding-bottom: 10px;   /* 下線との間隔（必要なら調整） */
	font-size: 32px;
	font-weight: 700;
	margin: 78px 0 66px;
}

.ir-top__section-title::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-top__news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 2px solid #d9e5b8;
}

.ir-top__news-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 10px;
  border-bottom: 1px solid #d9e5b8;
  background-color: rgba(255, 255, 255, 0.65);
}

.ir-top__news-date {
  font-weight: 700;
  color: #4f7f1b;
  width: 95px;
  flex: none;
}

.ir-top__news-category {
  background-color: #4f7f1b;
  color: #fff;
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 999px;
  flex: none;
}

.ir-top__news-category--yellow {
  background-color: #e8b500;
}

.ir-top__news-category--orange {
  background-color: #ef8c1b;
}

.ir-top__news-item a {
  position: absolute;
  inset: 0;
}

.ir-top__news-button {
  margin-top: 20px;
  text-align: right;
}

.ir-top__news-button a {
  display: inline-block;
  padding: 10px 24px;
  background-color: #4f7f1b;
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
}

.ir-top__news-side {
  display: grid;
  gap: 20px;
}

/* =========================
   Side card（最新IR資料）
========================= */
.ir-top__side-card{
  background: #F4FAEE;
  border-radius: 24px;
  padding: 26px 20px 24px;
	/*margin-bottom: 40px;*/
}

section.ir-lower__2col .ir-top__side-card{
  margin-bottom: 40px;
}

/* 下層2カラム：右カラム(ir-top__news-side)のside-cardだけ、下マージンを消す */
section.ir-lower__2col .ir-top__news-side .ir-top__side-card{
  margin-bottom: 0;
}

.ir-top__side-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 2px solid #d7d7d7;
  margin-bottom: 18px;
}

.ir-top__side-heading{
  margin: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 20px;
  font-weight: 700;
  color: #617168;
}

.ir-top__side-heading::before{
  content:"";
  width: 12px;
  height: 12px;
  border: 3px solid #EF8200;
  border-radius: 50%;
  box-sizing: border-box;
  flex: none;
}

/* ===== FIX: 右カラム「最新IR資料」を1行固定 ===== */
.ir-top__side-heading{
  white-space: nowrap;
}

/* ついでに：ダウンロード側は縮まないように固定 */
.ir-top__side-download{
  flex: 0 0 auto;
}


.ir-top__side-download{
  margin: 0;
}

.ir-top__side-download a{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #EF8200;
  font-size: 12px;
}

.ir-top__side-download-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  flex: none;
}

.ir-top__side-download-icon img{
  display: block;
  width: 22px;
  height: auto;
}

/* 「一括ダウンロード」テキスト＋アイコンを上下中央揃え（a と img が別要素のため） */
.ir-top__side-download{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  white-space: nowrap;
}

/* 既存の a の inline-flex は不要なので通常のinlineに戻す（ズレ防止） */
.ir-top__side-download a{
  display: inline;
  align-items: initial;
  gap: 0;
}

/* アイコン側（imgのベースラインズレを防ぐ） */
.ir-top__side-download-icon{
  display: inline-flex;
  align-items: center;
}

.ir-top__side-download-icon img{
  display: block;      /* baselineズレを消す */
  width: 22px;
  height: auto;
}

.ir-top__side-term{
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.ir-top__side-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.ir-top__side-item{
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 2px solid #d7d7d7;
}

/* タイトル（リンク） */
.ir-top__side-item-name{
  margin: 0;
  flex: 1;
  min-width: 0;
  line-height: 1.4;
}

.ir-top__side-item-name a{
  color: inherit;
  text-decoration: none;
}

/* a は p の中に入れつつ、クリック範囲は li 全体に拡張 */
.ir-top__side-item-name a::after{
  content:"";
  position: absolute;
  inset: 0;
  cursor: pointer;
}

/* サイズ＆PDFは表示だけ（クリック判定は li 全体＝a::after に委譲） */
.ir-top__side-item-size{
  flex: none;
  pointer-events: none;
}

/* ファイル種別アイコン（JSで class を付け替える） */
.ir-top__side-item-file{
  flex: none;
  pointer-events: none;
  display: inline-block;
  width: 22px;
  height: 22px;
  background: url("../img/icon_files/etc.png") no-repeat center / contain;
}

/* 種別ごとの画像 */
.ir-top__side-item-pdf{  background-image: url("../img/icon_files/PDF.png"); }
.ir-top__side-item-xlsx{ background-image: url("../img/icon_files/XLSX.png"); }
.ir-top__side-item-doc{  background-image: url("../img/icon_files/DOC.png"); }
.ir-top__side-item-txt{  background-image: url("../img/icon_files/TXT.png"); }
.ir-top__side-item-html{ background-image: url("../img/icon_files/HTML_2.png"); }
.ir-top__side-item-etc{  background-image: url("../img/icon_files/etc.png"); }

/* サイズ：空なら消す（JSでも念押しします） */
.ir-top__side-item-size:empty{
  display: none;
}



/* =========================
   ir-top__side-banner
   ========================= */

.ir-top__side-banner {
  position: relative;
}

/* 既存の .ir-card をここだけバナー用に整える（side-card等には触れない） */
.ir-top__side-banner .ir-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}

/* 画像エリア */
.ir-top__side-banner .ir-card__media {
  margin: 0;
  position: relative;
  /* 高さを揃えたい場合は aspect-ratio を使う（不要なら削除OK） */
  aspect-ratio: 305 / 150;
}

/* a は img を包むだけ。ただしクリック範囲はCSSでカード全体へ */
.ir-top__side-banner .ir-card__media a {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 1;
}

/* img は全面フィット */
/* =========================
   ir-top__side-banner：figureをカード全面に
========================= */
.ir-top__side-banner .ir-card{
  position: relative;
  overflow: hidden;
}

/* figure を article に対して全面化 */
.ir-top__side-banner .ir-card__media{
  position: absolute;
  inset: 0;
  margin: 0;
}

/* a も全面化（imgクリック＝全体クリック） */
.ir-top__side-banner .ir-card__media a{
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center; /* 横はみ出し前提なので中央寄せ */
  align-items: stretch;    /* 高さ優先 */
}

.ir-top__side-banner .ir-card__media img{
  width: 100%;
  height: 100%;
  object-fit: cover; /* 枠にフィットしつつ、足りない分はトリミング */
  display: block;
}


/* label は前面に */
.ir-top__side-banner .ir-card__label{
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
  pointer-events: none;
}

/* ラベルは前に作った card 方式を流用（右下配置） */
.ir-top__side-banner .ir-card__label {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;

  /* ラベルがクリックを邪魔しないようにする（全体クリック維持） */
  pointer-events: none;
}


.ir-top__menu {
  padding: 40px 0 120px;
  background: #F4FAEE;
}
/* ir-1clmn 内：ir-top__menu の下余白を80px */
.ir-1clmn .ir-top__menu{
  margin-bottom: 80px !important;
}

.ir-top__menu-inner {
  max-width: 1280px;
  margin: 0 auto;
}
/* ir-1clmn 内：ir-top__menu-inner の上余白を40px */
.ir-1clmn .ir-top__menu-inner{
  margin-top: 40px !important;
}

.ir-top__menu-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.ir-top__menu-card {
  background-color: #fff;
  border-radius: 16px;
  padding: 35px 18px 55px;
  position: relative;
text-align: center;
}

.ir-top__menu-icon{
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 20px;
}

/* アイコン画像は縮めたり伸ばしたりしない */
.ir-top__menu-icon img{
  display: block;
  width: auto;
  height: auto;
  max-width: none;
  max-height: 52px; /* 必要なら調整 */
  flex: none;
}


.ir-top__menu-title{
  position: relative;
  display: inline-block;
  padding-left: 22px; /* 丸(12px) + 余白 */
  font-size: 20px;
  font-weight: 700;
  color: #617168;
  line-height: 1.2;
  margin: 0 auto 10px;  /* ← これ */
  text-align: left;     /* ← 文字は自然に左（丸との並び用） */
}


.ir-top__menu-list{
  list-style: none;
  margin: 12px 0 0;
  padding: 0 50px;      /* ← 左右50px（marginじゃなくpadding） */
  display: grid;
  gap: 8px;
}


.ir-top__menu-list a{
  position: relative;
  display: block;       /* ← 横幅100%の行にする */
  width: 100%;          /* ← 念のため */
  padding-right: 28px;  /* ← 矢印分の余白 */
  color: #617168;
  text-decoration: none;
  line-height: 1.4;
}


.ir-top__menu-list a::after{
  content:"";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background: url("../img/arrow_01.png") no-repeat center / contain;
  pointer-events: none;
  opacity: .8;
}


/* li内a：class付けずに装飾 */
.ir-top__menu-list a{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #617168;
  text-decoration: none;
  line-height: 1.4;
}

/* ir-top__menu-title：見出し体裁 */
.ir-top__menu-title{
  position: relative;
  display: inline-block;
  padding-left: 22px; /* 丸(12px) + 余白 */
  font-size: 18px;
  font-weight: 700;
  color: #617168;
  line-height: 1.2;
  margin: 0 0 10px;
}

.ir-top__menu-title::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border: 3px solid #EF8200;
  border-radius: 999px;
  background: transparent;
  box-sizing: border-box;
}




.ir-top__menu-card > a{
  position: absolute;
  inset: 0;
}

.ir-top__investor {
  padding: 60px 0 80px;
  background: url("../img/investor-bg.jpg") center/cover no-repeat;
  color: #fff;
}

.ir-top__investor-inner {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
	position: relative;
	z-index: 3;
}

.ir-top__investor-title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
}

.ir-top__investor-text {
  margin: 10px auto 30px;
  max-width: 720px;
  opacity: 0.95;
}

.ir-top__investor-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 26px;
}

.ir-top__investor-card {
  border-radius: 16px 16px 0 16px; /* 左上 右上 右下 左下 */
  overflow: hidden;
  position: relative;
  text-align: left;
}

.ir-top__investor-image {
  height: 140px;
  overflow: hidden;
}

.ir-top__investor-card-title {
  margin: 12px 14px 6px;
  font-weight: 700;
}

.ir-top__investor-card-text {
  margin: 0 14px 16px;
  color: #555;
}

.ir-top__investor-card a {
  position: absolute;
  inset: 0;
}

.ir-top__investor-button {
  text-align: center;
}

.ir-top__investor-button a {
  display: inline-block;
  padding: 12px 28px;
  background-color: #4f7f1b;
  color: #fff;
  border-radius: 999px;
  text-decoration: none;
}


/* =========================================================
   PC調整（セマンティック化対応 + FV下部カーブ）
   ※既存parts.cssと共存するため、.ir-top配下に閉じた追記のみ
========================================================= */

.ir-top__main {
  display: block;
	overflow: hidden;
}

.ir-top__hero {
  position: relative;
  overflow: hidden;
  padding-bottom: 70px; /* 下部カーブ分 */
}

.ir-top__hero::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  transform: translateX(-50%);
  width: 140%;
  height: 110px;
  background: #f4f7ea; /* .ir-top の背景色 */
  border-radius: 0 0 100% 100%;
}


/* =========================================================
   KV (PC)
========================================================= */
.ir-top .ir-top__kv{
  height: 305px;
  position: relative;
  overflow: hidden; /* はみ出しを隠す */

}

.ir-top .ir-top__kv-media{
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.ir-top .ir-top__kv-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center; /* 中央スタート */
  /*display: block;*/
}



/* =========================================================
   KV 下端R（端から端まで / 内側に窪ませる）
========================================================= */
/* KV 下端R（内側に窪ませる / 白帯が出ない版） */
.ir-top .ir-top__kv{
  position: relative;
  overflow: hidden;
}

/* KV画像は下に敷く */
.ir-top .ir-top__kv-media{
  position: absolute;
  inset: 0;
  z-index: 1;
}

.section_curv{
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 140%;
  height: 220px;
  background: #fff;
  border-radius: 100% 100% 0 0;
  pointer-events: none;
  margin-top: -50px;  /* ← KVに被せる量（元の bottom:-160px 相当） */
	margin-bottom: -190px;
  z-index: 3;          /* ← KVやmirrorより前へ */
}
.section_curv--investor{
  margin-top: -100px;
}

/* =========================================================
   ir-1clmn（1カラム下層）専用：カーブ背景を個人投資家用に差し替え
   - 既存の形状（丸み/幅/高さ）は .section_curv 定義を流用
========================================================= */
.ir-1clmn .section_curv{
  background: url("../img/bg_kojin_2.png") center center / cover no-repeat;
}
/* =========================================================
   ir-3min 専用：背景（上詰め・左右中央）
========================================================= */
.ir-3min{
  background: url("../img/bg_kojin.png") center top / cover no-repeat;
	margin-bottom: 80px;
}

/* =========================================================
   KV 見出し（PC）
========================================================= */

/* KV内のコンテンツ用インナー（幅1280px / 左寄せ） */
.ir-top .ir-top__kv-inner{
  position: relative;
  z-index: 3;              /* 画像より上、Rより上 */
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;         /* 端の余白 */
  height: 100%;
  display: flex;
  align-items: center;     /* 縦中央（必要なら後で上寄せに変更可） */
  justify-content: flex-start;
}

/* 見出しブロック */
.ir-top .ir-top__kv-heading{
  text-align: left;
	margin-top: -70px;
}

/* h1 */
.ir-top .ir-top__kv-title{
  margin: 0;
  font-size: 55px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #2f3b33;
  line-height: 1.1;
  display: inline-block;   /* 下線の幅＝文字幅にするため */
  position: relative;
  padding-bottom: 14px;    /* 下線との間 */
	letter-spacing: 0.3em; 
}

/* 2色ボーダー（左74px #E57F14 + 右 #6EB92B、幅は文字幅に追従） */
.ir-top .ir-top__kv-title::after{
  content:"";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;             /* 文字幅に合わせる */
  height: 4px;
  background: linear-gradient(
    90deg,
    #E57F14 0,
    #E57F14 74px,
    #6EB92B 74px,
    #6EB92B 100%
  );
}

/* 英字（10px） */
.ir-top .ir-top__kv-sub{
  margin: 8px 0 0;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #222;
}

/* =========================================================
   Cards (PC)
========================================================= */
.ir-top__cards-inner{
  width: min(1280px, 100%);  /* ← ここ重要：中身が縮まない */
  margin: 0 auto;
  padding: 0 20px;
}


.ir-top__cards-grid{
  width: 100%;               /* ← ここ重要：グリッドを張る */
  display: grid;
  gap: 24px;                 /* 添付2っぽく余白広め（好みで16〜28） */

  grid-template-columns: 420px 1fr 1fr; /* 左は縦長固定＋右2列で埋める */
  grid-auto-rows: 220px;               /* 右側カードの高さ */
}


/* カード共通 */
.ir-card{
  position: relative;
  overflow: hidden;         /* はみ出し隠し */
  border-radius: 18px;      /* R */
  background: #ddd;
  min-height: 210px;        /* 右側カードの高さ感（必要なら調整） */
}

.ir-card--tall{
  grid-row: 1 / span 2;
}


/* 画像をボックスいっぱいに、比率維持でトリミング */
.ir-card__media{
  margin: 0;
  width: 100%;
  height: 100%;
}

.ir-card__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;        /* 最大表示＆はみ出しはトリミング */
  object-position: center;
}

/* 右下ラベル（文字数で白背景が伸びる） */
.ir-card__label{
  position: absolute;
  right: 0px;
  bottom: 0px;
  pointer-events: none;
}

.ir-card__label span{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #2f3b33;
  font-size: 15px;
  font-weight: 700;
  padding: 10px 14px;
  border-radius: 10px;
  line-height: 1.2;
  white-space: nowrap;
}



.ir-card__label span{
  position: relative;     /* 擬似要素の基準 */
  overflow: visible;      /* 角パーツを外に出す */
  border-radius: 12px 0 12px 0; /* 左上R / 右上直角 / 右下R / 左下直角 */
}

/* 角パーツ（サイズは画像に合わせて調整） */
.ir-card__label span::before,
.ir-card__label span::after{
  content:"";
  position:absolute;
  width: 22px;  /* ← card_R.png のサイズに合わせて調整 */
  height: 22px; /* ← card_R.png のサイズに合わせて調整 */
  background: url("../img/card_R.png") no-repeat center / contain;
  pointer-events:none;
}

/* 右上：角の“上”に出す */
.ir-card__label span::before{
  top: -20px;
  right: -3px;
}

/* 左下：角の“左”に出す */
.ir-card__label span::after{
  left: -18px;   /* ← 角の外へ出す量（widthと同じが基本） */
  bottom: -2px;
}

/* カード見出し（文字側） */
.ir-card__label span > span{
  position: relative;
  display: inline-block;  /* ここを基準に◯を固定 */
  padding-left: 22px;     /* ◯(12px) + 余白 */
  font-size: 20px;
  font-weight: 700;
  color: #2f3b33;
  line-height: 1.2;
}

/* 左の◯（枠だけ） */
.ir-card__label span > span::before{
  content:"";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  border: 3px solid #EF8200;
  border-radius: 999px;
  background: transparent;
  box-sizing: border-box;
}

/* =========================================
   ir-card：狭い幅では比率維持でリサイズ（224:150）
   - 画像は欠けない（contain）
   - 画像は上下中央（center）
   - 余白色は白で統一（下だけグレー防止）
   ※「狭くなったら」の境界は 1200px（必要なら調整）
========================================= */
@media (max-width: 1200px){

  /* 固定高/最小高が残って縮まないのを止める */
  .ir-top__cards-grid{
    grid-auto-rows: auto !important;
  }

  /* カード自体を比率で管理 */
  .ir-card{
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 224 / 150;       /* ★比率はここだけ */
    background: #fff !important;   /* 下だけグレー防止 */
    overflow: hidden;
    position: relative;            /* label等のabsolute基準 */
  }

  /* media をカード全面に敷く（%height問題回避） */
  .ir-card__media{
    margin: 0 !important;
    position: absolute !important;
    inset: 0 !important;
    background: #fff !important;
    overflow: hidden;
  }

  /* クリック領域（a）を全面に */
  .ir-card__media a{
    position: absolute;
    inset: 0;
    display: block;
  }

  /* 画像は欠けない＋上下中央（余白は白） */
  .ir-card__media img{
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain !important;      /* 欠けない */
    object-position: center center;      /* 上下中央 */
    background: #fff;                    /* 余白色 */
  }
}

/* aspect-ratio 非対応保険 */
@supports not (aspect-ratio: 1 / 1){
  @media (max-width: 1200px){
    .ir-card::before{
      content: "";
      display: block;
      padding-top: calc(150 / 224 * 100%);
    }
    .ir-card__media{
      position: absolute !important;
      inset: 0 !important;
    }
  }
}

/* =========================================
   ir-card--tall：比率固定はSP(<=767px)のみ
========================================= */

/* 768px以上では tall の比率固定を解除 */
@media (min-width: 768px){
  .ir-card--tall{
    aspect-ratio: auto !important;
  }
}

/* 767px以下では tall にも 224:150 を適用 */
@media (max-width: 767px){
  .ir-card--tall{
    aspect-ratio: 224 / 90 !important;
  }
}

/* =========================================================
   ir-card：PC/SP画像の出し分け（確実版）
   - 767px以下だけSP画像を表示
   - 768px以上は常にPC画像を表示
   ※ .ir-card__media の中にある <img> に class を付ける前提
========================================================= */

/* まず初期値：PCを表示、SPは隠す（PC/タブレット含む） */
.ir-card__media .ir-card__img--pc{
  display: block !important;
}
.ir-card__media .ir-card__img--sp{
  display: none !important;
}

/* SPだけ反転 */
@media (max-width: 767px){
  .ir-card__media .ir-card__img--pc{
    display: none !important;
  }
  .ir-card__media .ir-card__img--sp{
    display: block !important;
  }
}
/* =========================
   News Tabs (CSS toggle)
========================= */
.ir-top__tab-switch{
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

.ir-top__news-tabs{
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: end;
  margin: 0 0 18px;
}

.ir-top__news-tab{
  position: relative;
  display: block;
  text-align: center;
  font-weight: 700;
  font-size: 18px;
  padding: 18px 10px 14px;
  color: #8a8a8a;
  border-bottom: 6px solid #cfcfcf;
  cursor: pointer;
  user-select: none;
}

/* active（IRニュース） */
#ir-tab-news:checked ~ .ir-top__news-tabs label[for="ir-tab-news"]{
  color: #2f3b33;
  border-bottom-color: #6EB92B;
}
#ir-tab-news:checked ~ .ir-top__news-tabs label[for="ir-tab-news"]::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #6EB92B;
}

/* active（IRカレンダー） */
#ir-tab-cal:checked ~ .ir-top__news-tabs label[for="ir-tab-cal"]{
  color: #2f3b33;
  border-bottom-color: #6EB92B;
}
#ir-tab-cal:checked ~ .ir-top__news-tabs label[for="ir-tab-cal"]::after{
  content:"";
  position:absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid #6EB92B;
}

/* panels show/hide */
.ir-top__news-panel{ display: none; }
#ir-tab-news:checked ~ .ir-top__news-panels .ir-top__news-panel--news{ display:block; }
#ir-tab-cal:checked  ~ .ir-top__news-panels .ir-top__news-panel--cal{  display:block; }

/* =========================================================
   News list layout (tabs inside .ir-top__news-main)
   ※ 既存 .ir-top__news-item 等を、このブロックで局所上書き
========================================================= */

.ir-top__news-main .ir-top__news-list,
.ir-top__news-main .ir-top__cal-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.ir-top__news-main .ir-top__news-item,
.ir-top__news-main .ir-top__cal-item{
  position: relative;
  padding: 16px 52px 16px 22px; /* 左:●分 / 右:矢印分 */
  border-bottom: 1px solid #e6e6e6;
  background: #fff;
}

/* NEWS：CALと同じ2段レイアウトに揃える（古いflex/absolute a を無効化） */
.ir-top__news-main .ir-top__news-item{
  display: block;
}

.ir-top__news-main .ir-top__news-text a{
  position: static;
  inset: auto;
}


/* 左の● */
.ir-top__news-main .ir-top__news-item::before,
.ir-top__news-main .ir-top__cal-item::before{
  content:"";
  position: absolute;
  left: 6px;
  top: 22px;               /* 1行目に揃える */
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: #617168;
}

/* 1行目：日付 + バッジ */
.ir-top__news-main .ir-top__news-meta,
.ir-top__news-main .ir-top__cal-meta{
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 8px;
  color: #617168;
  font-size: 15px;
}

.ir-top__news-main .ir-top__news-date,
.ir-top__news-main .ir-top__cal-date{
  font-weight: 700;
  color: #617168;
}

/* バッジ（添付の「枠線＋文字色」） */
.ir-top__news-main .ir-top__news-tag,
.ir-top__news-main .ir-top__cal-tag{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 999px;
  border: 1px solid currentColor;
  color: #6eb92b;            /* デフォルト（必要なら） */
  background: #fff;
  line-height: 1;
}

/* ニュース用 色分け（あなたのHTMLのクラスに合わせる） */
.ir-top__news-main .ir-top__news-tag--blue{ color:#4aa3df; }
.ir-top__news-main .ir-top__news-tag--green{ color:#6eb92b; }
.ir-top__news-main .ir-top__news-tag--olive{ color:#8aa86a; }
.ir-top__news-main .ir-top__news-tag--orange{ color:#ef8200; }

/* 2行目：タイトル（リンク） */
.ir-top__news-main .ir-top__news-item > a,
.ir-top__news-main .ir-top__cal-item > a{
  display: block;
  color: #617168;
  font-size: 15px;
  text-decoration: none;
  line-height: 1.6;
}

/* 右の矢印（>） */
.ir-top__news-main .ir-top__news-arrow{
  position: absolute;
  right: 18px;
  top: 50%;
  width: 10px;
  height: 10px;
  transform: translateY(-50%) rotate(-45deg);
  border-right: 3px solid #c7c7c7;
  border-bottom: 3px solid #c7c7c7;
}

/* hover（任意） */
.ir-top__news-main .ir-top__news-item:hover,
.ir-top__news-main .ir-top__cal-item:hover{
  background: rgba(255,255,255,0.85);
}

/* =========================================================
   ir-top__news-main : tabs + list (PC)
   既存 .ir-top__news-item が flex なので、この範囲で局所上書き
========================================================= */

/* radios hidden */
.ir-top__news-main input[type="radio"]{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* tabs */
.ir-top__news-tabs{
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 6px solid #c9c9c9;
  margin: 0 0 22px;
}

.ir-top__news-tabs label{
  position: relative;
  text-align: center;
  padding: 0 10px 14px;
  font-size: 22px;
  font-weight: 700;
  color: #8a8a8a;
  cursor: pointer;
}

.ir-top__news-tabs label::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:6px;
  background: transparent;
}

.ir-top__news-tabs label::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-16px;
  transform: translateX(-50%);
  width:0;
  height:0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 10px solid transparent;
}

/* active（IRニュース） */
#ir-tab-news:checked ~ .ir-top__news-tabs label[for="ir-tab-news"]{
  color:#2f3b33;
}
#ir-tab-news:checked ~ .ir-top__news-tabs label[for="ir-tab-news"]::before{
  background:#6EB92B;
}
#ir-tab-news:checked ~ .ir-top__news-tabs label[for="ir-tab-news"]::after{
  border-top-color:#6EB92B;
}

/* active（IRカレンダー） */
#ir-tab-cal:checked ~ .ir-top__news-tabs label[for="ir-tab-cal"]{
  color:#2f3b33;
}
#ir-tab-cal:checked ~ .ir-top__news-tabs label[for="ir-tab-cal"]::before{
  background:#6EB92B;
}
#ir-tab-cal:checked ~ .ir-top__news-tabs label[for="ir-tab-cal"]::after{
  border-top-color:#6EB92B;
}

/* panels show/hide */
.ir-top__news-panel{ display:none; }
#ir-tab-news:checked ~ .ir-top__news-panels .ir-top__news-panel--news{ display:block; }
#ir-tab-cal:checked  ~ .ir-top__news-panels .ir-top__news-panel--cal{  display:block; }

/* list base */
.ir-top__news-main .ir-top__news-list,
.ir-top__news-main .ir-top__cal-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

/* row (既存flexを解除して2段構造へ) */
.ir-top__news-main .ir-top__news-item,
.ir-top__news-main .ir-top__cal-item{
  position: relative;
  display: block;                 /* ←重要：flexをやめる */
  padding: 18px 56px 18px 22px;   /* 左:● / 右:矢印 */
  border-bottom: 1px solid #e6e6e6;
  background: #fff;
}

/* 左の● */
.ir-top__news-main .ir-top__news-item::before,
.ir-top__news-main .ir-top__cal-item::before{
  content:"";
  position:absolute;
  left: 6px;
  top: 26px; /* 1行目（meta）に合わせる */
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: #617168;
}

/* 右の矢印（画像で表現：PICK UPと同じ） */
.ir-top__news-main .ir-top__news-item::after,
.ir-top__news-main .ir-top__cal-item::after{
  content:"";
  position:absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;   /* 必要なら調整OK */
  height: 14px;  /* 必要なら調整OK */
  background: url("../img/arrow_01.png") no-repeat center / contain;
  pointer-events: none;
}


/* meta line */
.ir-top__news-main .ir-top__news-meta,
.ir-top__news-main .ir-top__cal-meta{
  display:flex;
  align-items:center;
  gap: 14px;
  margin: 0 0 6px;
  font-size: 15px;
  color: #617168;
}

.ir-top__news-main .ir-top__news-date,
.ir-top__news-main .ir-top__cal-date{
  font-weight: 700;
  color: #617168;
  width: auto;     /* 既存 width:95px を打ち消し */
  flex: none;
  font-size: 15px; /* 既存 13px を打ち消し */
}

/* badge（枠線タイプ） */
.ir-top__news-main .ir-top__news-category,
.ir-top__news-main .ir-top__cal-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 22px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #fff;
  border: 1px solid currentColor;
  color: #6EB92B; /* default */
}

.news_tag_01  {color:#4599B1!important; }/*決算・IR*/
.news_tag_02 { color:#E0BD3C!important; }/*適時開示*/
.news_tag_03 { color:#77776D!important; }/*お知らせ*/
.news_tag_04 { color:#C78E69!important; }/*電子公告*/

/* optional colors */
.ir-top__news-main .ir-top__news-category--yellow{ color:#E8B500; }
.ir-top__news-main .ir-top__news-category--orange{ color:#EF8200; }
.ir-top__news-main .ir-top__news-category--blue{ color:#3DA3E6; }

/* title line */
.ir-top__news-main .ir-top__news-text,
.ir-top__news-main .ir-top__cal-text{
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #617168;
}

/* テキスト内aの見た目（classは付けない） */
.ir-top__news-main .ir-top__news-text a,
.ir-top__news-main .ir-top__cal-text a{
  color: inherit;
  text-decoration: none;
}

/* クリック領域を<li>全体に拡張（aでliを囲わない） */
.ir-top__news-main .ir-top__news-text a::after,
.ir-top__news-main .ir-top__cal-text a::after{
  content:"";
  position:absolute;
  inset:0;
}

/* hover任意：下線出すなら */
.ir-top__news-main .ir-top__news-item:hover .ir-top__news-text a,
.ir-top__news-main .ir-top__cal-item:hover .ir-top__cal-text a{
  text-decoration: none;
}

/* =========================================================
   News/Calendar row : size + file icon (right)
========================================================= */
.ir-top__news-main .ir-top__news-item,
.ir-top__news-main .ir-top__cal-item{
  /* 右側にサイズ＋アイコン分の余白を追加（arrow_01.png と干渉させない） */
  padding-right: 120px; /* 既存より広げる */
}

/* 右側：サイズ */
.ir-top__news-main .ir-top__news-item .ir-top__side-item-size,
.ir-top__news-main .ir-top__cal-item  .ir-top__side-item-size{
  position: absolute;
  right: 64px; /* ←アイコン(22px)＋余白分 */
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  color: #617168;
  pointer-events: none;
  white-space: nowrap;
}

/* 右側：ファイルアイコン */
.ir-top__news-main .ir-top__news-item .ir-top__side-item-file,
.ir-top__news-main .ir-top__cal-item  .ir-top__side-item-file{
  position: absolute;
  right: 36px; /* ←右端の arrow_01.png（right:18px）より左 */
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}


/* =========================================
   News/Calendar : 右端の「＞」を非表示 + アイコンを右端へ
========================================= */

/* 右端の「＞」（arrow_01.png）を消す
   ※news/calenダー行だけに限定 */
.ir-top__news-main .ir-top__news-item::after,
.ir-top__news-main .ir-top__cal-item::after{
  content: none !important;
}

/* 「＞」分の余白を減らす（必要なら微調整） */
.ir-top__news-main .ir-top__news-item,
.ir-top__news-main .ir-top__cal-item{
  padding-right: 96px; /* 120px → 詰める */
}

/* 右側：サイズ（アイコンの左） */
.ir-top__news-main .ir-top__news-item .ir-top__side-item-size,
.ir-top__news-main .ir-top__cal-item  .ir-top__side-item-size{
  right: 34px; /* 64px → 詰める（アイコン22px + 余白） */
}

/* 右側：ファイルアイコン（右端） */
.ir-top__news-main .ir-top__news-item .ir-top__side-item-file,
.ir-top__news-main .ir-top__cal-item  .ir-top__side-item-file{
  right: 12px; /* 右端に寄せる */
}


/* =========================
  汎用ボタン（aにclassを付けない運用）
========================= */
.c-btn{
  position: relative;
  display: inline-flex;
  min-width: 200px;
  height: 54px;
  background: #3C601C;
  border-radius: 14px;
  overflow: hidden;
		margin: 20px 0px;
}

/* 文字領域：右の矢印分だけ余白を取る */
.c-btn > a{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0 64px 0 24px; /* 右側に矢印エリア確保 */
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  line-height: 1;
  box-sizing: border-box;
}

/* 右側の仕切り線 */
.c-btn::before{
  content:"";
  position: absolute;
  top: 0;
  right: 50px;          /* 矢印エリアの左端 */
  width: 1px;
  height: 100%;
  background: rgba(255,255,255,.35);
  pointer-events: none;
}

/* 右側の矢印アイコン */
.c-btn::after{
  content:"";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 6px;
  height: 9px;
  transform: translateY(-50%);
  background: url("../img/arrow_02.png") center / contain no-repeat;
  pointer-events: none;
}

/* 任意：hover */
.c-btn:hover{
  filter: brightness(0.95);
}
/* =========================
  ボタン配置（左/中央/右）
========================= */
.c-btn-wrap{
  display: flex;
  justify-content: flex-start; /* 左寄せ（デフォ） */
}

.c-btn-wrap.is-center{
  justify-content: center;
}

.c-btn-wrap.is-right{
  justify-content: flex-end;
}

/* =========================
  ir-top__menu：背景に流れる文字
========================= */
.ir-top__menu{
  position: relative; /* 疑似要素の基準 */
  overflow: hidden;   /* はみ出しは隠す */
}

.ir-top__menu::before{
  content: "Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu Investar Relations Menu";
  position: absolute;
  top: -35px;
  left: 0;
  transform: translateX(0);     /* ← 左端スタート */
  white-space: nowrap;
  font-size: 200px;
  font-weight: 700;
  line-height: 1;
  color: rgba(60, 96, 28, 0.05);
  pointer-events: none;
  z-index: 0;
  animation: ir-menu-marquee 2800s linear infinite;
}

@keyframes ir-menu-marquee{
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}
/* ir-1clmn 内では、IR MENUの流しテキスト（擬似要素content）を表示しない */
.ir-1clmn .ir-top__menu::before,
.ir-1clmn .ir-top__menu::after{
  content: none !important;
  display: none !important;
}


/* 中身は背景文字より手前に */
.ir-top__menu > *{
  position: relative;
  z-index: 1;
}

/* =========================================================
   Investor KV（ir-top__kvと同仕様：下部R付き）
   - 画像：vc_shared_IR/img/mv_02.png
   - 見出し：中央寄せ
========================================================= */

/* セクション全体：背景画像は使わず、KV＋白背景に */
.ir-top__investor{
  padding: 0 0 80px;
  color: #617168;
}

/* KV本体 */
.ir-top__investor-kv{
  height: 456px;
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* 画像レイヤー */
.ir-top__investor-kv-media{
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}

.ir-top__investor-kv-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  display: block;
}

/* 見出し配置：中央寄せ */
.ir-top__investor-kv-inner{
  position: relative;
  z-index: 3;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;     /* 中央寄せ */
	top: -40px;
}



/* 見出しブロック */
.ir-top__investor-kv-heading{
  text-align: center;
}

/* 見出し上のアイコン（中央寄せ、伸縮しない） */
.ir-top__investor-kv-icon{
  display: block;
  margin: 0 auto 14px;
  max-width: none;  /* ← “縮めたり伸ばしたりしない” */
  height: auto;
}
img.ir-top__investor-kv-icon {width: inherit!important;}

/* 見出し（ir-top__kv-title と同じ下線テイスト） */
.ir-top__investor-kv-title{
  margin: 0;
  font-size: 44px;
  font-weight: 800;
  letter-spacing: 0.18em;
  line-height: 1.1;
  display: inline-block;
  position: relative;
  padding-bottom: 14px;
  color: #fff;                 /* 画像上なので白に */
  text-shadow: 0 2px 10px rgba(0,0,0,.35);
}

.ir-top__investor-kv-title::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;
}

/* =========================================================
   Investor contents
========================================================= */
.ir-top__investor-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  text-align: left;
}

/* 既存カードの見た目は活かしつつ、リンクを空aにしない運用へ */
.ir-top__investor-card-title a,
.ir-top__investor-image a{
  color: inherit;
  text-decoration: none;
  display: block;
}

/* 画像リンクは領域いっぱい */
.ir-top__investor-image{
  height: 140px;
  overflow: hidden;
  position: relative;
}
.ir-top__investor-image a{
  height: 100%;
}
.ir-top__investor-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* ================================
   Investor cards
================================ */
.ir-top__investor-cards{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.ir-top__investor-item{
  position: relative;
}

/* 画像カード（中は画像だけ） */
.ir-top__investor-card{
  position: relative;
  width: 100%;
  height: 202px;             /* 既存値を踏襲（必要なら調整OK） */
  border-radius: 18px;
  overflow: hidden;
  background: #ddd;
}

/* 画像をカード全体にフィット */
.ir-top__investor-image{
  position: absolute;
  inset: 0;
}
.ir-top__investor-image img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ▼差し替え：.ir-top__investor-card::after */
.ir-top__investor-card::after{
  content: "";
  position: absolute;
  right: 0;     /* 右下にピッタリ */
  bottom: 0;    /* 右下にピッタリ */
  width: 61px;
  height: 63px;
  background: url("../img/arrow_03.png") no-repeat center / contain;
  pointer-events: none;
  z-index: 2;
}

/* タイトル：20px / 700 / 中央 */
.ir-top__investor-card-title{
  margin: 18px 0 10px;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

/* a はクラス付けない前提：spanで見た目制御 */
.ir-top__investor-card-title a{
  color: inherit;
  text-decoration: none;
}

/* クリック範囲を「カード＋タイトル＋本文」全体へ拡張 */
.ir-top__investor-card-title a::after{
  content:"";
  position:absolute;
  inset:0;
}

/* タイトル文字は擬似要素より前面に */
.ir-top__investor-card-title a > span{
  position: relative;
  z-index: 1;
}

/* 本文 */
.ir-top__investor-card-text{
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  color: #617168;
}
.ir-top__investor-card{
  position: relative;     /* ←これが必須 */
  width: 100%;
  height: 202px;
  border-radius: 16px 16px 0 16px; /* 左上 右上 右下 左下 */
  overflow: hidden;
}

/* 画像ラッパーをカード全面に */
.ir-top__investor-image{
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;  /* inset:0 の互換書き */
  width: 100%;
  height: 100%;
}

/* 画像を必ず親いっぱいに */
.ir-top__investor-image img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================================
   Footer (Replace) - 3列ラップ方式
========================================================= */

.ir-top__footer{
  position: relative;
  color: #fff;
  padding: 70px 0 80px;

  /* 中央1280pxが #6EB92B っぽく見えるように「緩いランプ」を付ける */
  background: linear-gradient(
    90deg,
    #5BA01F 0%,
    #5BA01F calc(50% - 640px - 240px),
    #6EB92B calc(50% - 640px),
    #6EB92B calc(50% + 640px),
    #5BA01F calc(50% + 640px + 240px),
    #5BA01F 100%
  );
}

/* バンディング対策の“ごく薄い”テクスチャ（任意・弱め） */
.ir-top__footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity: .035;
  background-image:
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.10) 0px,
      rgba(255,255,255,.10) 1px,
      rgba(0,0,0,.10) 2px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,.06) 0px,
      rgba(255,255,255,.06) 1px,
      rgba(0,0,0,.06) 2px
    );
  mix-blend-mode: overlay;
}

.ir-top__footer-inner{
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}

/* 左ロゴ + 右サイトマップ */
.ir-top__footer-layout{
  display: grid;
  grid-template-columns: 260px 1fr;
  column-gap: 56px;
  align-items: start;
}

/* 左：ブランド */
.ir-top__footer-brand{
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding-top: 4px;
}

.ir-top__footer-brand img{
  display: block;
  height: 34px;
  width: auto;
}

.ir-top__footer-brand-text{
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* 右：3列（列ラップを固定） */
.ir-top__footer-cols{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 56px;
  align-items: start;
}

/* ★各列：この中だけ縦積み（隣の列に引っ張られない） */
.ir-top__footer-colwrap{
  display: flex;
  flex-direction: column;
  gap: 22px; /* 上下間を詰める */
  min-width: 0;
}

/* 見出し（下線＋右の＞） */
.ir-top__footer-title{
  margin: 0 0 10px;
  padding: 0 0 10px;
  border-bottom: 1px solid rgba(255,255,255,.45);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  position: relative;
}

.ir-top__footer-title a{
  color: inherit;
  text-decoration: none;
  display: inline-block;
  padding-right: 22px; /* 右の＞分 */
}

.ir-top__footer-title a::after{
  content:"";
  position: absolute;
  right: 0;
  top: 7px;
  width: 9px; 
  height: 14px; 
  background: url("../img/arrow_04.png") center / contain no-repeat;
  border: none;
  transform: none;
  pointer-events: none;
}

/* リスト */
.ir-top__footer-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  font-size: 14px;
  line-height: 1.5;
}

.ir-top__footer-list a{
  color: rgba(255,255,255,.95);
  text-decoration: none;
}

.ir-top__footer-list a:hover{
  text-decoration: underline;
}

/* SP：1カラムに積む */
@media (max-width: 768px){
  .ir-top__footer{
    padding: 46px 0 54px;
  }

  .ir-top__footer-layout{
    grid-template-columns: 1fr;
    row-gap: 26px;
  }

  .ir-top__footer-brand{
    justify-content: center;
  }

  .ir-top__footer-cols{
    grid-template-columns: 1fr;
    row-gap: 22px;
  }

  .ir-top__footer-colwrap{
    gap: 18px;
  }
}

/* =========================
  footer sub menu（最下部の白帯）
========================= */
.ir-top__footer-sub{
  position: relative;
  background: #fff;
  height: 70px;
}

/* 上端に「グラデーションのシャドウ」 */
.ir-top__footer-sub::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 18px;
  background: linear-gradient(to bottom, rgba(0,0,0,.18), rgba(0,0,0,0));
  pointer-events: none;
}

.ir-top__footer-sub-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.ir-top__footer-copyright{
  margin: 0;
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
}

.ir-top__footer-subnav{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.ir-top__footer-subnav li{
  position: relative;
  padding: 0 14px;
  line-height: 1;
}

.ir-top__footer-subnav li:first-child{
  padding-left: 0;
}

/* メニュー間の縦ライン（短いボーダー） */
.ir-top__footer-subnav li + li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 16px;
  background: #cfcfcf;
}

.ir-top__footer-subnav a{
  text-decoration: none;
  font-size: 14px;
}

/* SP */
@media (max-width: 768px){
  .ir-top__footer-sub{
    height: auto;
    padding: 18px 0;
  }

  .ir-top__footer-sub-inner{
    height: auto;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .ir-top__footer-subnav{
    justify-content: center;
  }

  .ir-top__footer-subnav li{
    padding: 6px 12px;
  }
}


/* =========================================================
   SP Header (<= 767px)
========================================================= */

/* ハンバーガーはPCでは隠す */
.ir-top .ir-hd__toggle{
  display: none;
}

.ir-top .ir-hd__sp-ir{
  display: none;
}

/* SPメニュー器：PCでは無効 */
.ir-top .ir-spmenu{
  display: none;
}

@media (max-width: 767px){

  /* SPではヘッダーの“緑帯”を隠して、白ヘッダー＋ハンバーガーに寄せる */
  .ir-top .ir-hd__bar{
    display: none;
  }

  /* 固定ヘッダー高さが変わるので、コンテンツの上余白もSP用に */
  .ir-top{
    padding-top: 70px; /* .ir-hd__top の高さに合わせる */
  }

  .ir-top .ir-hd__inner{
    padding: 0 16px;
  }

  .ir-top .ir-hd__top{
    background: #fff;      /* SPはフラットに */
    border-bottom: 1px solid #e6e6e6;
  }

  .ir-top .ir-hd__top .ir-hd__inner{
    height: 70px;
    gap: 12px;
  }

  /* PC用ユーティリティは隠す（ハンバーガーに格納する前提） */
  .ir-top .ir-hd__utility{
    display: none;
  }

  /* ブランド（ロゴ＋IR情報テキスト） */
  .ir-top .ir-hd__brand{
    gap: 12px;
  }

  .ir-top .ir-hd__brand img{
    height: 32px;
    width: auto;
  }

  .ir-top .ir-hd__sp-ir{
    display: inline-block;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #375D16;
    white-space: nowrap;
  }

  /* ハンバーガー */
  .ir-top .ir-hd__toggle{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 17px;
    height: 13px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .ir-top .ir-hd__toggle-text{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
  }

  .ir-top .ir-hd__toggle-lines{
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    width: 28px;
  }

  .ir-top .ir-hd__toggle-lines > span{
    display: block;
    height: 2px;
    background: #375D16;
    border-radius: 2px;
  }
 /* SPメニュー：ヘッダー（.ir-hd__top）の“下”から表示する */
  .ir-top .ir-spmenu{
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    top: 70px; /* .ir-hd__top の高さ */
    height: calc(100vh - 70px);
    z-index: 9998; /* ヘッダー(9999)の下にする */
    background: #F4FAEE;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
  }

.ir-top .ir-spmenu{
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    top: 70px;
    height: calc(100vh - 70px);
    z-index: 9998;
    background: #F4FAEE;
    opacity: 0;
   pointer-events: none;
    transition: opacity .2s ease;
    pointer-events: none;
  }

  .ir-top .ir-spmenu__panel{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #F4FAEE;
    transform: none;
    transform: translateX(100%);
    transition: transform .25s ease;
    will-change: transform;
  }

  .ir-top .ir-spmenu.is-open{
    opacity: 1;
     pointer-events: auto;
  }

  .ir-top .ir-spmenu.is-open .ir-spmenu__panel{
    transform: translateX(0);
   }

  /* 上部バー（ロゴ＋IR情報＋×） */
  .ir-top .ir-spmenu__head{
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    background: #fff;
    border-bottom: 1px solid #e6e6e6;
    box-shadow: 0 6px 10px rgba(0,0,0,.16);
  }

  .ir-top .ir-spmenu__brand{
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
  }

  .ir-top .ir-spmenu__brand img{
    display: block;
    height: 32px;
    width: auto;
  }

  .ir-top .ir-spmenu__brand-text{
    font-size: 20px;
    font-weight: 700;
    color: #375D16;
    letter-spacing: .08em;
    white-space: nowrap;
  }

  /* ×ボタン（右上） */
  .ir-top .ir-spmenu__close{
    position: relative;
    width: 28px;
    height: 28px;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
  }
  .ir-top .ir-spmenu__close::before,
  .ir-top .ir-spmenu__close::after{
    content:"";
    position:absolute;
    left: 50%;
    top: 50%;
    width: 22px;
    height: 2px;
    background: #3C601C;
    transform-origin: center;
  }
  .ir-top .ir-spmenu__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
  .ir-top .ir-spmenu__close::after{  transform: translate(-50%,-50%) rotate(-45deg); }

  /* 本文 */
  .ir-top .ir-spmenu__body{
    padding: 30px 35px 0;
  }

  /* リスト */
  .ir-top .ir-spmenu__list{
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 16px;
  }

  .ir-top .ir-spmenu__list a{
    text-decoration: none;
    color: #617168;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
  }

  /* 下部：問い合わせ帯（添付っぽく緑の面） */
  .ir-top .ir-spmenu__contact{
    margin-top: 34px;
    background: #6EB92B;
  }

  .ir-top .ir-spmenu__contact-inner{
    padding: 18px 18px 18px 35px;
    display: grid;
    gap: 18px;
  }

  .ir-top .ir-spmenu__contact-inner p{
    margin: 0;
  }

  .ir-top .ir-spmenu__contact-inner a{
    text-decoration: none;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 12px;
  }

.ir-top .ir-spmenu__contact-inner a::before{
  content:"";
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  background: url("../img/icon_info_02.png") center / contain no-repeat;
}

  /* 最下部：Englishボタン＆ロゴ（器） */
  .ir-top .ir-spmenu__bottom{
    padding: 18px 35px 22px;
  }

  .ir-top .ir-spmenu__bottom-inner{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    align-items: center;
  }

  .ir-top .ir-spmenu__btn{
    margin: 0;
  }

  .ir-top .ir-spmenu__btn a{
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    border-radius: 14px;
    background: #3C601C;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
  }
	
/* Englishボタン：左に言語アイコン（../img/icon_lang_01.png） */
.ir-top .ir-spmenu__btn a{
  display: flex;
  gap: 6px;
}

.ir-top .ir-spmenu__btn a::before{
  content:"";
  width: 22px;
  height: 22px;
  flex: 0 0 26px;
  background: url("../img/icon_lang_02.png") center / contain no-repeat;
}


  .ir-top .ir-spmenu__logo{
    margin: 0;
    height: 60px;
    border-radius: 14px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ir-top .ir-spmenu__logo img{
    display: block;
    height: 34px;
    width: auto;
  }
}
@media (max-width: 1024px){
	.ir-card__label span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #2f3b33;
  font-size: 15px;
  font-weight: 700;
  padding: 5px 10px;
border-radius: 12px 0 12px 0;
  line-height: 1.2;
  white-space: nowrap;
}
	.ir-card__label span > span {
  padding-left: 20px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
letter-spacing: -0.02em; /* 少し詰める */
}

}
@media (max-width: 767px){

  /* ボタン本体 */
  .ir-hd__toggle{
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  /* 17 x 13 の描画領域を固定 */
  .ir-hd__toggle-lines{
    width: 17px;
    height: 13px;
    position: relative;
    display: inline-block;
  }

  /* 3本線：上/中/下 */
  .ir-hd__toggle-lines > span{
    position: absolute;
    left: 0;
    width: 17px;
    height: 2px;
    background: #3C601C;
    display: block;
    transition: transform .25s ease, top .25s ease, opacity .2s ease;
  }
  .ir-hd__toggle-lines > span:nth-child(1){ top: 0; }
  .ir-hd__toggle-lines > span:nth-child(2){ top: 50%; transform: translateY(-50%); }
  .ir-hd__toggle-lines > span:nth-child(3){ top: calc(100% - 2px); }

  /* 開いた状態：×に変形（aria-expanded="true"） */
  .ir-hd__toggle[aria-expanded="true"] .ir-hd__toggle-lines > span:nth-child(1){
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
  }
  .ir-hd__toggle[aria-expanded="true"] .ir-hd__toggle-lines > span:nth-child(2){
    opacity: 0;
  }
  .ir-hd__toggle[aria-expanded="true"] .ir-hd__toggle-lines > span:nth-child(3){
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
  }

  /* MENUテキスト（必要なら調整） */
  .ir-hd__toggle-text{
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #3C601C;
    line-height: 1;
  }

  .ir-top .ir-top__kv{
    height: 150px;
	 margin-bottom: -40px;
  }

  .ir-top .ir-top__kv-title{
    font-size: 30px;
  }

  .ir-top .ir-top__kv-sub{
    font-size: 10px;
  }

  /* KVの白いカーブ（Rの土台）をSPでは“緩やか”にする */
  .ir-top .ir-top__kv::after{
    bottom: -320px;
    width: 250%;
    height: 380px;
    border-radius: 100% 100% 0 0;
  }
	
  /* ir-top__pickup 以降：中身の左右余白を 15px に統一 */
.ir-top__pickup,
  .ir-top__pickup-inner,
  .ir-top__cards-inner,
  .ir-top__news-inner,
  .ir-top__menu-inner,
  .ir-top__investor-inner,
  .ir-top__footer-inner,
  .ir-top__footer-sub-inner{
    padding-left: 15px;
    padding-right: 15px;
  }


  /* === PICK UP（SP）: 左110px / ラベル15px固定 / 右は2行表示 === */

  .ir-top__pickup-inner{
    display: flex;
    align-items: center;
  }

  /* 左カラム：マージン含めて 110px 幅 */
  .ir-top__pickup-label{
    flex: 0 0 10px;
    width: 75px;
    box-sizing: border-box;
    margin: 0;
    font-size: 14px;
    white-space: nowrap;
  }
	
	.ir-top__pickup-list {
  list-style: none;
  margin: 0;
  border-left: 1px solid #D7EDC5;
  padding: 12px 0 2px 15px;
  display: grid;
  gap: 6px;
}

  /* 右側：縦線の開始位置を左カラムに追従させる（現状の見た目維持） */
  .ir-top__pickup-list{
    flex: 1;
    min-width: 0;
  }

  /* item内は「日付」→「本文」で2行にする */
  .ir-top__pickup-item{
    display: block;
    align-items: initial;
    gap: 0;
	 padding-right: 20px;
  }

  .ir-top__pickup-date{
    display: block;
    min-width: 0;
  }

  .ir-top__pickup-text{
    display: block;
  }
.ir-top__pickup {
	padding-bottom: 3px;
}


/* =========================
   SP：ir-top__cards レイアウト調整
   ========================= */

  .ir-top__cards-grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .ir-top__cards-grid .ir-card--tall{
    grid-column: 1 / -1; /* 横幅いっぱい */
  }

  /* 念のため：カードが幅いっぱいに伸びるように */
  .ir-top__cards-grid .ir-card{
    width: 100%;
  }
	
  /* Cards: 100%幅 + padding で横はみ出しを起こさない */
  .ir-top__cards-inner{
    width: 100%;
    box-sizing: border-box;
    padding-left: 15px;
    padding-right: 15px;
  }

  .ir-top__cards-grid{
    width: 100%;
  }

  /* グリッド内要素の“最小幅”由来の押し出し対策（念のため） */
  .ir-top__cards-grid > *{
    min-width: 0;
  }


  /* ir-top__news：SPは縦積み（1列） */
  .ir-top__news-inner{
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  /* 念のため：右カラム側が固定幅を持っていても潰す */
  .ir-top__news-side{
    width: 100%;
    min-width: 0;
  }

  /* 1) 見出し：マージントップ 54px */
 .ir-top__section-title {
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
  font-size: 32px;
  font-weight: 700;
  margin: 38px 0 36px;
}

  /* 2) 背景の横に流れる文字：サイズ 100px */
  .ir-top__menu .ir-top__menu-bg{
    font-size: 100px;
  }

  /* 3) メニューカード：3列 → 1列（縦積み） */
  .ir-top__menu-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  /* 念のため：カードが横に伸びるように */
  .ir-top__menu-card{
    width: 100%;
    min-width: 0;
  }

  /* ir-top__menu：カードのはみ出し対策（SPは1列） */
  .ir-top__menu-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  /* 念のため：子要素の最小幅起因の押し出しを潰す */
  .ir-top__menu-grid > *{
    min-width: 0;
  }

  /* 念のため：カード自体も幅100%に固定 */
  .ir-top__menu-card{
    width: 100%;
    box-sizing: border-box;
  }

  /* investor-kv を kv と同仕様に寄せる（HTML変更なし） */
  .ir-top .ir-top__investor-kv{
    height: 220px;
  }

  /* KV下端のR（緩やかに） */
  .ir-top .ir-top__investor-kv::after{
    bottom: -260px;
    width: 230%;
    height: 320px;
    border-radius: 100% 100% 0 0;
  }

  /* 見出しブロックは中央のまま。SPでは上方向のオフセットを外す */
  .ir-top .ir-top__investor-kv-inner{
    top: 0;
    padding-left: 15px;
    padding-right: 15px;
    box-sizing: border-box;
  }

  /* タイトルサイズだけ kv に合わせる */
  .ir-top .ir-top__investor-kv-title{
    font-size: 25px;
  }
	
	img.ir-top__investor-kv-icon {
  width: 15% !important;
}
	.ir-top__investor-kv-heading { margin-top: -50px;}
	
  /* investor：カードを1列の縦積みに */
  .ir-top__investor-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  /* 念のため：横はみ出し防止 */
  .ir-top__investor-grid > *{
    min-width: 0;
  }

  .ir-top__investor-card{
    width: 100%;
    box-sizing: border-box;
  }

  /* investor：カード一覧（.ir-top__investor-cards）を1列にする */
  .ir-top__investor-cards{
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .ir-top__investor-cards > *{
    min-width: 0;
  }

  .ir-top__investor-card{
    width: 100%;
    box-sizing: border-box;
  }
	
	.section_curv {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 140%;
  height: 180px;
  background: #fff;
  border-radius: 100% 100% 0 0;
  pointer-events: none;
  margin-top: 0px;
  margin-bottom: -160px;
  z-index: 3;
}
	.section_curv--investor {
  margin-top: -50px;
		margin-bottom: -120px;
}
	
.ir-top__main {
  overflow: hidden;
}
}






/* =========================
   SP Footer (追加)
========================= */

.ir-sp-breadcrumb__inner{
  padding: 12px 15px;
	background: #F7F7F7;
}

.ir-sp-breadcrumb__text{
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #4f5a52;
}

/* SPフッター背景：横方向グラデーション（PB仕様踏襲：ヘッダー同系） */
.ir-sp-footer__menu{
  background: linear-gradient(90deg, #5BA01F 0%, #66AE26 50%, #5BA01F 100%);
}

/* 2列メニュー */
.ir-sp-footer__menu-grid{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.ir-sp-footer__menu-grid li{
  border-top: 1px solid rgba(255,255,255,.25);
  border-right: 1px solid rgba(255,255,255,.25);
}

.ir-sp-footer__menu-grid li:nth-child(2n){
  border-right: none;
}

.ir-sp-footer__menu-grid a{
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  padding: 22px 10px;
  text-align: center;
}

/* バナー表示エリア（メニュー下の白い帯） */
.ir-sp-footer__banners{
  background: #F7F7F7;
  padding: 0; /* ←常時paddingをやめる */
}
/* バナーが存在する時だけ、セクションとして表示＆余白を付与 */
.ir-sp-footer__banners:has(.ir-sp-footer__banner){
  padding: 16px 15px;
}

/* バナーが無い時はセクションごと消す（高さ0） */
.ir-sp-footer__banners:not(:has(.ir-sp-footer__banner)){
  display: none;
}

/* バナーエリア：中身が無ければ表示しない */
.ir-sp-footer__banners:empty{
  display: none;
}


.ir-sp-footer__banners-inner{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* バナー枠（中身は後で差し替え） */
.ir-sp-footer__banner{
  height: 62px;
  background: #375D16;
  border-radius: 16px;
  overflow: hidden;
}

.ir-sp-footer__banner a{
  display: block;
  width: 100%;
  height: 100%;
}

@media (max-width: 767px){

  /* footer-sub：SPは subnav を上、copyright を下にする */
  .ir-top__footer-sub-inner{
    display: flex;
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 10px;
    height: auto; /* 70px固定があれば解除 */
  }

  .ir-top__footer-subnav,
  .ir-top__footer-copyright{
    width: 100%;
  }

  /* 既存で左右寄せが入っている場合の保険 */
  .ir-top__footer-subnav{
    justify-content: center;
  }

  .ir-top__footer-copyright{
    text-align: center;
  }
}
/* =========================================
   SP Footer banner : keep 278:112 ratio
========================================= */
.ir-sp-footer__banner{
  position: relative;
  overflow: hidden;
  /* 比率固定（278:112） */
  aspect-ratio: 278 / 112;
  width: 100%;
  max-width: 278px; /* 必要なら外してOK。デザイン次第 */
}

/* a を枠いっぱいに */
.ir-sp-footer__banner > a{
  display: block;
  width: 100%;
  height: 100%;
}

/* 画像：枠にフィット（大きい場合は中央トリミング） */
.ir-sp-footer__banner img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;        /* はみ出す分はトリミング */
  object-position: center;  /* 上下中央（中心） */
}


/* =========================================================
   Responsive visibility helpers
   - SP: max-width 767px
   - PC: min-width 768px
   ========================================================= */

/* =========================
   強制：u-only-pc / u-only-sp の表示制御（最後に勝たせる）
========================= */
.u-only-pc{ display: block !important; }
.u-only-sp{ display: none !important; }

@media (max-width: 767px){
  .u-only-pc{ display: none !important; }
  .u-only-sp{ display: block !important; }
}




/* =========================================================
  動きの演出
   ========================================================= */

.js-reveal{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .4s ease, transform .4s ease;
}
.js-reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
	position: relative;
	z-index: 9;
}
@media (prefers-reduced-motion: reduce){
  .js-reveal{ transition: none; transform: none; opacity: 1; }
}

/* Parallax: KV画像を動かす準備（安全側） */
/* parallax.js 用：CMS管理の <img> は見せない（二重表示防止） */
.parallax-window > img{
  display: none;
}

/* 念のため：parallax.js は背景を描くので透明でOK */
.parallax-window{
  background: transparent;
}
/* =========================================
   parallax.js 表示問題対策（mirrorが背面に潜る問題）
========================================= */

/* パララックス対象セクション側は透明にしてmirrorを見せる */
.ir-top__kv,
.ir-top__investor-kv,
.ir-top__kv-media,
.ir-top__investor-kv-media{
  background: transparent !important;
}

/* セクション内の文字や装飾は、mirrorより上に固定 */
.ir-top__kv-inner,
.ir-top__investor-kv-inner{
  position: relative;
  z-index: 2;
}

/* =========================================
   ir-card hover zoom (global)
   - image zooms slightly on hover
   - clipped inside card (no overflow)
========================================= */

/* カードをクリップ領域にする（既存の角丸があるならそれも維持） */
.ir-card{
  overflow: hidden;
}

/* 画像をズーム対象にする */
.ir-card__media img{
  display: block;
  width: 100%;
  height: auto;
  transform: scale(1);
  transition: transform .35s ease;
  transform-origin: center center;
}

/* hover時：カード全体にhoverでOK（リンクがfigure内でも反応） */
.ir-card:hover .ir-card__media img{
  transform: scale(1.06);
}

/* =========================================
   investor card hover zoom
   - image zooms slightly on hover
   - clipped inside image area
========================================= */

.ir-top__investor-image{
  overflow: hidden;
}

.ir-top__investor-image img{
  display: block;
  width: 100%;
  height: auto;
  transform: scale(1);
  transition: transform .35s ease;
  transform-origin: center center;
}

.ir-top__investor-card:hover .ir-top__investor-image img{
  transform: scale(1.06);
}





/* =======================================================================================================
   Lower page CSS
======================================================================================================= */



/* =========================================
   Lower page KV override
   scope: <main class="ir-lower"> ... </main>
========================================= */

.ir-lower {
  overflow: hidden;
}

.ir-lower-breadcrumb {
	position: relative;
	z-index: 3;
	width: 1280px;
	margin: 0 auto;
	margin-bottom: 20px;
}

/* PC（TOPのSP仕様を壊さないため、まずはPCのみ上書き） */
@media (min-width: 768px){
  .ir-lower .ir-top__kv{
    height: 200px;
  }
  .ir-lower .ir-top__kv-media{
    height: 180px;
  }

  .ir-lower .ir-top__kv-title{
    font-size: 45px;
  }
}

.ir-lower  .ir-top__kv-heading {
  text-align: left;
  margin-top: -50px;
}
.ir-lower__2col{
	position: relative;
	z-index: 3;
	margin-bottom: 40px;
}

/* =========================================
   Side Local Nav (Right column)
   - follow ir-top__side-card appearance
========================================= */

.ir-top__side-localnav-list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.ir-top__side-localnav-list li{
}
.ir-top__side-localnav-list li:first-child{
}

.ir-top__side-localnav-list a{
  position: relative;
  display: block;
  padding: 0 34px 14px 0; /* 右は矢印分を確保 */
  color: inherit;
  text-decoration: none;
}

.ir-top__side-localnav-list a::after{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 8px;
  height: 12px;
  transform: translateY(-50%);
  background: url("../img/arrow_05.png") no-repeat center / contain;
  opacity: .9;
}

.ir-top__side-localnav-list a:hover{
  text-decoration: none;
}

/* =========================================
   Add Parts : mini cards inside float columns
========================================= */

.ir-mini-card__title{
  margin: 16px 0 10px;
  text-align: center;
  font-size: 20px;
  line-height: 1.4;
  font-weight: 700;
  color: #2E3A20;
}

/* 文章の左右寄せはデザインに合わせて左寄せのまま */
.clearfix > .mb-20 .vcP{
  margin: 0;
  line-height: 1.9;
}

/* ボタン中央寄せ（既存に無ければここで定義） */
.c-btn-wrap.is-center{
  display: flex;
  justify-content: center;
  margin-top: 18px;
}

/* =========================================
   Top : Feature (2 items)
========================================= */

.ir-top__feature{
  padding: 0 0 40px;
}

.ir-top__feature-inner{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px;
}

/* item */
.ir-top__feature-item{
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 22px;
  align-items: start;
}

/* media */
.ir-top__feature-media{
  border-radius: 12px;
  overflow: hidden;
  background: #BFE39E; /* 画像がない時の面色（近似） */
  aspect-ratio: 1 / 1;
}

.ir-top__feature-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* text */
.ir-top__feature-title{
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.45;
  font-weight: 700;
  color: #2E3A20;
}

.ir-top__feature-title a{
  color: inherit;
  text-decoration: none;
}

.ir-top__feature-title a:hover{
  text-decoration: underline;
}

.ir-top__feature-text{
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  color: #2E3A20;
}

/* SP */
@media (max-width: 767px){
  .ir-top__feature{
    padding: 0 15px 30px;
  }

  .ir-top__feature-inner{
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .ir-top__feature-item{
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .ir-top__feature-media{
    aspect-ratio: 16 / 10;
  }
}

/* =========================================
   IR calendar tag icons (class switch)
========================================= */

/* 共通（4種まとめて） */
.ir-top__cal-meta .ir-top__cal-tag_denshi,
.ir-top__cal-meta .ir-top__cal-tag_IR,
.ir-top__cal-meta .ir-top__cal-tag_news,
.ir-top__cal-meta .ir-top__cal-tag_tekiji{
  display: inline-block;
  width: 78px;
  height: 29px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  vertical-align: middle;
  flex: 0 0 auto; /* meta内がflexの場合の崩れ防止 */
}

/* 個別画像 */
.ir-top__cal-meta .ir-top__cal-tag_denshi{
  background-image: url("../img/icon_news/icon_denshi.png");
}

.ir-top__cal-meta .ir-top__cal-tag_IR{
  background-image: url("../img/icon_news/icon_IR.png");
}

.ir-top__cal-meta .ir-top__cal-tag_news{
  background-image: url("../img/icon_news/icon_news.png");
}

.ir-top__cal-meta .ir-top__cal-tag_tekiji{
  background-image: url("../img/icon_news/icon_tekiji.png");
}


/* =========================================
   Side list: file icons (span bg-image)
========================================= */

/* 共通（プレースホルダ + 判定クラス共通） */
.ir-top__side-item-file,
.ir-top__side-item-pdf,
.ir-top__side-item-xlsx,
.ir-top__side-item-doc,
.ir-top__side-item-txt,
.ir-top__side-item-html,
.ir-top__side-item-etc{
  display: inline-block;
  width: 18px;          /* 必要なら調整 */
  height: 24px;         /* 必要なら調整 */
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  flex: 0 0 auto;       /* 行レイアウト崩れ防止 */
margin-top: 4px;
  margin-bottom: -4px;
}

/* 個別 */
.ir-top__side-item-pdf{  background-image: url("../img/icon_files/PDF.png"); }
.ir-top__side-item-xlsx{ background-image: url("../img/icon_files/XLSX.png"); }
.ir-top__side-item-doc{  background-image: url("../img/icon_files/DOC.png"); }
.ir-top__side-item-txt{  background-image: url("../img/icon_files/TXT.png"); }
.ir-top__side-item-html{ background-image: url("../img/icon_files/HTML_2.png"); }
.ir-top__side-item-etc{  background-image: url("../img/icon_files/etc.png"); }



/* =========================================
   Menu grid (outside ir-top__menu)
   - same layout as ir-top__menu
   - add drop shadow only when outside
========================================= */

/* ir-top__menu の中は影なし（既存のまま）
   ir-top__menu の外だけ影を付ける */
.ir-top__menu:not(.dummy) .ir-top__menu-card{
  /* ここは既存に任せる（保険で何もしない） */
}

/* 今回：ir-top__menu の外（例：ir-top__investor-inner 配下） */
.ir-top__investor-inner .ir-top__menu-grid{
  /* grid自体は既存CSSが効く前提。念のため崩れ防止 */
  width: 100%;
}

.ir-top__investor-inner .ir-top__menu-card{
  background: #fff;                 /* 影が見える前提 */
  border-radius: 10px;              /* 既存に合わせて調整可 */
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
}

/* hover の雰囲気（任意：既存の hover があるなら不要） */
.ir-top__investor-inner .ir-top__menu-card:hover{
  box-shadow: 0 14px 30px rgba(0,0,0,.10);
}


/* =========================================
   Footer brand image (PC only)
========================================= */

.ir-top__footer-brand-image{
  display: none; /* SPは非表示 */
}

@media (min-width: 768px){
  .ir-top__footer-brand-image{
    display: block;
    margin-top: 20px;        /* ロゴ＋IR情報の下に余白 */
    width: 100%;
    max-width: 320px;        /* 必要なら調整 */
    border-radius: 18px;     /* 添付の角丸イメージ */
    overflow: hidden;        /* 画像の角丸切り抜き */
    background: rgba(255,255,255,.15); /* 画像がない時の保険（任意） */
  }

  .ir-top__footer-brand-image img{
    width: 100%;
    height: auto;
    display: block;
  }
}

/* ===== FIX: footer brand image を縦積みにする（PCのみ） ===== */
@media (min-width: 768px){
  .ir-top__footer-brand{
    flex-wrap: wrap; /* ← これで次の行に落とせる */
  }

  .ir-top__footer-brand-image{
    width: 100%;     /* ← 必ず改行してフル幅 */
    flex: 0 0 100%;
    margin-top: 20px;
  }
}


/* =========================================
   Lower page SP
========================================= */

@media (max-width: 767px){

	.ir-lower__2col {
  margin-top: 20px;
}
	
}



/* =========================================
   VCMS config
========================================= */

#vcbody-wrapper header.ir-hd {visibility: hidden;} 
.caution {visibility: hidden; background-color: #0023FF; color: #FFF; display: none;}
#vcbody-wrapper .caution {visibility:visible!important; display: block!important;} 

.vcms_editTemp {
    position: relative;
    z-index: 9999;
}
#vcbody-wrapper .ir-top__cards-inner {
    overflow: hidden;
}
#vcbody-wrapper .ir-top__news-panel {
    display:block; 
}
#vcbody-wrapper .ir-top__news-panel {
    display:block; 
}
#vcbody-wrapper .ir-top__news-main .ir-add-movie {
    display: block!important;
}

/* CMS編集画面(#vcbody-wrapper)では、SPフッターバナーだけ表示して編集できるようにする */
#vcbody-wrapper .ir-sp-footer.u-only-sp{
  display: block !important;
}

#vcbody-wrapper .ir-sp-footer.u-only-sp .ir-sp-footer__banners{
  display: block !important;
}

#vcbody-wrapper .js-reveal {
     transform: none!important; 
}

.ir-top__investor .ir-top__news-main {
	    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: left;
}