@charset "UTF-8";
/* CSS Document */


/* ////////////////////////////////////////////////////////////////////////////////

	Common

//////////////////////////////////////////////////////////////////////////////// */
:root {
  --mainColor: #0055a3;
  --subColor: #fef200;
}

@font-face {
	font-family: 'sns_ico';
	src:
		url('../fonts/sns_ico.ttf?sij4de') format('truetype'),
		url('../fonts/sns_ico.woff?sij4de') format('woff'),
		url('../fonts/sns_ico.svg?sij4de#sns_ico') format('svg');
	font-weight: normal;
	font-style: normal;
}

i.snsIcon {
	font-family: 'sns_ico' !important;
	speak: never;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	-moz-osx-font-smoothing: grayscale;
	
	color: #000;
}

.icon-ap:before { content: "\e900";}
.icon-blo:before { content: "\e901";}
.icon-fb:before { content: "\e902";}
.icon-hp:before { content: "\e903";}
.icon-in:before { content: "\e904";}
.icon-line:before { content: "\e905";}
.icon-spo:before { content: "\e906";}
.icon-tt:before { content: "\e907";}
.icon-tw:before { content: "\e908";}
.icon-yt:before { content: "\e909";}
.icon-x:before { content: "\e90a";}
.icon-wb:before { content: "\e90b";}


html {
	scroll-behavior: smooth;
}
body {
  font-family: "IBM Plex Sans JP", sans-serif;
	font-size: min(3.2vw, 14px);
	line-height: 1.8;
  letter-spacing: 0.05em;
	-webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}

img {
	max-width: 100%;
	height: auto;
}
ul { list-style: none;}

.contentWrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 min(5vw, 60px);
}

section {
  padding: min(14vw, 120px) 0;
}

a { color: #000;}

@media screen and (min-width: 821px) {
	
	.sp { display: none !important;}
	
	a { transition: all 0.3s ease-out;}
	a:hover { opacity: 0.5;}
	
}
@media screen and (max-width: 820px) {
	
	.pc { display: none !important;}
	
}


/* ////////////////////////////////////////////////////////////////////////////////

	Header

//////////////////////////////////////////////////////////////////////////////// */

header {
  position: fixed;
  top: 30px;
  left: 60px;
  width: calc(100% - 120px);
  z-index: 1000;
  background-color: rgba(255,255,255,1.00);
  transition: background 0.3s ease-out;
  border-radius: 35px;
  border: #b9c9d7 solid 1px;
  overflow: hidden;
}

header .hdrMain {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: min(4vw, 20px);
  padding: 0 min(3vw, 15px) 0 min(4vw, 25px);
}

header .hdrLeft {
  display: flex;
  align-items: center;
  gap: min(6vw, 30px);
}
header h1 {
  width: min(22vw, 140px);
  line-height: 0;
}
header .meinNavi {
  display: flex;
  font-family: "Roboto", sans-serif;
  font-weight: 900;
}
header .meinNavi a {
  color: var(--mainColor);
  text-decoration: none;
  font-weight: bold;
  display: block;
  padding: min(2vw, 20px) min(2vw, 10px);
}

header .hdrBtn {
  display: flex;
  gap: min(2vw, 10px);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  letter-spacing: 0;
  
  font-size: min(2.8vw, 14px);
}
header .hdrBtn .hdrBtnYellow {
  display: block;
  color: var(--mainColor);
  text-decoration: none;
  background-color: var(--subColor);
  border-radius: 40px;
  padding: min(1vw, 5px) min(3vw, 20px);
}
header .hdrBtn .hdrBtnBlue {
  display: block;
  color: var(--subColor);
  text-decoration: none;
  background-color: var(--mainColor);
  border-radius: 40px;
  padding: min(1vw, 5px) min(3vw, 20px);
}



header .hdrSubMenu {
  border-top: #b9c9d7 solid 1px;
  padding: min(6vw, 30px);
  display: none;
}
header .hdrSubMenu .subMenuInr {
  display: flex;
}
header .hdrSubMenu .menuTtl {
  color: var(--mainColor);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: min(4.8vw, 36px);
  letter-spacing: 0.06em;
  line-height: 1;
  width: 220px;
}
header .hdrSubMenu .subMenuInr > ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: calc(100% - 220px);
  gap: 0 5%;
}
header .hdrSubMenu .subMenuInr > ul li {
  border-bottom: #b9c9d7 solid 1px;
  padding: min(2vw, 10px) 0;
  position: relative;
  width: 30%;
}
header .hdrSubMenu .subMenuInr > ul li::after {
  content: "";
  background: url(../images/ico_ir_arrow.svg) no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 0;
  width: 1.2em;
  height: 1.2em;
  transform: translateY(-50%);
}
header .hdrSubMenu .subMenuInr > ul li a {
  display: block;
  text-decoration: none;
  color: var(--mainColor);
  font-weight: bold;
}


#globalNavi {
  position: fixed;
  top: 0;
  left: 0;
  background-color: #222;
  color: #fff;
  z-index: 999;
  width: 100%;
  padding: min(20vw, 120px) 0 min(6vw, 60px);
  display: none;
}
#globalNavi .contentWrap {
  max-width: 1300px;
  display: flex;
  justify-content: space-between;
}
#globalNavi .menuWrap {
  width: 69%;
}
#globalNavi a {
  color: #fff;
  text-decoration: none;
}

#globalNavi .meinNavi {
  display: flex;
  gap: 0 30px;
  margin-bottom: min(7vw, 40px);
}
#globalNavi .meinNavi > ul {
  width: calc((100% - 60px) / 3);
}
#globalNavi .meinNavi > ul > li {
  border-bottom: #555 solid 1px;
}
#globalNavi .meinNavi > ul li a {
  display: block;
  font-size: min(3.6vw, 16px);
  font-weight: 900;
  line-height: 1.4;
  padding: min(3vw, 12px) 0;
  position: relative;
}
#globalNavi .meinNavi > ul li a.globalSubMenu::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url("../images/ico_company_menu.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
  transition: all 0.3s ease-out;
}
#globalNavi .meinNavi > ul li a.globalSubMenu.on::before {
  transform: translateY(-50%) rotate(180deg);
}
#globalNavi .meinNavi > ul li a[target="_blank"]::after {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  background: url("../images/ico_blank.svg") no-repeat center center;
  background-size: contain;
  vertical-align: middle;
  margin-left: 0.3em;
}

#globalNavi .meinNavi > ul li ul {
  display: none;
  padding-bottom: min(4vw, 20px);
}
#globalNavi .meinNavi > ul li ul li {
  padding-left: min(5vw, 25px);
  position: relative;
}
#globalNavi .meinNavi > ul li ul li::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 0.6em;
  height: 1px;
  background-color: #fff;
}
#globalNavi .meinNavi > ul li ul li a {
  font-size: min(3.2vw, 1 4px);
  padding: min(2vw, 10px) 0;
}


#globalNavi .menuBnr {
  line-height: 0;
  width: 26%;
}

#globalNavi .btmWrap {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0 min(6vw, 30px);
  line-height: 1.6;
}
#globalNavi .btmWrap p {
  margin-bottom: min(3vw, 15px);
  font-size: min(3vw, 12px);
}
#globalNavi .btmWrap .snsList {
  display: flex;
  gap: min(5vw, 25px);
}
#globalNavi .btmWrap .snsList li a i {
  color: #fff;
  font-size: min(5.8vw, 28px);
}

#globalNavi .btmWrap .subNavi {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: min(1vw, 5px) min(3.5vw, 20px);
}
#globalNavi .btmWrap .subNavi li a {
  font-size: min(3vw, 12px);
}


@media screen and (min-width: 821px) {
  
  
  #menuButton {
    display: none;
  }
  
}
@media screen and (max-width: 820px) {
  
  header {
    width: 94%;
    top: 4vw;
    left: 3%;
  }
  
  header .hdrMain {
    padding: min(3vw, 15px) min(3vw, 15px) min(3vw, 15px) min(4vw, 25px);
  }
  header .meinNavi {
    display: none;
  }
  
  
  header .hdrRight {
    display: flex;
    align-items: center;
    gap: min(2vw, 10px);
  }
  
  #menuButton {
    display: block;
    width: min(7vw, 35px);
    height: min(7vw, 35px);
    position: relative;
  }
  #menuButton span {
    display: block;
    background: var(--mainColor);
    width: 100%;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    transition: all 0.4s;
  }
  
  #menuButton span:nth-child(1) { transform: translateY(-600%) rotate(0deg);}
  #menuButton span:nth-child(2) { transform: translateY(500%) rotate(0deg);}
  #menuButton span:nth-child(3) { transform: translateY(-50%);}
  #menuButton.active span:nth-child(1) { transform: translateY(-50%) rotate(45deg); }
  #menuButton.active span:nth-child(2) { transform: translateY(-50%) rotate(-45deg);}
  #menuButton.active span:nth-child(3) { opacity: 0;}

  
  header .hdrSubMenu {
    display: none !important;
  }
  
  #globalNavi {
    overflow: auto;
    max-height: 100vh;
    max-height: 100svh;
  }
  #globalNavi .contentWrap {
    flex-direction: column;
    gap: min(10vw, 80px);
  }
  #globalNavi .menuWrap {
    width: 100%;
  }
  #globalNavi .meinNavi {
    flex-direction: column;
  }
  #globalNavi .meinNavi > ul {
    width: 100%;
  }
  
  #globalNavi .btmWrap {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: min(8vw, 30px);
  }
  #globalNavi .btmWrap .naviSns {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }
  #globalNavi .btmWrap p {
    margin-bottom: 0;
  }
  
  #globalNavi .btmWrap .subNavi {
    justify-content: flex-start;
  }
  #globalNavi .menuBnr {
    width: 70%;
    margin: 0 auto;
  }
}


/* ////////////////////////////////////////////////////////////////////////////////

	Footer

//////////////////////////////////////////////////////////////////////////////// */

footer {
  background-color: #222;
  color: #fff;
  overflow: hidden;
}
footer .ftrMain {
  display: flex;
  justify-content: space-between;
  max-width: 1180px;
  margin: 0 auto;
  padding: min(10vw, 80px) min(6vw, 60px);
}
footer .ftrMain .logoAndSns {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  width: 24%;
}
footer .ftrMain .logoAndSns .ftrLogo {
  width: 80%;
  line-height: 0;
  margin-bottom: min(6vw, 30px);
}
footer .ftrMain .logoAndSns .ftrSns p {
  text-align: center;
}
footer .ftrMain .logoAndSns .ftrSns .snsList {
  display: flex;
  justify-content: center;
  gap: min(7vw, 25px);
  margin-top: min(3vw, 10px);
}
footer .ftrMain .logoAndSns .ftrSns .snsList a {
  text-decoration: none;
}
footer .ftrMain .logoAndSns .ftrSns .snsList a i {
  color: #fff;
  font-size: min(7.4vw, 30px);
}

footer .ftrMain .ftrMenu {
  width: 72%;
  border-left: #555 solid 1px;
  padding-left: min(8vw, 50px);
}

footer .ftrMain .ftrMenu .ftrMenuMain {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: min(2vw, 10px);
  gap: min(1vw, 5px) min(6vw, 30px);
}
footer .ftrMain .ftrMenu .ftrMenuMain + .ftrMenuMain {
  margin-bottom: min(6vw, 30px);
}
footer .ftrMain .ftrMenu .ftrMenuMain li {
  line-height: 1.6;
  font-weight: bold;
}
footer .ftrMain .ftrMenu .ftrMenuMain a {
  color: #fff;
  text-decoration: none;
  font-size: min(3.4vw, 14px);
}
footer .ftrMain .ftrMenu .ftrMenuMain a[target="_blank"]::after {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  background: url(../images/ico_blank.svg) no-repeat center center;
  background-size: contain;
  vertical-align: middle;
  margin-left: 0.3em;
}

footer .ftrMain .ftrMenu .ftrMenuSub {
  display: flex;
  gap: min(2vw, 5px) min(5vw, 20px);
  flex-wrap: wrap;
}
footer .ftrMain .ftrMenu .ftrMenuSub + .ftrMenuSub {
  margin-top: min(1vw, 5px);
}
footer .ftrMain .ftrMenu .ftrMenuSub li a {
  color: #fff;
  text-decoration: none;
  font-size: min(3vw, 12px);
}



footer .ftrBottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: min(6vw, 30px) min(6vw, 60px);
  border-top: #555 solid 1px;
}
footer .ftrBottom .copyright {
  font-size: min(2.8vw, 10px);
}
footer .ftrBottom .toTop a {
  display: block;
  border: #fff solid 1px;
  color: #fff;
  text-decoration: none;
  text-align: center;
  padding: min(1vw, 5px) min(3vw, 15px) min(1vw, 5px) min(4vw, 20px);
  border-radius: 100px;
  font-size: min(3vw, 12px);
  font-feature-settings: "palt";
}

@media screen and (max-width: 820px) {
	
  footer .ftrMain {
    flex-direction: column;
    gap: min(8vw, 60px);
  }
	footer .ftrMain .logoAndSns {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  footer .ftrMain .logoAndSns .ftrLogo {
    width: 50%;
  }
  
  footer .ftrMain .ftrMenu {
    width: 100%;
    border-left: none;
    padding-left: 0;
    padding-top: min(6vw, 30px);
    border-top: #555 solid 1px;
  }
  
  footer .ftrMain .ftrMenu .ftrMenuMain {
    flex-direction: row;
    flex-wrap: wrap;
    height: auto;
    gap: min(1.4vw, 5px) min(5vw, 25px);
  }
  
  
  footer .ftrBottom {
    flex-direction: column-reverse;
    gap: min(6vw, 30px);
  }
}



/* ////////////////////////////////////////////////////////////////////////////////

	Top page

//////////////////////////////////////////////////////////////////////////////// */


#mainVisual {
  background-color: var(--subColor);
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
#mainVisual .mvLogo {
  width: min(60vw, 60vh);
  line-height: 0;
}


.sectionHead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: min(8vw, 60px);
}
.sectionHead h2 {
  color: var(--mainColor);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: min(6.4vw, 48px);
  letter-spacing: 0.06em;
  line-height: 1;
}
.sectionHead .moreBtn a {
  display: block;
  border: #b9c9d7 solid 1px;
  color: var(--mainColor);
  text-decoration: none;
  border-radius: 40px;
  font-size: min(3.2vw, 14px);
  font-weight: 600;
  padding: 0.2em 3em;
}


#news {
  padding-bottom: 0;
}

.newsList {
  border-bottom: #b9c9d7 solid 1px;
}
.newsList li {
  border-top: #b9c9d7 solid 1px;
  padding: min(4vw, 20px);
  display: flex;
}
.newsList li .date {
  font-size: min(3.4vw, 16px);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  width: 140px;
}
.newsList li .ttl {
  width: calc(100% - 140px);
  position: relative;
  padding-right: min(8vw, 60px);
}
.newsList li .ttl::after {
  content: "";
  background: url("../images/ico_ir_arrow.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 0;
  width: 1.4em;
  height: 1.4em;
  transform: translateY(-50%);
}
.newsList li .ttl a {
  text-decoration: none;
}

.newsCat {
  margin-top: min(8vw, 60px);
  display: flex;
  justify-content: center;
  gap: min(3vw, 15px);
}
.newsCat li {
  width: 21%;
}
.newsCat li a {
  display: block;
  color: #fff;
  text-decoration: none;
  background-color: var(--mainColor);
  border-radius: 40px;
  padding: min(1.8vw, 8px) min(4vw, 20px);
  font-size: min(2.9vw, 14px);
  font-weight: bold;
  text-align: center;
}

#company {
  background-color: var(--mainColor);
}
#company h2 {
  color: #fff;
}

.companyLogo {
  color: #fff;
  text-align: center;
  margin-bottom: min(8vw, 60px);
}
.companyLogo .logoImg {
  width: min(60vw, 460px);
  margin: 0 auto min(6vw, 30px);
}
.companyLogo p {
  font-size: min(3.4vw, 16px);
  line-height: 2;
}


.companyMsnu {
  display: flex;
  flex-wrap: wrap;
  gap: min(3vw, 15px) 2%;
  margin-bottom: min(3vw, 15px);
}
.companyMsnu li {
  width: 32%;
  background-color: #fff;
  border-radius: 10px;
}
.companyMsnu li a {
  display: block;
  padding: min(4vw, 20px);
  text-decoration: none;
  position: relative;
}
.companyMsnu li a::after {
  content: "";
  background: url("../images/ico_ir_arrow.svg") no-repeat center center;
  background-size: contain;
  position: absolute;
  bottom: min(4vw, 20px);
  right: min(4vw, 20px);
  width: 1.4em;
  height: 1.4em;
}
.companyMsnu li .menuttl {
  color: var(--mainColor);
  font-weight: bold;
  font-size: min(4.6vw, 18px);
  margin-bottom: min(4vw, 20px);
}
.companyMsnu li .menuttl span {
  color: #000;
  display: block;
  font-weight: normal;
  font-size: 0.6em;
}

.companyMsnu li .menuIcon {
  width: 20%;
  aspect-ratio: 1/1;
  display: flex;
  align-items: baseline;
}

.recruitArea {
  background-color: #fff;
  border-radius: 10px;
  padding: min(6vw, 40px);
  text-align: center;
}
.recruitArea h3 {
  color: var(--mainColor);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: min(4.8vw, 36px);
  letter-spacing: 0.06em;
  line-height: 1.4;
  margin-bottom: min(2vw, 10px);
}

.recruitBtn {
  margin-top: min(6vw, 30px);
  display: flex;
  justify-content: center;
  gap: min(3vw, 15px);
}
.recruitBtn li {
  width: 21%;
}
.recruitBtn li a {
  display: block;
  color: #fff;
  text-decoration: none;
  background-color: var(--mainColor);
  border-radius: 40px;
  padding: min(1.3vw, 8px) min(4vw, 20px);
  font-size: min(3.2vw, 14px);
  font-weight: bold;
  text-align: center;
}


.groupList {
  display: flex;
  flex-wrap: wrap;
  border: #b9c9d7 solid 1px;
  background-color: #b9c9d7;
  border-radius: 10px;
  overflow: hidden;
  gap: 1px;
}
.groupList li {
  width: calc((100% - 3px) / 4);
  padding: 4.5%;
  background-color: #fff;
}
.groupList li a {
  display: block;
  width: 100%;
  aspect-ratio: 1/0.7;
  line-height: 0;
}
.groupList li a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media screen and (max-width: 820px) {
	
  .newsList li {
    padding: min(4vw, 20px) 0;
    flex-direction: column;
    gap: min(2vw, 10px);
  }
  .newsList li .date {
    width: 100%;
  }
  .newsList li .ttl {
    width: 100%;
  }
  
  
  .newsCat {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: min(3vw, 15px) 0;
  }
  .newsCat li {
    width: 49%;
  }
  
  .companyMsnu {
    flex-direction: column;
  }
  .companyMsnu li {
    width: 100%;
  }
  .companyMsnu li a {
    display: flex;
    justify-content: space-between;
    padding-right: min(14vw, 80px);
  }
  .companyMsnu li .menuttl {
    margin-bottom: 0;
  }
  .companyMsnu li .menuIcon {
    width: 18%;
  }
  .companyMsnu li .menuIcon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  
  .recruitBtn {
    flex-direction: column;
    align-items: center;
  }
  .recruitBtn li {
    width: 70%;
  }
  
  .groupList li {
    width: calc((100% - 1px) / 2);
    padding: 8%;
  }


}



/* ////////////////////////////////////////////////////////////////////////////////

	lower

//////////////////////////////////////////////////////////////////////////////// */

main {
  margin-top: min(24vw, 160px);
  padding-bottom: min(14vw, 100px);
}
main h2 {
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  font-size: min(7.4vw, 48px);
  text-align: center;
  color: var(--mainColor);
  line-height: 1.4;
  margin-bottom: min(8vw, 60px);
}
main h3 {
  font-weight: bold;
  font-size: min(4.4vw, 28px);
  color: var(--mainColor);
  line-height: 1.4;
  margin-bottom: min(6vw, 30px);
}

@media screen and (max-width: 820px) {
  
  
  
}




/* ////////////////////////////////////////////////////////////////////////////////

	News

//////////////////////////////////////////////////////////////////////////////// */

.irTab {
  display: flex;
  border: #b9c9d7 solid 1px;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: min(8vw, 60px);
  background-color: #b9c9d7;
  gap: 1px;
  flex-wrap: wrap;
}
.irTab li {
  width: calc((100% - 5px) / 6);
  background-color: #fff;
}

.irTab li a {
  display: flex;
  height: 100%;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: var(--mainColor);
  text-decoration: none;
  font-size: min(3vw, 12px);
  font-weight: bold;
  padding: min(3vw, 15px) 0;
}
.irTab li a.current {
  background-color: var(--mainColor);
  color: #fff;
}


.newsHead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: min(6vw, 30px);
}
.newsHead h3 {
  margin-bottom: 0;
}

.newsHead .newsSelect {
  position: relative;
}
.newsHead .newsSelect::after {
  content: "";
  display: block;
  background: url("../images/ico_select_arrow.svg") no-repeat center center;
  background-size: contain;
  width: 1.2em;
  height: 1em;
  position: absolute;
  top: 50%;
  right: min(3vw, 15px);
  transform: translateY(-50%);
}
.newsHead .newsSelect select {
  display: block;
  padding: min(2.8vw, 12px) min(9vw, 50px) min(2.8vw, 12px) min(4vw, 20px);
  border: #b9c9d7 solid 1px;
  border-radius: 8px;
  font-weight: bold;
}


.newsWrap {
  display: none;
}
#news01 {
  display: block;
}


.dateTab {
  color: var(--mainColor);
  margin-bottom: min(2vw, 10px);
}
.titleArea {
  border-bottom: #b9c9d7 solid 1px;
  padding-bottom: min(3vw, 15px);
  margin-bottom: min(6vw, 30px);
}
.titleArea h3 {
  margin-bottom: 0;
}

.articleBody {
  margin-bottom: min(8vw, 60px);
}
.articleBody h4 {
  font-size: min(4vw, 20px);
  font-weight: bold;
  border-left: #cfd8dc solid 8px;
  padding-left: min(2vw, 10px);
  line-height: 1.6;
  margin-top: min(8vw, 60px);
  margin-bottom: min(6vw, 30px);
}
.articleBody h4:first-child {
  margin-top: 0;
}
.articleBody h5 {
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  margin-top: min(6vw, 30px);
  margin-bottom: min(2vw, 10px);
}
.articleBody p {
  margin-bottom: min(4vw, 20px);
}
.articleBody img {
  display: block;
  border: #000 solid 2px;
  border-radius: 10px;
  max-width: min(100%, 860px);
  margin: min(7vw, 40px) auto;
}

.articleBody ul {
  list-style: disc;
  padding-left: min(4vw, 20px);
  margin-bottom: min(6vw, 30px);
}

.articleBody ol {
  list-style: decimal;
  padding-left: min(4vw, 20px);
  margin-bottom: min(6vw, 30px);
}

.articleBody table {
  width: 100%;
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0px;
  border-radius: 10px;
  outline: #000 solid 1px;
  margin: min(6vw, 30px) 0;
}
.articleBody table th {
  background-color: #fef200;
  padding: min(2vw, 10px) min(2vw, 15px);
  border: #000 solid 1px;
  vertical-align: middle;
}
.articleBody table td {
  background-color: #fff;
  padding: min(2vw, 10px) min(3vw, 30px);
  border: #000 solid 1px;
}
.articleBody table tr:first-child th:first-child,
.articleBody table tr:first-child td:first-child { border-top-left-radius: 10px;}
.articleBody table tr:first-child th:last-child,
.articleBody table tr:first-child td:last-child { border-top-right-radius: 10px;}
.articleBody table tr:last-child th:first-child,
.articleBody table tr:last-child td:first-child { border-bottom-left-radius: 10px;}
.articleBody table tr:last-child th:last-child,
.articleBody table tr:last-child td:last-child { border-bottom-right-radius: 10px;}

.articleBody .alignRight {
  text-align: right;
}
.articleBody .alignLeft {
  text-align: right;
}
.articleBody .alignCenter {
  text-align: center;
}

.articleBody .eventLinkBtn {
  margin-top: min(6vw, 30px);
}
.articleBody .eventLinkBtn a {
  display: block;
  width: fit-content;
  min-width: min(62vw, 320px);
  max-width: 100%;
  margin: 0 auto;
  background-color: #fef200;
  border: #000 solid 2px;
  text-decoration: none;
  border-radius: 6px;
  padding: min(3vw, 15px) min(7vw, 50px) min(2.8vw, 13px);
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  text-align: center;
}

.floatRight {
  float: right;
}

.articleBody table .buyIcon {
  line-height: 0;
  display: flex;
  gap: min(2vw, 10px);
}
.articleBody table .buyIcon img {
  width: min(8vw, 70px);
  margin: 0;
  border: #dddddd solid 1px;
  border-radius: 0;
}

.backBtn a {
  display: block;
  border-radius: 6px;
  border: #000 solid 2px;
  text-align: center;
  width: fit-content;
  padding: min(2vw, 10px) min(7vw, 50px) min(1.8vw, 8px);
  margin: 0 auto;
  text-decoration: none;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
  background-color: #fff;
}

@media screen and (min-width: 821px) {
  .irTab li a:hover {
    opacity: 1;
    background-color: var(--mainColor);
    color: #fff;
  }
}
@media screen and (max-width: 820px) {
  
  .irTab li {
    width: calc((100% - 1px) / 2);
  }
}


/* ////////////////////////////////////////////////////////////////////////////////

	About

//////////////////////////////////////////////////////////////////////////////// */

.companyAbout {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.companyAbout dt {
  width: 15%;
  color: var(--mainColor);
  border-bottom: var(--mainColor) solid 1px;
  padding: min(3vw, 18px) 0;
  font-weight: bold;
}
.companyAbout dd {
  width: 80%;
  border-bottom: #b9c9d7 solid 1px;
  padding: min(3vw, 18px) 0;
}




@media screen and (max-width: 820px) {
  
  .companyAbout {
    display: block;
  }
  .companyAbout dt {
    width: 100%;
    border-bottom: #b9c9d7 solid 1px;
  }
  .companyAbout dd {
    width: 100%;
    border-bottom: var(--mainColor) solid 1px;
  }
  
  
  
}


/* ////////////////////////////////////////////////////////////////////////////////

	IR

//////////////////////////////////////////////////////////////////////////////// */

.irReport h4 {
  font-size: min(3.8vw, 20px);
  font-weight: bold;
  margin-bottom: min(4vw, 20px);
}
.irReport .reportList {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: min(6vw, 30px);
  padding-bottom: min(6vw, 30px);
  border-bottom: #b9c9d7 solid 1px;
}
.irReport .reportList dt {
  width: 30%;
  font-size: min(3.4vw, 16px);
  font-weight: bold;
}
.irReport .reportList dd {
  width: 70%;
  display: flex;
  flex-wrap: wrap;
}
.irReport .reportList dd p {
  width: 50%;
}

.irReport .icoPdf {
  width: 1.2em;
  vertical-align: middle;
  margin-left: 0.3em;
}

.irReport h5 {
  font-size: min(3.6vw, 18px);
  margin-bottom: min(4vw, 20px);
}

.reportListAnchor {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: min(8vw, 60px);
}
.reportListAnchor li {
  width: calc((100% - 35px) / 8);
}
.reportListAnchor li a {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: bold;
  text-decoration: none;
  border: #b9c9d7 solid 1px;
  color: var(--mainColor);
  padding: min(1vw, 5px);
}


.graph-box {
  margin-bottom: 35px;
}

.graph-box__inner {
  width: calc(100% - 30px);
  height: 230px;
  overflow: hidden;
  position: relative;
  z-index: 3;
}

.graph-box__wrap {
  position: relative;
}

.graph-box__wrap::after {
  clear: both;
  content: '';
  display: block;
}

.graph-box__info {
  position: absolute;
  top: -38px;
  right: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  pointer-events: none;
  font-size: min(3.2vw, 14px);
}

.graph-box__hover-info {
  display: none;
  font-size: 1.1rem;
  background-color: rgba(255, 255, 255, 0.7);
  border: 1px solid #e7e7e7;
  padding: 10px;
  position: absolute;
  z-index: 10;
}

.graph-box__text {
  margin-left: 15px;
}

.graph-box__text-red {
  color: #f30;
  margin-right: 6px;
}

.graph-box__text-blue {
  color: #114981;
  margin-right: 6px;
}

.graph-box__sideBox {
  width: 30px;
  float: left;
  overflow: hidden;
  height: 230px;
}

.graph-box__value {
  font-size: min(3vw, 10px);
  height: 41.5px;
}


.graph-box__month {
  display: table-cell;
  text-align: center;
  line-height: 1.2;
  font-size: min(3vw, 10px);
}


@media screen and (min-width: 769px) {
  .graph-box__month br {
    display: none;
  }
}

.graph-box__dateBox {
  padding-top: 8px;
  display: table;
  width: 100%;
  table-layout: fixed;
  margin-left: auto;
}

.graph-box__footer {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 35px 0 0;
}

@media screen and (max-width: 768px) {
  .graph-box__footer {
    display: block;
  }
}

.graph-box__menu-title {
  margin-right: 20px;
}

@media screen and (max-width: 768px) {
  .graph-box__menu-title {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    padding: 10px 50px 10px 20px;
    margin: 0;
    border: 1px solid #e2e2e2;
    border-radius: 3px;
  }
}

.graph-box__menu-title--open .graph-box__menu-title-icon {
  -webkit-transform: rotate(0);
  transform: rotate(0);
}

.graph-box__menu-selected {
  display: none;
}

@media screen and (max-width: 768px) {
  .graph-box__menu-selected {
    display: block;
    margin-left: 15px;
  }
}

.graph-box__menu-title-icon {
  display: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

@media screen and (max-width: 768px) {
  .graph-box__menu-title-icon {
    position: absolute;
    top: 46%;
    right: 20px;
    display: block;
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
}

.graph-box__menu {
  text-align: center;
}

@media screen and (max-width: 768px) {
  .graph-box__menu {
    position: relative;
    top: -3px;
    display: none;
    border: 1px solid #e2e2e2;
    border-top: 0;
    border-radius: 3px;
    background-color: #fff;
    z-index: 1;
  }
}

.graph-box__menu-list {
  display: inline-block;
  font-size: min(3.2vw, 14px);
  padding: 8px 5px;
}

@media screen and (max-width: 768px) {
  .graph-box__menu-list {
    display: block;
    text-align: left;
    padding: 10px 5px 10px 20px;
  }

  .graph-box__menu-list:last-child {
    border-bottom: 0;
  }
}

.graph-box__menu-trigger {
  position: relative;
  display: inline-block;
  text-decoration: none;
  padding: 0 7px 0 27px;
}

@media screen and (max-width: 768px) {
  .graph-box__menu-trigger {
    display: block;
  }
}

.graph-box__menu-trigger::before {
  content: '';
  position: absolute;
  top: 1px;
  left: 0;
  width: 18px;
  height: 18px;
  background-color: #fbfbfb;
  border: 1px solid #e2e2e2;
  border-radius: 50%;
}

.graph-box__menu-trigger--active {
  cursor: default;
}

.graph-box__menu-trigger--active::after {
  position: absolute;
  top: 7px;
  left: 6px;
  display: block;
  content: '';
  width: 8px;
  height: 8px;
  background-color: #004686;
  border-radius: 50%;
}


.js-table-graph {
  margin-bottom: min(8vw, 60px);
}
.table-graph {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px solid #e2e2e2;
}

.table-graph th,
.table-graph td {
  text-align: center;
  padding: 12px;
  font-size: min(3.2vw, 14px);
  border-bottom: 1px solid #e2e2e2;
}

.table-graph th:last-child,
.table-graph td:last-child {
  border-bottom: 0;
}

.table-graph th {
  color: #fff;
  background-color: var(--mainColor);
}

.table-graph tbody tr:nth-child(even) {
  background-color: #f1f4f9;
}

/* モバイル表示用（768px以下） */
@media screen and (max-width: 768px) {
  .table-graph th,
  .table-graph td {
    border: 0;
    border-right: 1px solid #e2e2e2;
  }

  .table-graph th:first-child,
  .table-graph td:first-child {
    width: 30%;
  }

  .table-graph th:nth-child(2),
  .table-graph td:nth-child(2) {
    width: 35%;
  }

  .table-graph th:last-child,
  .table-graph td:last-child {
    width: 35%;
  }
}

/* タブレット以上（769px以上） */
@media screen and (min-width: 769px) {
  .table-graph {
    table-layout: fixed;
  }

  .table-graph th,
  .table-graph td {
    display: block;
    padding: 8px 2px;
  }

  .table-graph tbody {
    vertical-align: top;
    width: 100%;
    font-size: 0;
  }

  .table-graph tbody tr {
    border-left: none;
    width: 7.5%;
    white-space: nowrap;
    display: inline-block;
    box-sizing: border-box;
  }

  .table-graph tbody tr:first-child {
    width: 10%;
  }
}

/* タブレット中間（769px〜920px） */
@media screen and (min-width: 769px) and (max-width: 920px) {
  .table-graph th,
  .table-graph td {
  }
}

/* デスクトップ以上（1040px以上） */
@media screen and (min-width: 1040px) {
  .table-graph th,
  .table-graph td {
  }
}

/* キャプション */
.table-graph-caption {
  margin-top: 15px;
}


.scheduleImg {
  line-height: 0;
  padding-bottom: min(6vw, 30px);
  margin-bottom: min(8vw, 60px);
  border-bottom: #b9c9d7 solid 1px;
}

@media screen and (max-width: 820px) {
  
  .reportListAnchor li {
    width: calc((100% - 15px) / 4);
  }
  
  
  .irReport .reportList {
    flex-direction: column;
  }
  .irReport .reportList dt {
    width: 100%;
    margin-bottom: min(3vw, 15px);
  }
  .irReport .reportList dd {
    width: 100%;
    flex-direction: column;
    gap: min(1vw, 5px);
  }
  .irReport .reportList dd p {
    width: 100%;
  }
  
  .graph-box {
    margin-top: min(15vw, 160px);
  }
  
}

/* ////////////////////////////////////////////////////////////////////////////////

	Contact

//////////////////////////////////////////////////////////////////////////////// */

.contactWrap {
  border: var(--mainColor) solid 1px;
  border-radius: 10px;
  padding: min(5vw, 30px);
  margin-bottom: min(5vw, 25px);
  color: var(--mainColor);
}

main .contactWrap h3 {
  font-size: min(4.2vw, 24px);
  border-bottom: #b9c9d7 solid 1px;
  padding-bottom: min(2vw, 10px);
}
main .contactWrap p {
  font-size: min(3.4vw, 16px);
}

.contactWrap .tel {
  font-size: min(8.4vw, 46px);
  font-family: "Roboto", sans-serif;
  font-weight: 900;
  line-height: 1.2;
  display: flex;
  gap: min(3vw, 15px);
  margin-bottom: 0;
  margin-top: min(2vw, 10px);
}
.contactWrap .tel::before {
  content: "";
  display: block;
  width: 1.2em;
  background: url(../images/ico_freedial_bl.jpg) no-repeat center center;
  background-size: contain;
}
.contactWrap .tel a {
  text-decoration: none;
  color: var(--mainColor);
}

@media screen and (max-width: 820px) {
  
  
}

