@charset "utf-8";
#contents {
 width: 100%;
 min-width: auto;
 display: block;
 padding: 0;
}
/*--------------------------------------
visArea
---------------------------------------*/
#visArea {
 background: url("img/mv.jpg") no-repeat right top / cover;
 min-height: 60rem;
 padding:10rem 0 0;
}

@media screen and (max-width: 1900px) {
 #visArea {
background: url("img/mv.jpg") no-repeat right -180px top / cover;
min-height: 60rem;
 padding:10rem 0 0;
}
}

#visArea .mainArea {
 width: 110rem;
 margin: 0 auto;
}
#visArea .mainAreaInner { width: 54%; }
#visArea .title {
 margin: 3.5rem 0 2rem;
 font-size: 4rem;
 font-weight: 700;
 line-height: 1.4;
 letter-spacing: 0.05em;
}
#visArea .title span.small { font-size: 3rem; }
#visArea .title span.big {
 color: #003a9b;
 font-size: 5rem;
 letter-spacing: 0.1em;
}
/*--------------------------------------
addParts
---------------------------------------*/
/* title
---------------------------------------*/
.block-head {
 position: relative;
 margin: 7rem 0 5rem;
}
.block-head::before {
 position: absolute;
 left: calc(50% - 50vw);
 top: 0;
 width: calc(100% + (50vw - 50%) - 2rem);
 height: 100%;
 background: #092547;
 box-sizing: border-box;
 content: "";
 pointer-events: none;
 z-index: -1;
}
.block-head .box { padding-right: 5rem; }
.block-head .box::before {
 position: absolute;
 left: calc(50% - 50vw);
 top: -2rem;
 width: calc(100% + (50vw - 50%));
 height: 100%;
 border: 2px solid #000;
 border-left: none;
 content: "";
 pointer-events: none;
}
.block-head .box::after {
 content: "";
 width: 100%;
 height: 49px;
 background: url("img/block-head_company.png") no-repeat left top / auto 100%;
 position: absolute;
 left: -9.5rem;
 top: -68px;
}
.block-head .title {
 padding: 2rem 0 6rem 0;
 color: #fff;
 font-size: 4rem;
 font-weight: 700;
 line-height: 1.4;
}
.block-head .title .small { font-size: 3rem; }
.block-head .title a {
 padding: 0 3rem 0 0;
 background: url("img/arrow01_white.svg") no-repeat right center;
 background-size: 20px auto;
 color: inherit;
 text-decoration: none;
}
/* addParts02
---------------------------------------*/
.addParts02 {
 background: url("img/addParts02_bg.jpg") repeat-y left top / 100% auto;
    margin-bottom: 5rem;
}
.addParts02 .addParts-title { color: #000; }
.addParts02-company {
 position: relative;
 margin: 0 0 10rem;
 padding: 4.4rem;
 background: #fff;
}
.addParts02-company:last-child { margin: 0; }
.addParts02 .catch-1 {
 background: #083151;
 border-radius: 8px;
 text-align: center;
 padding: 2.1rem 1rem;
 font-size: 2.4rem;
 line-height: 1.4;
 color: #fff;
 font-weight: 700;
}
.addParts02 .catch-1 .big {
 color: #fbeb43;
 font-size: 3rem;
}
.addParts02 .catch-2 {
 margin: 5rem 0 0;
 font-size: 2.8rem;
 font-weight: 700;
 line-height: 1.4;
 color: #003a9b;
 text-align: center;
}
.addParts02 .name {
 margin: 3.2rem 0 0;
 font-size: 2.8rem;
 font-weight: 700;
 line-height: 1.4;
 text-align: center;
}
.addParts02 .fig {
 width: 495px;
 text-align: center;
 max-width: 80%;
 margin: 6.5rem auto 0;
}
.addParts02 .title {
 margin: 9.5rem 0 4rem;
 font-size: 2.6rem;
 font-weight: 700;
 line-height: 1.4;
 text-align: center;
}
.block-point {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 margin: 8rem 0 0 0;
}
.block-point .box {
 position: relative;
 width: calc((100% - 2.4rem) / 3);
 padding: 4rem 2.3rem 3rem 2.3rem;
 background: #f5f5f5;
}
.block-point .box::before {
 position: absolute;
 left: 1.3rem;
top: -2.5rem;
    width: 14rem;
    height: 5rem;
 content: "";
 background: url("img/block-point_01.png") no-repeat left top / auto 100%;
}
.block-point .box:nth-child(2)::before { background-image: url("img/block-point_02.png"); }
.block-point .box:nth-child(3)::before { background-image: url("img/block-point_03.png"); }
.block-point .box-head {
 display: flex;
 align-items: center;
 margin: 0 0 2rem 0;
}
.block-point .box-head .ttl {
 color: #003a9b;
 font-size: 2rem;
 font-weight: 700;
 line-height: 1.4;
}
.block-point .box-body p:not([class]) { margin: 0; }
.addParts02 .readmore-content table { margin: 0; }
.addParts02 .readmore-content table td .tag {
 display: flex;
 flex-wrap: wrap;
 gap: 2.4rem 1.4rem;
}
.addParts02 .readmore-content table td .tag div {
 font-size: 1.4rem;
 line-height: 1.3;
 background-color: #1e6396;
 color: #fff;
 padding: 0.8rem 1rem;
}
.addParts02 .readmore-content table td .tag div.small {
 background: none;
 color: #000;
}
.addParts02 .readmore-content table td .tag + .tag { margin-top: 2.4rem; }
.addParts02 table th { width:24%; }
/* youtube */
.yt-box {
 width: 89rem;
 margin: 0 auto;
 aspect-ratio: 16 / 9;
}
.yt-box iframe {
 width: 100%;
 height: 100%;
}
.yt-box + .caption { text-align: center; }
/* read more */
.readmore-box {
 position: relative;
}
.readmore-content {
 height: 240px;
 overflow-y: hidden;
 position: relative;
 margin-bottom: 6rem;
 padding-bottom: 10rem;
}
.readmore-content::after {
 content: '';
 position: absolute;
 width: 100%;
 bottom: 0;
 height: 140px;
 background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 40%);
}
.readmore-label {
 display: block;
 text-align: center;
 width: 455px;
 max-width: 90%; 
 position: absolute; 
 bottom: 0;
 left: 50%;
 transform: translateX(-50%);
 z-index: 20; 
}
.readmore-label::before {
 content: "\7D9A\304D\3092\8AAD\3080";
 display: flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 font-size: 1.5rem;
 font-weight: 700;
 line-height: 1.4; 
 padding: 2.4rem 4.5rem;
 background: #efefef;
 border-radius: 1000px;
 box-shadow: 3px 4px 0px 0px #767676;
 left: 50%;
 cursor: pointer;
 margin: 0 auto;
}
.readmore-label::after {
 position: absolute;
 right: 3rem;
 top: 50%;
 transform: translateY(-50%);
 content: "";
 width: 1.2rem;
 height: 1.2rem;
 background: url(img/acc_bg_01.png) no-repeat center 50% / 100% auto; 
}
.readmore-check { display: none; }
.readmore-check:checked ~ .readmore-label::before {
 content: "\9589\3058\308B";
 display: flex;
 align-items: center;
 justify-content: center;
 width: 455px;
 max-width: 90%; 
 font-size: 1.5rem;
 font-weight: 700;
 line-height: 1.4; 
 padding: 2.4rem 4.5rem;
 background: #efefef;
 border-radius: 1000px;
 box-shadow: 3px 4px 0px 0px #767676;
 left: 50%;
 cursor: pointer;
 margin: 0 auto;
}
.readmore-check:checked ~ .readmore-content {
 height: auto;
 display: flex;
}
.readmore-check:checked ~ .readmore-content::after { content: none; }
.readmore-check:checked ~ .readmore-label::after {
 position: absolute;
 right: 3rem;
 top: 50%;
 transform: translateY(-50%);
 content: "";
 width: 1.2rem;
 height: 1.2rem;
 background: url(img/acc_bg_02.png) no-repeat center 50% / 100% auto; 
}
/*--------------------------------------
addParts03
---------------------------------------*/
/*--------------------------------------
addParts04
---------------------------------------*/
.addParts04 .block {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 margin: 0 0 6rem 0;
}
.addParts04 .block .box-fig {
 width: 52.9rem;
 text-align: center;
}
.addParts04 .block .box-txt {
 width: calc(100% - 52.9rem);
 padding: 0 3rem 0 0;
}
.addParts04 .block .ttl {
 position: relative;
 margin: 0 0 3rem 0;
 padding: 1rem 0 7rem 2rem;
 background: #083151 url("img/block_ttl_prossessing.png") no-repeat left 2rem bottom 2.2rem / auto 12px;
 color: #fff;
 font-size: 3.6rem;
 font-weight: 700;
 letter-spacing: 0.15em;
 line-height: 1.4;
}
.addParts04 .block .ttl::after {
 content: "";
 width: 100%;
 height: 2px;
 background-color: #fff;
 position: absolute;
 left: 0;
 bottom: 4.7rem;
}
.addParts04 .block .ttl a {
 padding: 0 4rem 0 0;
 background: url("img/arrow01_white.svg") no-repeat right center;
 background-size: 20px auto;
 color: inherit;
 text-decoration: none;
}
.addParts04 .block p:not([class]) {
 margin: 0 0 0 1rem;
}
/*--------------------------------------
addParts05
---------------------------------------*/
.addParts05 {
 background: url("img/index_bg01.png") no-repeat right 0 top 20rem / 476px auto;
}
.addParts05 .block-head .box::after { background-image: url("img/block-head_type.png"); }
/*--------------------------------------
addParts06
---------------------------------------*/
/*--------------------------------------
addParts07
---------------------------------------*/
.addParts07 .accordion-item + .btn-link { margin-top: 3rem; }






@media screen and (max-width: 480px) {
 /*--------------------------------------
 visArea
 ---------------------------------------*/
 #visArea {
  min-height: auto;
  background: none;
  padding: 0;
 }
 #visArea .mainArea,
 #visArea .mainAreaInner { width: 100%; }
 #visArea .bg {
  background: url("img/mv.jpg") no-repeat left 50% / 130% auto;
  aspect-ratio: 1480 / 610;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 2rem;
 }
 #visArea .logo { width: 100px; }
 #visArea .title {
  font-size: 4vw;
  letter-spacing: normal;
  margin: 1rem 0 0;
 }
 #visArea .title span.small { font-size: 3vw; }
 #visArea .title span.big {
  font-size:6.2vw;
  letter-spacing: normal;
 }
 #visArea .mainTxtBox {
  padding: 2rem;
 }
 /*--------------------------------------
 addParts
 ---------------------------------------*/
 .block-head { margin: 4.3rem 0 2rem 0; }
 .block-head .box { padding-right: 4rem; }
 .block-head .box::after {
  height: 24px;
  left: 0;
  top: -43px;
 }
 .block-head .title {
  width: 100%;
  padding: 2rem 0 4rem 0;
  font-size: 2.4rem;
  letter-spacing: 0;
 }
 .block-head .title .small { font-size: 1.8rem; }
 .block-head .title a {
  padding: 0 2rem 0 0;
  background-size: 16px auto;
 }
 /* addParts02
 ---------------------------------------*/
 .addParts02-company {
  margin: 0 0 6rem;
  padding: 1.4rem;
 }
 .addParts02 .catch-1 { font-size: 1.6rem; }
 .addParts02 .catch-1 .big { font-size: 2.1rem; }
 .addParts02 .catch-2 {
  margin: 3rem 0 0;
  font-size: 2rem;
 }
 .addParts02 .name {
  margin: 3rem 0 0;
  font-size: 1.8rem;
 }
 .addParts02 .fig {
  width: 80%;
  margin: 3rem auto 0;
 }
 .addParts02 .title {
  margin: 6rem 0 2rem 0;
  font-size: 2rem;
 } 
 .block-point {
  display: block;
  margin: 0;
 }
 .block-point .box {
  width: 100%;
  margin: 5rem 0 0 0;
  padding: 3rem 1.8rem 2rem;
 }
 .block-point .box::before {
  left: 2rem;
  top: -2rem;
  height: 4rem;
 }
 .block-point .box-head .ttl { font-size: 1.8rem; margin-top: 1.5rem;}
 .addParts02 .readmore-content table td .tag { gap: 1rem 1rem; }
 .addParts02 .readmore-content table td .tag div {
  font-size: 1.2rem;
  padding: 0.8rem;
 }
 .addParts02 .readmore-content table td .tag + .tag { margin-top: 1rem; }
 .yt-box { width: 100%; }
 .addParts02 table th { width:7.5em; }
 /*--------------------------------------
 addParts03
 ---------------------------------------*/
 /*--------------------------------------
 addParts04
 ---------------------------------------*/
 .addParts04 .block {
  display: block;
  margin: 0 0 6rem 0;
 }
 .addParts04 .block .box-fig {
  width: 100%;
  padding: 0;
 }
 .addParts04 .block .box-txt {
  width: 100%;
  padding: 0;
 }
 .addParts04 .block .ttl {
  margin: 0 0 2rem 0;
  padding: 1rem 0 6.4rem 1rem;
  font-size: 2.4rem;
  letter-spacing: 0;
  background-size: auto 7px;
  background-position: left 10px bottom 20px;
 }
 .addParts04 .block .ttl::after { height: 1px; }
 .addParts04 .block .ttl a {
  padding: 0 3rem 0 0;
  background-size: 16px auto;
 }
 /*--------------------------------------
 addParts05
 ---------------------------------------*/
 /*--------------------------------------
 addParts06
 ---------------------------------------*/
 /*--------------------------------------
 addParts07
 ---------------------------------------*/
}
