@charset "UTF-8";

/* ----------------------------------------------------------------
	main-image
---------------------------------------------------------------- */
.main-image {
  width: calc(100% - 80px);
  height: calc(100svh - 130px);
  margin: 90px auto 40px;
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}
.main-image .video {
  object-fit: cover;
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
}
.main-image::after {
  content: "";
  display: block;
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background: rgba(26, 26, 30, 0.25);
  z-index: 2;
}
.main-image h2 {
  position: absolute;
  z-index: 3;
  left: 6.48vw;
  bottom: 5.52vw;
  color: #fff;
  font-size: 4.97vw;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
}
.main-image h2 span {
  display: block;
  font-size: 2.62vw;
  font-weight: 400;
  letter-spacing: 0.04em;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  .main-image {
    width: 88.61vw;
    height: calc(100svh - (50px + 5.7vw));
    margin: 50px auto 5.7vw;
    border-radius: 20px;
  }
  .main-image h2 {
    left: 9.49vw;
    bottom: 8.1vw;
    font-size: 12.15vw;
  }
  .main-image h2 span {
    font-size: 4.81vw;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	.intro
---------------------------------------------------------------- */
.intro {
  width: 100%;
  min-height: 80.55vw;
  position: relative;
  padding: min(17.24vw,250px) 0 min(6.21vw,90px) min(12.69vw,184px);
}
.intro .text {
  position: relative;
  z-index: 5;
  width: min(31.03vw,450px);
  padding-top: 55px;
}
.intro .text::before {
  content: "";
  display: block;
  width: 42px;
  height: 32px;
  background: url("../images/common/icon.svg") left top / contain no-repeat;
  position: absolute;
  top: 0;
  left: 0;
}
.intro .text h2 {
  font-size: 40px;
  font-weight: 700;
  margin-bottom: 40px;
}
.intro .text dl dd {
  font-size: 20px;
  padding-bottom: 1.6em;
  line-height: 1.9;
}
.intro .img01 {
  position: absolute;
  right: 0;
  top: min(8.83vw,128px);
  z-index: 2;
  width: 48.28vw;
}
.intro .img02 {
  position: absolute;
  right: 0;
  top: min(8.83vw,128px);
  z-index: 1;
  width: 100%;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  .intro {
    width: 100%;
    min-height: inherit;
    padding: 20.25vw 0 130.38vw 0;
  }
  .intro .text {
    width: 69.62vw;
    padding-top: 10.13vw;
    margin: 0 auto;
  }
  .intro .text::before {
    width: 7.59vw;
    height: 5.57vw;
  }
  .intro .text h2 {
    font-size: 6.58vw;
    margin-bottom: 4.43vw;
  }
  .intro .text dl dd {
    font-size: 3.54vw;
  }
  .intro .img01 {
    top: inherit;
    bottom: 0;
    width: 100%;
  }
  .intro .img02 {
    top: inherit;
    bottom: 0;
    width: 100%;
  }
}/* Smartphone End */

/* ----------------------------------------------------------------
	.service
---------------------------------------------------------------- */
.service {
  position: relative;
  width: min(94.48vw,1370px);
  margin: 0 auto 9.1vw;
  border-radius: 20px;
  background: #F1891A;
  padding: min(6.9vw,100px) 0 min(3.1vw,45px);
}
.service::after {
  content: "";
  display: block;
  width: min(70.62vw,1024px);
  height: min(50.97vw,739px);
  position: absolute;
  z-index: 1;
  left: 0;
  top: min(3.45vw,50px);
  background: url("../images/top/service_pc_bg.png") left top / contain no-repeat;
  mix-blend-mode: multiply;
}
.service dl {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	width: min(81.38vw,1180px);
	margin: 0 auto min(5.52vw,80px);
  position: relative;
  z-index: 2;
  align-items: center;
}
.service dl dt {
  font-size: 98px;
  color: #fff;
  display: flex;
  align-items: center;
}
.service dl dt span {
  display: inline-block;
  font-size: 18px;
  color: #fff;
  padding-left: 1.72vw;
}
.service dl dd {
  width: 270px;
  height: 74px;
}
.service dl dd a {
  width: 270px;
  height: 74px;
  position: relative;
  border-radius: 37px;
  background: #fff;
  padding-left: 35px;
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  color: #F1891A;
}
.service dl dd a > img {
  width: 12px;
  margin-left: 28px;
  transition: transform .3s ease-in-out;
}
.service dl dd a:hover > img {
  transform: translateX(5px);
}
.service ul {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	width: min(81.38vw,1180px);
	margin: 0 auto;
  position: relative;
  z-index: 2;
}
.service ul li {
  width: 31.35%;
}
.service ul li a {
  display: block;
  color: #fff;
  position: relative;
}
.service ul li a::after {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  position: absolute;
  right: 5px;
  bottom: 0;
  background: url("../images/common/arrow_circle.svg") right bottom / contain no-repeat;
  transition: transform .3s ease-in-out;
}
.service ul li a:hover::after {
  transform: translateX(5px);
}
.service ul li img {
  border-radius: 20px;
  margin-bottom: min(2.07vw,30px);
}
.service ul li h3 {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: min(1.38vw,20px);
}
.service ul li p {
  font-size: 16px;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  .service {
    width: 88.61vw;
    margin: 0 auto 18.35vw;
    padding: 13.92vw 9.24vw 9.24vw;
  }
  .service::after {
    width: 100%;
    height: 132.41vw;
    top: 0;
    background: url("../images/top/service_mb_bg.png") left top / contain no-repeat;
    mix-blend-mode: multiply;
  }
  .service dl {
    width: 100%;
    margin: 0 auto 12.15vw;
  }
  .service dl dt {
    display: block;
    font-size: 12.41vw;
    line-height: 1.25;
    margin-bottom: 9.49vw;
  }
  .service dl dt span {
    display: block;
    font-size: 3.04vw;
    padding-left: 0;
  }
  .service dl dd {
    width: 270px;
    height: 74px;
  }
  .service dl dd a {
    width: 54.43vw;
    height: 12.66vw;
    border-radius: 6.33vw;
    padding-left: 7.59vw;
    font-size: 3.29vw;
  }
  .service dl dd a > img {
    width: 2.28vw;
    margin-left: 3.04vw;
  }
  .service dl dd a:hover > img {
    transform: translateX(0px);
  }
  .service ul {
    width: 100%;
  }
  .service ul li {
    width: 100%;
    margin-bottom: 6.08vw;
  }
  .service ul li a::after {
    width: 6.84vw;
    height: 6.84vw;
    right: 0;
  }
  .service ul li a:hover::after {
    transform: translateX(0px);
  }
  .service ul li img {
    border-radius: 20px;
    margin-bottom: 5.7vw;
  }
  .service ul li h3 {
    font-size: 5.57vw;
    margin-bottom: 2.53vw;
  }
  .service ul li p {
    font-size: 3.54vw;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	.company-info
---------------------------------------------------------------- */
.company-info {
  width: 100%;
  position: relative;
  padding: min(50.76vw,736px) 0 0;
}
.company-info::before {
  content: "";
  display: block;
  position: absolute;
  left: 19.93vw;
  top: 16.55vw;
  z-index: 2;
  width: min(73.17vw,1061px);
  height: min(25.38vw,368px);
  background: url("../images/top/company-info_pc_img01.png") left top / contain no-repeat;
}
.company-info h2 {
  position: absolute;
  z-index: 5;
  top: 0;
  left: -22px;
  font-size: min(16.97vw,246px);
  color: #fff;
}
.company-info .cont {
  width: 100%;
  background: #fff;
  position: relative;
  padding: min(2.76vw,40px) 0 min(11.03vw,160px);
}
.company-info .cont::before {
  content: "";
  display: block;
  width: 100%;
  height: 16.9vw;
  position: absolute;
  left: 0;
  top: -16.9vw;
  background: url("../images/top/company-info_pc_bg.png") left top / cover;
}
.company-info .cont::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: 100%;
  height: min(21.38vw,310px);
  background: url("../images/top/company-info_pc_bg2.jpg") left bottom / contain no-repeat;
}
.company-info .cont .info {
  width: min(81.38vw,1180px);
  margin: 0 auto min(8.97vw,130px);
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
}
.company-info .cont .info img {
  width: min(44.14vw,640px);
  border-radius: 20px;
}
.company-info .cont .info dl {
  width: min(32.76vw,475px);
}
.company-info .cont .info dl dt {
  font-size: 62px;
  margin-bottom: 60px;
}
.company-info .cont .info dl dt span {
  display: block;
  font-size: 15px;
}
.company-info .cont .info dl dd {
  border-top: 1px solid #D6D6D6;
  padding: 30px 0 30px;
  font-size: 15px;
}
.company-info .cont .info dl dd:last-child {
  border-bottom: 1px solid #D6D6D6;
}
.company-info .cont .info dl dd a {
  display: block;
  padding: 0 60px 0 0;
  position: relative;
}
.company-info .cont .info dl dd a::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  position: absolute;
  z-index: 1;
  right: 5px;
  bottom: 0;
  background: url("../images/common/arrow_circle_bk.svg") right bottom / contain no-repeat;
  transition: transform .3s ease-in-out;
}
.company-info .cont .info dl dd a:hover::before {
  transform: translateX(5px);
}
.company-info .cont .info dl dd h3 {
  font-size: 20px;
  margin-bottom: 10px;
}
.company-info .cont ul {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	width: min(88.28vw,1280px);
	margin: 0 auto;
  position: relative;
  z-index: 3;
}
.company-info .cont ul li {
  width: 49%;
  background: #F2F2F2;
  border-radius: 20px;
}
.company-info .cont ul li a {
  display: block;
  padding: 50px min(4.83vw,70px);
  font-size: 15px;
  position: relative;
  align-items: center;
}
.company-info .cont ul li a::before {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  position: absolute;
  z-index: 1;
  right: min(5.17vw,75px);
  top: 50%;
  margin-top: -18px;
  background: url("../images/common/arrow_circle_bk.svg") right bottom / contain no-repeat;
  transition: transform .3s ease-in-out;
}
.company-info .cont ul li a:hover::before {
  transform: translateX(5px);
}
.company-info .cont ul li a h3 {
  font-size: 26px;
  margin-bottom: 15px;
  text-align: left;
}
.company-info .cont ul li a h3 span {
  display: block;
  font-size: 13px;
  font-weight: 700;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  .company-info {
    padding: 96.92vw 0 0;
  }
  .company-info::before {
    left: 15.95vw;
    top: 42.78vw;
    width: 73.42vw;
    height: 47.22vw;
    background: url("../images/top/company-info_mb_img01.png") left top / contain no-repeat;
  }
  .company-info h2 {
    left: -3.04vw;
    font-size: 18.23vw;
  }
  .company-info .cont {
    padding: 8.86vw 0 25.32vw;
  }
  .company-info .cont::before {
    height: 22.78vw;
    top: -22.78vw;
    background: url("../images/top/company-info_mb_bg.png") left top / cover;
  }
  .company-info .cont::after {
    height: 22.78vw;
    background: url("../images/top/company-info_mb_bg2.jpg") left bottom / contain no-repeat;
  }
  .company-info .cont .info {
    width: 81.01vw;
    margin: 0 auto 12.66vw;
    display: flex;
  }
  .company-info .cont .info img {
    width: 100%;
    margin-bottom: 10.13vw;
  }
  .company-info .cont .info dl {
    width: 100%;
  }
  .company-info .cont .info dl dt {
    font-size: 12.41vw;
    margin-bottom: 10.13vw;
  }
  .company-info .cont .info dl dt span {
    font-size: 3.04vw;
  }
  .company-info .cont .info dl dd {
    padding: 6.33vw 0 6.33vw;
    font-size: 3.29vw;
  }
  .company-info .cont .info dl dd a {
    padding: 0 11.39vw 0 0;
  }
  .company-info .cont .info dl dd a::before {
    width: 6.84vw;
    height: 6.84vw;
    right: 0;
  }
  .company-info .cont .info dl dd a:hover::before {
    transform: translateX(0px);
  }
  .company-info .cont .info dl dd h3 {
    font-size: 3.8vw;
    margin-bottom: 3.8vw;
  }
  .company-info .cont ul {
    width: 81.01vw;
  }
  .company-info .cont ul li {
    width: 100%;
    margin-bottom: 7.59vw;
  }
  .company-info .cont ul li a {
    padding: 8.86vw 19.49vw 8.86vw 7.59vw;
    font-size: 3.29vw;
  }
  .company-info .cont ul li a::before {
    width: 6.84vw;
    height: 6.84vw;
    right: 7.59vw;
    margin-top: -3.42vw;
  }
  .company-info .cont ul li a:hover::before {
    transform: translateX(0px);
  }
  .company-info .cont ul li a h3 {
    font-size: 4.3vw;
    margin-bottom: 1.9vw;
  }
  .company-info .cont ul li a h3 span {
    font-size: 2.53vw;
  }
}/* Smartphone End */