@charset "UTF-8";

/* ----------------------------------------------------------------
	main-image
---------------------------------------------------------------- */
.main-image {
  width: 100%;
  height: 100svh;
  position: relative;
  background: url("../images/top/top_pc_kv.jpg") center center / cover no-repeat;
}
.main-image h2 {
  width: 900px;
  position: absolute;
  left: 50%;
  bottom: 0;
  margin-left: -600px;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  .main-image {
    background: url("../images/top/top_sp_kv.jpg") center center / cover no-repeat;
  }
  .main-image h2 {
    width: 100%;
    left: 0;
    margin-left: 0;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	#contents
---------------------------------------------------------------- */
#contents h2 {
  font-size: min(1.94vw,24px);
  font-weight: 500;
  letter-spacing: 0.02em;
  margin-bottom: min(6.45vw,80px);
  position: relative;
}
#contents h2 span {
  display: block;
  font-size: min(10.48vw,130px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: 0.02em;
}
#contents h2 img {
  display: block;
  width: min(7.74vw,96px);
  height: min(7.74vw,96px);
  position: absolute;
  top: min(1.94vw,24px);
}
#contents .lead {
  width: 100%;
  margin-bottom: min(9.03vw,112px);
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
#contents h2 {
  font-size: 4.3vw;
  margin-bottom: 11.65vw;
}
#contents h2 span {
  font-size: 10.38vw;
}
#contents h2 img {
  width: 10.89vw;
  height: 10.89vw;
  top: 0;
}
#contents .lead {
  width: 100%;
  font-size: 3.54vw;
  margin-bottom: 13.42vw;
}
}/* Smartphone End */


/* ----------------------------------------------------------------
	#content01
---------------------------------------------------------------- */
#content01 {
  position: relative;
  width: 100%;
  padding-top: min(16.13vw,200px);
  padding-left: min(1.61vw,20px);
  padding-right: min(1.61vw,20px);
  padding-bottom: min(52.42vw,650px);
}
#content01::after {
  content: "";
  display: block;
  width: 100%;
  height: min(34.11vw,423px);
  background: url("../images/top/top_pc_features_04.png") center top / cover no-repeat;
  position: absolute;
  bottom: 0;
  left: 0;
}
#content01 .inr {
  width: min(96.77vw,1200px);
  margin: 0 auto;
}
#contents #content01 h2 img {
  left: min(48.39vw,600px);
}
#content01 ul {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 auto;
}
#content01 ul li {
  width: min(27.42vw,340px);
  border-bottom: 1px solid #e2dddd;
  padding-bottom: min(1.45vw,18px);
}
#content01 ul li img {
  margin-bottom: min(2.74vw,34px);
}
#content01 ul li .point {
  position: relative;
  width: min(6.45vw,80px);
  height: min(2.1vw,26px);
  border-radius: min(1.05vw,13px);
  background: -webkit-linear-gradient(left, #fab600, #ed6f00);
  background: linear-gradient(to right, #fab600, #ed6f00);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.13vw,14px);
  font-weight: 300;
  line-height: 1.0;
  letter-spacing: 0.02em;
  color: #fff;
  margin-bottom: min(0.32vw,4px);
}
#content01 ul li h3 {
  font-size: min(1.94vw,24px);
  font-weight: 700;
  line-height: 1.5;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  #content01 {
    padding: 25.32vw 0 83.54vw;
  }
  #content01::after {
    height: 56.96vw;
    background: url("../images/top/top_sp_features_04.png") center bottom / contain no-repeat;
  }
  #content01 .inr {
    width: 84.81vw;
  }
  #contents #content01 h2 img {
    left: 46.08vw;
  }
  #content01 ul li {
    width: 100%;
    padding-bottom: 7.09vw;
    margin-bottom: 15.19vw;
  }
  #content01 ul li img {
    margin-bottom: 8.35vw;
  }
  #content01 ul li .point {
    width: 16.46vw;
    height: 5.32vw;
    border-radius: 2.66vw;
    font-size: 3.04vw;
    margin-bottom: 3.54vw;
  }
  #content01 ul li h3 {
    font-size: 4.56vw;
    font-weight: 700;
    line-height: 1.5;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	#content02
---------------------------------------------------------------- */
#content02 {
  position: relative;
  width: 100%;
  padding: min(4.03vw,50px) min(1.61vw,20px) 0;
  background: #fff;
}
#content02::after {
  content: "";
  display: block;
  width: 100%;
  height: min(9.68vw,1200px);
  background: url("../images/top/top_pc_works_06.jpg") center bottom / cover no-repeat;
  position: absolute;
  /*bottom: min(-9.68vw,-120px);*/
  left: 0;
  z-index: 2;
}
#content02 .inr {
  width: min(96.77vw,1200px);
  margin: 0 auto;
}
#contents #content02 h2 img {
  left: min(57.42vw,712px);
}
#content02 ul {
	display: flex;
	flex-direction: row;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 auto;
}
#content02 ul li {
  width: min(28.23vw,350px);
  height: min(16.94vw,210px);
  margin-bottom: min(9.03vw,112px);
  border-right: 1px solid #e4e4e4;
  padding: min(2.42vw,30px) 0 0 0;
}
#content02 ul li:nth-child(1), #content02 ul li:nth-child(3) {
  border-left: 1px solid #e4e4e4;
}
#content02 ul li:nth-child(1) {
  margin-left: min(14.11vw,175px);
}
#content02 ul li:nth-child(2) {
  margin-right: min(14.11vw,175px);
}
#content02 ul li img {
  display: block;
  width: min(9.03vw,112px);
  margin: 0 auto min(2.42vw,30px);
}
#content02 ul li h3 {
  text-align: center;
  font-weight: 500;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  #content02 {
    padding: 12.66vw 0 24.05vw;
  }
  #content02::after {
    height: 24.05vw;
    background: url("../images/top/top_sp_works_06.jpg") center bottom / contain no-repeat;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2;
  }
  #content02 .inr {
    width: 84.81vw;
  }
  #contents #content02 h2 img {
    left: 56.96vw;
  }
  #content02 ul {
    display: flex;
    flex-direction: row;
    justify-content: flex-start; 
    flex-wrap: wrap;
    margin: 0 auto;
  }
  #content02 ul li {
    width: 50%;
    height: 21.52vw;
    margin-bottom: 10.13vw;
    border-right: none;
    padding: 0 0 0 0;
  }
  #content02 ul li:nth-child(1), #content02 ul li:nth-child(3), #content02 ul li:nth-child(5) {
    border-left: none;
    border-right: 1px solid #e4e4e4;

  }
  #content02 ul li:nth-child(1) {
    margin-left: 0;
  }
  #content02 ul li:nth-child(2) {
    margin-right: 0;
  }
  #content02 ul li img {
    width: 20.76vw;
    margin: 0 auto 3.16vw;
  }
  #content02 ul li h3 {
    font-size: 3.04vw;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	#content03
---------------------------------------------------------------- */
#content03 {
  position: relative;
  width: 100%;
  padding: min(29.84vw,370px) min(1.61vw,20px) min(25vw,310px);
  background: #faf4ec;
}
#content03 .inr {
  width: min(96.77vw,1200px);
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
#contents #content03 h2 img {
  left: min(73.71vw,914px);
}
#content03 ul {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
	width: min(87.1vw,1080px);
	margin: 0 auto;
}
#content03 ul li {
  width: min(38.71vw,480px);
  height: min(50.81vw,630px);
  background: #fff;
  border-radius: 0 0 50px 0;
}
#content03 ul li img {
  margin-bottom: min(2.42vw,30px);
}
#content03 ul li h3 {
  font-size: min(2.1vw,26px);
  padding: 0 min(3.23vw,40px) min(0.81vw,10px) min(3.23vw,40px);
  font-weight: 700;
}
#content03 ul li h4 {
  font-size: min(1.29vw,16px);
  line-height: 1.89;
  min-height: min(7.1vw,88px);
  padding: 0 min(3.23vw,40px) min(1.94vw,24px) min(3.23vw,40px);
}
#content03 ul li p {
  padding: 0 min(3.23vw,40px) 0 min(3.23vw,40px);
}
#content03 ul li p a {
  font-size: min(1.29vw,16px);
  position: relative;
  padding: min(0.65vw,8px) 0 min(0.65vw,8px);
}
#content03 ul li p a::after {
  content: "";
  display: block;
  width: min(2.9vw,36px);
  height: min(2.9vw,36px);
  background: url("../images/common/pc_arrow_02.png") left center / contain no-repeat;
  position: absolute;
  right: min(-4.03vw,-50px);
  top: min(0.16vw,2px);
}
#content03 ul li p a:hover {
  color: #f28b00;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  #content03 {
    padding: 25.32vw 0 18.73vw;
    background: #faf4ec;
  }
  #content03 .inr {
    width: 84.81vw;
  }
  #contents #content03 h2 img {
    left: 72.66vw;
  }
  #content03 ul {
    width: 100%;
  }
  #content03 ul li {
    width: 100%;
    height: auto;
    border-radius: 0 0 18.99vw 0;
    padding-bottom: 9.49vw;
    margin-bottom: 17.72vw;
  }
  #content03 ul li img {
    margin-bottom: 6.96vw;
  }
  #content03 ul li h3 {
    font-size: 4.56vw;
    padding: 0 7.59vw 3.54vw 7.59vw;
  }
  #content03 ul li h4 {
    font-size: 3.29vw;
    min-height: inherit;
    padding: 0 7.59vw 3.54vw 7.59vw;
  }
  #content03 ul li p {
    padding: 0 7.59vw 0 7.59vw;
  }
  #content03 ul li p a {
    font-size: 3.04vw;
    padding: 1.27vw 0 1.27vw;
  }
  #content03 ul li p a::after {
    width: 6.58vw;
    height: 6.58vw;
    background: url("../images/common/sp_arrow_02.png") left center / contain no-repeat;
    position: absolute;
    right: -9.58vw;
    top: 0.25vw;
  }
  #content03 ul li p a:hover {
    color: #222;
  }
}/* Smartphone End */


/* ----------------------------------------------------------------
	#content04
---------------------------------------------------------------- */
#content04 {
  position: relative;
  width: 100%;
  padding: min(20.97vw,260px) min(1.61vw,20px) min(19.76vw,245px);
  background: #fff;
}
#content04 .inr {
  width: min(96.77vw,1200px);
  margin: 0 auto;
}
#contents #content04 h2 img {
  left: min(40.32vw,500px);
}
#content04 ul {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	flex-wrap: wrap;
	width: 100%;
	margin: 0 auto;
}
#content04 ul li:nth-child(1) {
  width: 54%;
}
#content04 ul li:nth-child(2) {
  width: 37%;
  padding: min(2.42vw,30px) 0 0 7%;
}
#content04 ul li:nth-child(2) h3 {
  font-size: min(2.9vw,36px);
  font-weight: 500;
  line-height: 1.5;
  padding-bottom: min(2.9vw,36px);
}
#content04 ul li:nth-child(2) p {
  font-size: min(1.61vw,20px);
  line-height: 1.5;
}

/* Smartphone
----------------------------------------------- */
@media print,screen and (max-width: 999px) {
  #content04 {
    padding: 22.78vw 0 27.85vw;
  }
  #content04 .inr {
    width: 84.81vw;
  }
  #contents #content04 h2 img {
    left: 38.73vw;
  }
  #content04 ul li:nth-child(1) {
    width: 100%;
  }
  #content04 ul li:nth-child(2) {
    width: 100%;
    padding: 12.66vw 7.59vw 0 7.59vw;
  }
  #content04 ul li:nth-child(2) h3 {
    font-size: 4.81vw;
    line-height: 1.93;
    padding-bottom: 3.54vw;
  }
  #content04 ul li:nth-child(2) p {
    font-size: 3.54vw;
    line-height: 1.93;
  }
}/* Smartphone End */