:root {
  --base-font: "Noto Sans JP", sans-serif;
  --sub-font: "Shippori Mincho", serif;
  --en-font: "Oswald", sans-serif;
  --en-font2: "EB Garamond", serif;
  --base-color: #333;
  --white: #FFF;
  --white2: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.08) 8.04%, rgba(255, 255, 255, 1) 100%);
  --white3: rgba(255,255,255,0.16);
  --white4: rgba(255,255,255,0.8);
  --white5: rgba(254,254,255,0.2);
  --white6: rgba(255,255,255,0.7);
  --white7: rgba(255,255,255,0.4);
  --white8: rgba(255,255,255,0.89);
  --blue1: #2d6297;
  --blue2: rgba(110,153,166,0.8);
  --blue3: rgba(45, 98, 151, 0.8);
  --blue4: rgba(96, 123, 176, 0.3);
  --blue5: rgba(96, 123, 176, 0.8);
  --blue6: #96b0cb;
  --blue7: #F5F8F8;
  --blue8: rgba(96, 143, 157, 0.8);
  --blue9: rgba(205, 217, 222, 0.6);
  --blue10: #E8ECEC;
  --blue11: #8ab8db;
  --blue12: #708db9;
  --blue13: #6090ba;
  --blue14: rgba(96,182,199,0.79);
  --blue15: rgba(209,234,239,0.79);
  --blue16: #008a95;
  --blue17: rgba(45, 98, 151, 0.15);
  --blue18: #e2e9f0;
  --blue19: #7db0d7;
  --blue20: rgba(226, 233, 240, 0.3);
  --blue21: #607bb0;
  --blue22: rgba(45, 98, 151, 0.7);
  --blue23: rgba(45, 98, 151, 0.2);
  --blue24: rgba(127, 152, 184, 0.2);
  --blue25: rgba(111, 154, 191, 0.8);
  --blue26: rgba(45, 98, 151, 0.3);
  --blue27: #313b4d;
  --yellow1: rgba(182,157,57,0.3);
  --yellow2: rgba(182,157,57,0.8);
  --yellow3: rgba(210,156,58,0.8);
  --yellow4: rgba(255,245,168,0.4);
  --yellow5: #E2C182;
  --yellow6: #fff5a8;
  --yellow7: #fff5af;
  --yellow8: rgba(211,192,102,0.85);
  --yellow9: #D6A64D;
  --yellow10: #faf8ee;
  --yellow11: #b69d39;
  --yellow12: rgba(178,154,13,0.8);
  --brown1: rgba(214,166,77,0.8);
  --brown2: rgba(214,166,77,0.45);
  --brown3: rgba(160,98,83,0.8);
  --brown4: rgba(203,119,35,0.8);
  --black1: rgba(51,51,63,0.26);
  --black2: rgba(0,0,0,0.1);
  --black3: rgba(0,0,0,0.3);
  --black4: rgba(51,51,63,0.15);
  --red1: rgba(172,117,104,0.3);
  --red2: rgba(172,117,104,0.8);
  --red3: #bc9394;
  --red4: rgba(194,124,122,0.8);
  --red5: rgba(240,218,222,0.8);
  --red6: #bb6e6c;
  --red7: rgba(183,112,113,0.8);
  --red8: #c7754d;
  --red9: #d28f80;
  --red10: #ac7568;
  --red11: rgba(210,143,128,0.8);
  --green1: rgba(108,173,146,0.3);
  --green2: rgba(108,173,146,0.8);
  --green3: #8cc6ad;
  --green4: rgba(141, 174, 118, 0.15);
  --green5: #8b9d64;
  --green6: #8dae76;
  --green7: #e8efe4;
  --green8: rgba(141, 174, 118, 0.8);
  --green9: #6cad92;
  --green10: #dbff81;
  --green11: rgba(93, 147, 116, 0.8);
  --green12: rgba(131, 186, 163, 0.8);
  --gray1: #F5F8F8;
  --purple1: #bcb1d7;
  --pink1: rgba(213,127,122,0.8);
  --gradient1: linear-gradient(45deg, rgba(236, 244, 210, 1) 0%, rgba(196, 215, 250, 1) 100%);
  --gradient2: linear-gradient(90deg, rgba(245, 219, 231, 1) 0%, rgba(237, 190, 213, 1) 50%, rgba(236, 185, 210, 1) 57.24%, rgba(230, 162, 196, 1) 100%);
  --gradient3: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.08) 2.04%, rgba(255, 255, 255, 0.08) -2%, rgba(255, 255, 255, 1) 64%);
}

/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#main {
  background: #FFF;
  overflow: hidden;
}
#main .color01 {
  color: var(--blue1);
}
#main .color02 {
  color: var(--yellow6);
}
#main .color03 {
  color: var(--yellow7);
}
#main .color04 {
  color: var(--red8);
}
#main .color05 {
  color: var(--green5);
}
#main .fBold {
  font-weight: 700;
}
#main .mainVisual {
  padding: 21.5rem 0 0;
  min-height: 88.7rem;
  position: relative;
  z-index: 1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
}
#main .mainVisual::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 57%;
  background: var(--black1);
  content: "";
  -webkit-transform: translateY(-57.5%) skewY(-23.4deg);
          transform: translateY(-57.5%) skewY(-23.4deg);
  clip-path: inset(49.7% 100% 49.7% 0);
  -webkit-transition: clip-path 0.1s;
  transition: clip-path 0.1s;
}
#main .mainVisual.show::before {
  clip-path: inset(49.7% 0);
}
#main .mainVisual.show.on::before {
  clip-path: inset(0);
  -webkit-transition: clip-path 0.02s;
  transition: clip-path 0.02s;
}
#main .mainVisual::after {
  position: absolute;
  bottom: 4rem;
  left: 0;
  width: 100%;
  height: 21.6rem;
  background: var(--white2);
  content: "";
}
#main .mainVisual .mainImg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
#main .mainVisual .mainImg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main .mainVisual .bg {
  position: absolute;
  bottom: -10.8rem;
  left: 0;
  width: 100%;
  height: 14.8rem;
  background: var(--white);
  content: "";
}
#main .mainVisual .inner {
  margin: 0 auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  z-index: 5;
}
#main .mainVisual .inner .titleBox {
  margin-bottom: 11.6rem;
}
#main .mainVisual .inner .titleBox .tag {
  margin: 0 auto 2.7rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: block;
  padding: 0.3rem 4.1rem 0.5rem;
  color: var(--white);
  background: var(--blue3);
  font-size: 2.5rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  -webkit-box-shadow: -1rem -2rem 2.5rem 1rem var(--black2);
          box-shadow: -1rem -2rem 2.5rem 1rem var(--black2);
}
#main .mainVisual .inner .titleBox .title {
  margin-bottom: 2.3rem;
  color: var(--white);
  display: block;
  font-size: 8rem;
  font-weight: 400;
  font-family: var(--sub-font);
  letter-spacing: 0.24em;
  text-align: center;
  line-height: 1.3;
  text-shadow: 0 0 6rem var(--black3), 0 0 6rem var(--black3), 0 0 6rem var(--black3);
  position: relative;
}
#main .mainVisual .inner .titleBox .title small {
  font-size: 6rem;
  letter-spacing: 0.05em;
}
#main .mainVisual .inner .titleBox .title .sub {
  letter-spacing: 0.07em;
}
#main .mainVisual .inner .titleBox .title::before {
  position: absolute;
  top: 6.6rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 9.1rem;
  height: 9.1rem;
  background: url(../img/common/icon03.webp) no-repeat left top/100%;
  content: "";
  z-index: -1;
}
#main .mainVisual .inner .titleBox .text {
  display: block;
  color: var(--white);
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.24em;
  text-shadow: 0 0 6rem var(--black3), 0 0 6rem var(--black3), 0 0 6rem var(--black3);
}
#main .mainVisual .inner .textList {
  gap: 2.4rem;
}
#main .mainVisual .inner .textList li {
  padding: 0.6rem;
  width: 16.4rem;
  height: 16.4rem;
  border-radius: 50%;
  background: var(--blue4);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#main .mainVisual .inner .textList li .subBox {
  padding: 2.6rem 0 0;
  height: 100%;
  border-radius: 50%;
  background: var(--blue5);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#main .mainVisual .inner .textList li .subBox .ico {
  margin: 0 auto 1.1rem;
  width: 3.3rem;
}
#main .mainVisual .inner .textList li .subBox .text {
  color: #FFF;
  font-size: 2rem;
  font-family: var(--sub-font);
  text-align: center;
  line-height: 1.3;
}
#main .mainVisual .inner .textList li .subBox .text small {
  margin-bottom: 0.2rem;
  display: block;
  font-size: 1.4rem;
  font-family: var(--base-font);
}
#main .mainVisual .inner .textList li .subBox .text .number {
  font-size: 3.4rem;
  line-height: 0.9;
}
#main .mainVisual .inner .textList li .subBox .text .big {
  font-size: 2.3rem;
}
#main .mainVisual .inner .textList li .subBox .text .sub {
  font-size: 1.5rem;
}
#main .mainVisual .inner .textList li:nth-child(2) {
  background: var(--yellow1);
}
#main .mainVisual .inner .textList li:nth-child(2) .subBox {
  background: var(--yellow2);
}
#main .mainVisual .inner .textList li:nth-child(3) {
  background: var(--red1);
}
#main .mainVisual .inner .textList li:nth-child(3) .subBox {
  background: var(--red2);
}
#main .mainVisual .inner .textList li:nth-child(4) {
  background: var(--green1);
}
#main .mainVisual .inner .textList li:nth-child(4) .subBox {
  background: var(--green2);
}
@media all and (max-width: 896px) {
  #main .mainVisual {
    padding: 19.2rem 0 0;
    min-height: 65.6rem;
  }
  #main .mainVisual::before {
    height: 40%;
    -webkit-transform: translateY(-64.2%) skewY(-28.6deg);
            transform: translateY(-64.2%) skewY(-28.6deg);
  }
  #main .mainVisual::after {
    bottom: 4rem;
    height: 18.1rem;
  }
  #main .mainVisual .bg {
    bottom: -10.8rem;
  }
  #main .mainVisual .inner {
    margin: 0 auto;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    position: relative;
    z-index: 5;
  }
  #main .mainVisual .inner .titleBox {
    margin-bottom: 19.5rem;
  }
  #main .mainVisual .inner .titleBox .tag {
    margin: 0 auto 1.2rem;
    padding: 0.1rem 2rem 0.2rem;
    font-size: 1.3rem;
    letter-spacing: 0.22em;
  }
  #main .mainVisual .inner .titleBox .title {
    margin-bottom: 1rem;
    font-size: 3.4rem;
    line-height: 1.28;
  }
  #main .mainVisual .inner .titleBox .title small {
    font-size: 2.6rem;
  }
  #main .mainVisual .inner .titleBox .title::before {
    top: 2.8rem;
    width: 3.7rem;
    height: 3.7rem;
  }
  #main .mainVisual .inner .titleBox .text {
    font-size: 1.1rem;
  }
  #main .mainVisual .inner .textList {
    gap: inherit;
  }
  #main .mainVisual .inner .textList li {
    margin: 0 -0.9rem;
    padding: 0.4rem;
    width: 9.8rem;
    height: 9.8rem;
  }
  #main .mainVisual .inner .textList li .subBox {
    padding: 1.5rem 0 0;
  }
  #main .mainVisual .inner .textList li .subBox .ico {
    margin: 0 auto 0.2rem;
    width: 2rem;
  }
  #main .mainVisual .inner .textList li .subBox .text {
    font-size: 1.2rem;
    line-height: 1.3;
  }
  #main .mainVisual .inner .textList li .subBox .text small {
    margin-bottom: 0.2rem;
    font-size: 1rem;
    position: relative;
    z-index: 5;
    letter-spacing: -0.08em;
  }
  #main .mainVisual .inner .textList li .subBox .text .number {
    font-size: 2rem;
    line-height: 0.9;
  }
  #main .mainVisual .inner .textList li .subBox .text .big {
    font-size: 1.4rem;
  }
  #main .mainVisual .inner .textList li .subBox .text .sub {
    font-size: 0.9rem;
  }
}
#main .newsBox {
  margin: -3rem 0 10.9rem;
}
#main .newsBox .en {
  margin-bottom: -4.4rem;
  padding: 0 0.7rem;
  color: transparent;
  -webkit-text-stroke: 1px var(--blue6);
  font-family: var(--en-font);
  font-size: 9.2rem;
}
#main .newsBox .inner {
  padding: 1.7rem 3.7rem 1.9rem 4.2rem;
  background: var(--blue7);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
#main .newsBox .inner .newsLink {
  padding-top: 0.3rem;
  max-width: calc(100% - 28rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#main .newsBox .inner .newsLink a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
#main .newsBox .inner .newsLink a time {
  margin-right: 3.2rem;
  font-family: var(--en-font);
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}
#main .newsBox .inner .newsLink a .text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  letter-spacing: 0.1em;
  text-decoration: underline;
}
#main .newsBox .inner .newsLink a:hover {
  opacity: 0.6;
}
@media all and (max-width: 896px) {
  #main .newsBox {
    margin: -0.4rem 0 4.6rem;
  }
  #main .newsBox .en {
    margin: 0 -0.2rem -2.4rem;
    padding: 0;
    font-size: 5rem;
  }
  #main .newsBox .inner {
    padding: 2.3rem 1.8rem 1.2rem;
    display: block;
  }
  #main .newsBox .inner .newsLink {
    margin-bottom: 1.2rem;
    padding-top: 0.3rem;
    max-width: inherit;
  }
  #main .newsBox .inner .newsLink a {
    display: block;
  }
  #main .newsBox .inner .newsLink a time {
    margin: 0 0 0.3rem;
    display: block;
    font-family: var(--en-font);
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: -0.02em;
  }
}
#main .contactBox {
  aspect-ratio: 2708/1020;
  position: relative;
  background: url(../img/index/bg01.webp) no-repeat center center/cover;
}
#main .contactBox .bg {
  margin-left: 0.2rem;
  position: absolute;
  top: 0;
  bottom: 16rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 61.9vw;
}
#main .contactBox .bg::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--blue9);
  content: "";
  clip-path: polygon(0 0, calc(100% - 10.5vw) 0, 100% 100%, 10.5vw 100%);
}
#main .contactBox .bg::after {
  position: absolute;
  top: 0;
  left: -0.5rem;
  width: 100%;
  height: 100%;
  background: var(--blue9);
  content: "";
  clip-path: polygon(10.5vw 0, 100% 0, calc(100% - 10.5vw) 100%, 0 100%);
}
#main .contactBox .inner {
  padding: 1.3rem 0 0;
  height: calc(100% - 16rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  z-index: 5;
}
#main .contactBox .inner .tag {
  margin: 0 auto 2.9rem;
  padding: 1rem 1rem 1.1rem;
  width: 38.7rem;
  color: var(--white);
  font-family: var(--sub-font);
  font-size: 4.17rem;
  letter-spacing: 0.08em;
  background: var(--blue1);
  border-radius: 1rem;
  text-align: center;
}
#main .contactBox .inner .textUl {
  margin-bottom: 1.3rem;
  gap: 1rem;
}
#main .contactBox .inner .textUl li {
  padding: 0 0 0 4rem;
  font-family: var(--sub-font);
  font-size: 3.4rem;
  letter-spacing: 0.16em;
  background: url(../img/common/icon05.webp) no-repeat left top calc(50% + 0.3rem)/3.6rem;
}
#main .contactBox .inner .textUl li .sub {
  position: relative;
  z-index: 1;
}
#main .contactBox .inner .textUl li .sub::before {
  position: absolute;
  bottom: 0.4rem;
  left: -0.2rem;
  right: 0;
  height: 0.9rem;
  background: var(--yellow4);
  content: "";
  z-index: -1;
}
#main .contactBox .inner .text {
  font-size: 4.17rem;
  font-family: var(--sub-font);
  letter-spacing: 0.1em;
  text-align: center;
}
#main .contactBox .inner .text small {
  font-size: 3.4rem;
}
#main .contactBox .inner .text .sub {
  font-size: 3.6rem;
}
#main .contactBox .linkUl {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
#main .contactBox .linkUl li {
  width: 50%;
}
#main .contactBox .linkUl li a {
  position: relative;
  padding: 3.3rem 0 0;
  min-height: 16rem;
  display: block;
  color: var(--white);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: 1;
}
#main .contactBox .linkUl li a::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--brown1);
  content: "";
  z-index: -1;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
@media all and (min-width: 1025px) {
  #main .contactBox .linkUl li a:hover::before {
    -webkit-filter: brightness(80%);
            filter: brightness(80%);
  }
}
#main .contactBox .linkUl li a::after {
  position: absolute;
  top: 1.1rem;
  right: 1.2rem;
  width: 1.8rem;
  height: 1.8rem;
  background: var(--yellow3);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
  content: "";
}
#main .contactBox .linkUl li a .text {
  text-align: center;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
}
#main .contactBox .linkUl li a .tel {
  margin: -1rem auto 0;
  padding: 0.5rem 0 0.5rem 3.5rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 5rem;
  font-weight: 400;
  font-family: var(--en-font);
  letter-spacing: 0.05em;
  background: url(../img/common/icon06.webp) no-repeat left top calc(50% + 0.3rem)/2.5rem;
}
#main .contactBox .linkUl li a .sub {
  margin: 0.1rem auto 0;
  padding: 0.5rem 0 0.5rem 5.3rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 3.85rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  background: url(../img/common/icon07.webp) no-repeat left top calc(50% - 0.1rem)/3.6rem;
}
#main .contactBox .linkUl li:nth-child(2) a::before {
  background: var(--blue2);
}
#main .contactBox .linkUl li:nth-child(2) a::after {
  background: var(--blue8);
}
@media all and (max-width: 896px) {
  #main .contactBox {
    aspect-ratio: inherit;
    min-height: 28.4rem;
    width: 100%;
    background-position: center right;
  }
  #main .contactBox .bg {
    margin-left: 0;
    top: 0;
    bottom: 6rem;
    left: 0;
    -webkit-transform: none;
            transform: none;
    width: 64vw;
  }
  #main .contactBox .bg::before {
    width: auto;
    right: -0.4rem;
    clip-path: polygon(0 0, calc(100% - 24.5vw) 0, 100% 100%, 0 100%);
  }
  #main .contactBox .bg::after {
    left: 0;
    clip-path: polygon(0 0, 100% 0, calc(100% - 24.5vw) 100%, 0 100%);
  }
  #main .contactBox .inner {
    padding: 2.7rem 1.9rem 0;
    height: calc(100% - 6rem);
    display: block;
  }
  #main .contactBox .inner .tag {
    margin: 0 0 1.4rem;
    padding: 0.5rem 1rem 0.6rem;
    width: 19.9rem;
    font-size: 2.14rem;
    letter-spacing: 0.1em;
  }
  #main .contactBox .inner .textUl {
    margin-bottom: 1rem;
    display: block;
  }
  #main .contactBox .inner .textUl li {
    padding: 0 0 0 2.3rem;
    font-family: var(--sub-font);
    font-size: 1.7rem;
    letter-spacing: 0.16em;
    background-size: 1.8rem;
  }
  #main .contactBox .inner .textUl li .sub {
    position: relative;
    z-index: 1;
  }
  #main .contactBox .inner .textUl li .sub::before {
    position: absolute;
    bottom: -0.4rem;
    left: -0.2rem;
    height: 0.6rem;
  }
  #main .contactBox .inner .text {
    font-size: 2.14rem;
    text-align: left;
    line-height: 1.25;
  }
  #main .contactBox .inner .text small {
    font-size: 1.75rem;
  }
  #main .contactBox .inner .text .sub {
    font-size: 1.85rem;
  }
  #main .contactBox .linkUl li a {
    padding: 1.2rem 0 0;
    height: 100%;
    min-height: 6rem;
  }
  #main .contactBox .linkUl li a::after {
    top: 0.3rem;
    right: 0.3rem;
    width: 0.5rem;
    height: 0.5rem;
  }
  #main .contactBox .linkUl li a .text {
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
  }
  #main .contactBox .linkUl li a .tel {
    margin: -1rem auto 0;
    padding: 0.5rem 0 0.9rem 1.2rem;
    font-size: 1.7rem;
    letter-spacing: 0.08em;
    background: url(../img/common/icon06.webp) no-repeat left top calc(50% - 0.1rem)/0.9rem;
  }
  #main .contactBox .linkUl li a .sub {
    margin: -0.9rem auto 0;
    padding: 0.5rem 0 0.5rem 2.2rem;
    font-size: 1.5rem;
    background: url(../img/common/icon07_sp.webp) no-repeat left center/1.5rem;
  }
}
#main .concept {
  padding: 9.3rem 0 27.2rem;
  position: relative;
  z-index: 5;
}
#main .concept::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/index/concept_bg01.webp) no-repeat center bottom/cover;
  content: "";
  z-index: 5;
}
#main .concept .headLine01 {
  margin: 0 0 -4.8rem -5.1rem;
}
#main .concept .imgBox .photoBox {
  width: 43.8rem;
}
#main .concept .imgBox .textBox {
  padding-top: 0.5rem;
  width: calc(100% - 48.6rem);
}
#main .concept .imgBox .textBox .hTitle {
  margin-bottom: 3.8rem;
  padding-bottom: 1.4rem;
  position: relative;
  font-size: 3.2rem;
  font-weight: 400;
  font-family: var(--sub-font);
  letter-spacing: 0.1em;
  line-height: 1.77;
}
#main .concept .imgBox .textBox .hTitle::before {
  position: absolute;
  bottom: 0;
  left: -11.8rem;
  bottom: 0;
  right: 0;
  height: 1px;
  background: var(--blue1);
  content: "";
}
#main .concept .imgBox .textBox .subBox {
  padding-left: 0.7rem;
}
#main .concept .imgBox .textBox .subBox .text {
  margin-bottom: 2.2rem;
  line-height: 2.125;
  letter-spacing: 0.1em;
}
#main .concept .imgBox .textBox .subBox .text .black {
  color: var(--base-color);
}
#main .concept .imgBox .textBox .subBox .textUl {
  margin: 3.2rem 0 0.6rem;
}
#main .concept .imgBox .textBox .subBox .textUl li {
  margin-bottom: 0.3rem;
  padding-left: 2.2rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  position: relative;
}
#main .concept .imgBox .textBox .subBox .textUl li::before {
  position: absolute;
  top: 1rem;
  left: 0.4rem;
  width: 0.9rem;
  height: 0.9rem;
  background: var(--blue1);
  content: "";
}
#main .concept .imgBox .textBox .subBox .textUl li:last-child {
  margin-bottom: 0;
}
@media all and (max-width: 896px) {
  #main .concept {
    padding: 3.9rem 0 17.3rem;
  }
  #main .concept::before {
    background-image: url(../img/index/concept_bg01_sp.webp);
  }
  #main .concept .headLine01 {
    margin: 0 0 -3.6rem -0.2rem;
  }
  #main .concept .imgBox {
    display: block;
  }
  #main .concept .imgBox .photoBox {
    margin-bottom: 1.6rem;
    width: auto;
    aspect-ratio: 335/200;
  }
  #main .concept .imgBox .photoBox img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center top;
       object-position: center top;
  }
  #main .concept .imgBox .textBox {
    padding-top: 0;
    width: auto;
  }
  #main .concept .imgBox .textBox .hTitle {
    margin-bottom: 2.2rem;
    padding-bottom: 0.9rem;
    font-size: 1.9rem;
  }
  #main .concept .imgBox .textBox .hTitle::before {
    left: 0;
  }
  #main .concept .imgBox .textBox .subBox {
    padding-left: 0;
  }
  #main .concept .imgBox .textBox .subBox .text {
    margin-bottom: 1.7rem;
    line-height: 1.86;
  }
  #main .concept .imgBox .textBox .subBox .textUl {
    margin: 1.7rem 0 0.6rem;
  }
  #main .concept .imgBox .textBox .subBox .textUl li {
    margin-bottom: 0.8rem;
    padding-left: 1.6rem;
    font-size: 1.6rem;
    letter-spacing: 0.14em;
  }
  #main .concept .imgBox .textBox .subBox .textUl li::before {
    top: 1rem;
    left: 0.4rem;
    width: 0.5rem;
    height: 0.5rem;
  }
}
#main .mission {
  margin-top: -23.1rem;
  padding: 24.7rem 0 11.7rem;
  background: var(--gray1);
  position: relative;
}
#main .mission .photo01 {
  position: absolute;
  top: 0;
  left: -0.6rem;
  width: 19.2%;
  height: 100%;
}
#main .mission .photo01 img {
  width: 100%;
  height: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main .mission .photo01::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 12.9rem;
  background: var(--gradient3);
  content: "";
}
#main .mission .photo02 {
  position: absolute;
  top: 0;
  right: -0.6rem;
  width: 19.2%;
  height: 100%;
}
#main .mission .photo02 img {
  width: 100%;
  height: 50%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main .mission .photo02::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 12.9rem;
  background: var(--gradient3);
  content: "";
}
#main .mission .headLine01 {
  margin-bottom: 2.8rem;
  text-align: center;
}
#main .mission .headLine01 .jp {
  margin-bottom: -2.4rem;
}
#main .mission .headLine01 .en {
  letter-spacing: 0.03em;
  font-size: 14.2rem;
}
#main .mission .title {
  margin-bottom: 4.7rem;
  font-family: var(--sub-font);
  font-size: 4rem;
  letter-spacing: 0.13em;
  text-align: center;
  line-height: 1.43;
}
#main .mission .title .sub {
  position: relative;
  color: var(--blue1);
}
#main .mission .title .sub::before {
  position: absolute;
  bottom: -0.1rem;
  left: 0;
  right: 0;
  height: 1px;
  border-bottom: 2px dotted var(--blue1);
  content: "";
}
#main .mission .text {
  line-height: 2.375;
  letter-spacing: 0.1em;
  text-align: center;
}
@media all and (max-width: 896px) {
  #main .mission {
    margin-top: -16.2rem;
    padding: 7.5rem 0 4rem;
  }
  #main .mission .photo01,
  #main .mission .photo02 {
    display: none;
  }
  #main .mission .headLine01 {
    margin-bottom: 1.5rem;
  }
  #main .mission .headLine01 .jp {
    margin-bottom: -1.5rem;
  }
  #main .mission .title {
    margin-bottom: 3.7rem;
    font-size: 2.6rem;
    letter-spacing: 0.1em;
    line-height: 1.5;
  }
  #main .mission .title .sub::before {
    bottom: -0.2rem;
  }
  #main .mission .photoUl {
    margin-bottom: 2.1rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  #main .mission .photoUl li {
    width: 50%;
  }
  #main .mission .photoUl img {
    width: 100%;
  }
  #main .mission .text {
    line-height: 2.43;
    text-align: left;
  }
}
#main .statistics {
  padding: 8.3rem 0 10.2rem;
  background: var(--blue10);
}
#main .statistics .hTitle {
  margin-bottom: 3.9rem;
  color: var(--blue1);
  font-size: 3.95rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-align: center;
  position: relative;
  z-index: 1;
}
#main .statistics .hTitle small {
  font-size: 3.1rem;
}
#main .statistics .hTitle::before {
  position: absolute;
  top: -4.6rem;
  right: 10.8rem;
  width: 46.3rem;
  height: 17rem;
  background: url(../img/index/statistics_imgtext01.webp) no-repeat left top/100%;
  content: "";
  z-index: -1;
}
#main .statistics .photoList {
  margin: 0 auto;
  max-width: 126.6rem;
  gap: 1.6rem;
  position: relative;
  z-index: 11;
}
#main .statistics .photoList li {
  padding: 0.5rem 1.7rem 4.9rem;
  width: calc((100% - 4.8rem) / 4);
  background: var(--gray1);
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#main .statistics .photoList li .number {
  margin-bottom: 0.9rem;
  color: var(--yellow5);
  font-family: var(--en-font);
  font-size: 3.3rem;
  font-weight: 400;
  letter-spacing: -0.02em;
}
#main .statistics .photoList li .photo {
  margin: 0 auto 2.3rem;
  width: 13.4rem;
}
#main .statistics .photoList li .text {
  color: var(--blue1);
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.36;
  letter-spacing: 0.1em;
  text-align: center;
}
#main .statistics .photoList li .bigText {
  margin-top: -0.9rem;
  display: block;
  color: var(--blue1);
  font-size: 4.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: center;
  line-height: 1.1;
}
#main .statistics .photoList li .bigText .numText {
  font-size: 7.2rem;
  font-weight: 900;
  vertical-align: -0.5rem;
}
#main .statistics .photoList li .subBox {
  margin: -2rem auto 0;
  padding: 0.8rem 0 0;
  width: 23.3rem;
  height: 23.3rem;
  border-radius: 50%;
  border: 1.8rem solid var(--blue1);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#main .statistics .photoList li .subBox .text {
  font-size: 2.4rem;
}
#main .statistics .photoList li .subBox .text .sub {
  font-size: 3.6rem;
  font-weight: 900;
  letter-spacing: 0;
  vertical-align: -0.03em;
  line-height: 1.2;
}
#main .statistics .photoList li .subBox .text small {
  font-size: 1.8rem;
}
#main .statistics .photoList li .subBox .text.mt01 {
  margin-top: 0.1rem;
}
#main .statistics .photoList li.style01 .number {
  margin-bottom: -0.2rem;
}
#main .statistics .photoList li.style01 .photo {
  margin-bottom: 1.5rem;
}
#main .statistics .photoList li.style01 .bigText {
  margin: -0.4rem -1.5rem 0;
  font-size: 5rem;
  font-weight: 700;
}
#main .statistics .photoList li.style01 .bigText .numText {
  font-size: 7.6rem;
  font-weight: 700;
  letter-spacing: 0;
  vertical-align: -0.2rem;
}
#main .statistics .photoList li.style01 .bigText small {
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: 0;
}
#main .statistics .photoList li.style01 .bigText.spec .numText {
  letter-spacing: -0.07em;
}
@media all and (max-width: 896px) {
  #main .statistics {
    padding: 4.7rem 0 5rem;
  }
  #main .statistics .hTitle {
    margin: 0 auto 2.1rem;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    font-size: 3.16rem;
    line-height: 1.2;
  }
  #main .statistics .hTitle small {
    font-size: 2.5rem;
  }
  #main .statistics .hTitle::before {
    top: 2.7rem;
    right: -5.5rem;
    width: 22.5rem;
    height: 8.6rem;
  }
  #main .statistics .photoList {
    margin: 0 1.6rem;
    max-width: inherit;
    gap: 0.9rem 0;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  #main .statistics .photoList li {
    padding: 0.4rem 1rem 2.6rem;
    width: calc((100% - 0.9rem) / 2);
  }
  #main .statistics .photoList li .number {
    margin-bottom: 0.5rem;
    font-size: 1.7rem;
  }
  #main .statistics .photoList li .photo {
    margin: 0 auto 1.1rem;
    width: 7.2rem;
  }
  #main .statistics .photoList li .text {
    font-size: 1.3rem;
  }
  #main .statistics .photoList li .bigText {
    margin-top: -0.7rem;
    font-size: 2.5rem;
  }
  #main .statistics .photoList li .bigText .numText {
    font-size: 3.85rem;
    vertical-align: -0.1rem;
  }
  #main .statistics .photoList li .subBox {
    margin: -1rem auto 0;
    padding: 0.5rem 0 0;
    width: 12.5rem;
    height: 12.5rem;
    border: 1rem solid var(--blue1);
  }
  #main .statistics .photoList li .subBox .text {
    margin-bottom: -0.2rem;
    font-size: 1.3rem;
    letter-spacing: 0;
  }
  #main .statistics .photoList li .subBox .text .sub {
    font-size: 2rem;
  }
  #main .statistics .photoList li .subBox .text small {
    font-size: 1rem;
  }
  #main .statistics .photoList li .subBox .text.mt01 {
    margin: 0.2rem 0 0;
  }
  #main .statistics .photoList li.style01 .number {
    margin-bottom: -0.2rem;
  }
  #main .statistics .photoList li.style01 .photo {
    margin-bottom: 0.8rem;
  }
  #main .statistics .photoList li.style01 .text {
    font-size: 1.2rem;
  }
  #main .statistics .photoList li.style01 .bigText {
    font-size: 2.68rem;
  }
  #main .statistics .photoList li.style01 .bigText .numText {
    font-size: 4.2rem;
  }
  #main .statistics .photoList li.style01 .bigText small {
    font-size: 1.4rem;
  }
}
#main .strength {
  padding: 10rem 0 12.1rem;
  position: relative;
  overflow: hidden;
}
#main .strength::before {
  position: absolute;
  top: 0;
  left: -0.6rem;
  right: -0.6rem;
  height: 17.5rem;
  background: url(../img/index/strength_bg01.webp) no-repeat left top/17.5rem, url(../img/index/strength_bg02.webp) no-repeat right top/17.5rem;
  content: "";
}
#main .strength::after {
  position: absolute;
  bottom: -25.5rem;
  right: -0.6rem;
  width: 103.7rem;
  height: 72.6rem;
  background: url(../img/index/strength_bg03.webp) no-repeat left top/100%;
  content: "";
}
#main .strength .hTitle {
  margin: 0 auto 5.1rem;
  padding-right: 2.9rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
}
#main .strength .hTitle::before {
  position: absolute;
  bottom: -2.5rem;
  right: -0.6rem;
  width: 40.4rem;
  height: 8.6rem;
  background: url(../img/index/strength_imgtext01.webp) no-repeat left top/100%;
  content: "";
}
#main .strength .hTitle .number {
  margin: -7rem 0 0;
  display: block;
  font-family: var(--en-font2);
  color: var(--blue1);
  font-size: 28.2rem;
  font-weight: 400;
  font-style: italic;
  line-height: 1.1;
}
#main .strength .hTitle .rText .text {
  margin: 0 auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 3.5rem 1.8rem 2rem;
  display: block;
  font-size: 2.86rem;
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: 0.14em;
  text-align: center;
  border-bottom: 0.2rem dotted var(--blue1);
}
#main .strength .hTitle .rText .big {
  padding-right: 1.2rem;
  font-weight: 400;
  font-family: var(--sub-font);
  font-size: 9.6rem;
  letter-spacing: 0.08em;
  line-height: 1.2;
}
#main .strength .hTitle .rText .big small {
  margin-right: 1rem;
  font-size: 8.47rem;
  letter-spacing: -0.02em;
  vertical-align: -0.3rem;
}
#main .strength .inner {
  position: relative;
  z-index: 5;
}
#main .strength .inner .subInner {
  margin-bottom: 3.6rem;
  padding: 3.3rem 2.3rem;
  width: calc(50% + 51.7rem);
  background: var(--blue11);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
}
#main .strength .inner .subInner:nth-child(2) {
  background-color: var(--blue12);
}
#main .strength .inner .subInner:nth-child(3) {
  background-color: var(--purple1);
}
#main .strength .inner .subInner:nth-child(4) {
  background-color: var(--red3);
}
#main .strength .inner .subInner:nth-child(4) .textBox .h4Title .big {
  letter-spacing: -0.05em;
}
#main .strength .inner .subInner:nth-child(5) {
  background-color: var(--green3);
}
#main .strength .inner .subInner:last-child {
  margin-bottom: 0;
}
#main .strength .inner .subInner .number {
  position: absolute;
  bottom: -2rem;
  right: -1rem;
  color: var(--white3);
  font-size: 24.4rem;
  font-family: var(--en-font);
  line-height: 1.1;
  letter-spacing: -0.05em;
}
#main .strength .inner .subInner .photoBox {
  width: 38.6%;
  clip-path: polygon(0 0, 100% 0, 75.4% 100%, 0 100%);
}
#main .strength .inner .subInner .photoBox.style01 {
  clip-path: polygon(0 0, 100% 0, 79.5% 100%, 0 100%);
}
#main .strength .inner .subInner .photoBox img {
  width: 100%;
}
#main .strength .inner .subInner .textBox {
  padding: 0 0 0.2rem;
  width: 53.7%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
#main .strength .inner .subInner .textBox .subBox {
  padding-right: 7.5rem;
}
#main .strength .inner .subInner .textBox .h4Title {
  margin: 0 -2rem 2.5rem 0;
  color: #FFF;
  font-family: var(--sub-font);
  font-size: 2.6rem;
  font-weight: 400;
  letter-spacing: 0.02em;
}
#main .strength .inner .subInner .textBox .h4Title .big {
  display: block;
  font-size: 4.4rem;
  letter-spacing: 0.05em;
}
#main .strength .inner .subInner .textBox .text {
  color: var(--white);
  line-height: 2.125;
  letter-spacing: 0.1em;
  text-align: justify;
}
#main .strength .inner .subInner.reverse {
  margin-left: auto;
}
#main .strength .inner .subInner.reverse .number {
  right: auto;
  left: -1.3rem;
}
#main .strength .inner .subInner.reverse .photoBox {
  margin-right: 0.7rem;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
  clip-path: polygon(0 100%, 20% 0, 100% 0, 100% 100%);
}
#main .strength .inner .subInner.reverse .textBox {
  width: 55%;
}
#main .strength .inner .subInner.reverse .textBox .subBox {
  padding: 0 0 0 7.7rem;
}
#main .strength .inner .subInner.reverse .textBox .h4Title {
  margin-right: -10rem;
}
@media all and (max-width: 896px) {
  #main .strength {
    padding: 6.8rem 0 5.2rem;
  }
  #main .strength::before {
    left: -0.4rem;
    right: -0.4rem;
    height: 8rem;
    background: url(../img/index/strength_bg01.webp) no-repeat left top/8rem, url(../img/index/strength_bg02.webp) no-repeat right top/8rem;
  }
  #main .strength::after {
    bottom: -8.2rem;
    right: -0.4rem;
    width: 33.5rem;
    height: 23.4rem;
  }
  #main .strength .hTitle {
    padding-right: 0;
  }
  #main .strength .hTitle::before {
    bottom: -1.3rem;
    right: -1.2rem;
    width: 23.2rem;
    height: 4.89rem;
  }
  #main .strength .hTitle .number {
    margin: -4rem 0 0;
    font-size: 16.2rem;
  }
  #main .strength .hTitle .rText .text {
    padding: 0 2rem 0.9rem 1.2rem;
    font-size: 1.64rem;
    letter-spacing: 0.14em;
    border-width: 1px;
  }
  #main .strength .hTitle .rText .big {
    font-size: 5.5rem;
  }
  #main .strength .hTitle .rText .big small {
    margin-right: 0.5rem;
    font-size: 4.9rem;
  }
  #main .strength .inner {
    padding: 0 1.6rem;
  }
  #main .strength .inner .subInner {
    margin-bottom: 2.8rem;
    padding: 2.2rem 2rem 2.7rem;
    width: auto;
    display: block;
  }
  #main .strength .inner .subInner:nth-child(4) {
    background-color: var(--red3);
  }
  #main .strength .inner .subInner:nth-child(4) .textBox .h4Title .big {
    letter-spacing: -0.05em;
  }
  #main .strength .inner .subInner .number {
    bottom: -1.2rem !important;
    right: 0rem !important;
    font-size: 12.5rem;
  }
  #main .strength .inner .subInner .photoBox {
    margin-bottom: 1.7rem;
    width: auto !important;
    aspect-ratio: 296/188;
    clip-path: polygon(0 0, 100% 0, 85.5% 100%, 0 100%);
  }
  #main .strength .inner .subInner .photoBox.style01 {
    clip-path: polygon(0 0, 100% 0, 85.5% 100%, 0 100%);
  }
  #main .strength .inner .subInner .photoBox img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center 30%;
       object-position: center 30%;
  }
  #main .strength .inner .subInner .textBox {
    padding: 0;
    width: auto !important;
    display: block;
  }
  #main .strength .inner .subInner .textBox .subBox {
    padding: 0 !important;
  }
  #main .strength .inner .subInner .textBox .h4Title {
    margin: 0 0 0.8rem;
    font-size: 1.5rem;
    text-align: center;
  }
  #main .strength .inner .subInner .textBox .h4Title .big {
    margin-top: -0.2rem;
    font-size: 2.6rem;
    line-height: 1.38;
  }
  #main .strength .inner .subInner .textBox .text {
    line-height: 2;
  }
  #main .strength .inner .subInner.reverse {
    margin-left: auto;
    padding-bottom: 2.9rem;
  }
  #main .strength .inner .subInner.reverse .number {
    left: auto;
  }
  #main .strength .inner .subInner.reverse .photoBox {
    margin-right: 0;
    clip-path: polygon(0 100%, 15% 0, 100% 0, 100% 100%);
  }
  #main .strength .inner .subInner.reverse .textBox .h4Title {
    margin: 0 0 1.1rem;
  }
  #main .strength .inner .subInner.reverse .textBox .h4Title .big {
    margin-top: 0.2rem;
  }
}
#main .greeting {
  padding: 12.2rem 0 11.5rem;
  position: relative;
}
#main .greeting .comBgBox {
  top: 18rem;
  background: var(--blue17);
}
#main .greeting .comBgBox.style01 {
  top: auto;
  bottom: 25.4rem;
  background: var(--green4);
}
#main .greeting .headLine01 {
  margin-bottom: 4.6rem;
  text-align: center;
}
#main .greeting .headLine01 .jp {
  margin-bottom: -2.2rem;
}
#main .greeting .headLine01 .en {
  font-size: 14rem;
}
#main .greeting .photoList {
  margin: 0 -0.3rem 6.3rem 0;
  gap: 7.4rem 0;
}
#main .greeting .photoList > li {
  width: 50%;
  padding: 0 2.7rem 0 2.4rem;
  border-left: 0.2rem dotted var(--blue1);
  border-right: 0.2rem dotted var(--blue1);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
#main .greeting .photoList > li:nth-child(2n) {
  width: 50%;
  padding-left: 2.7rem;
  border-left: none;
}
#main .greeting .photoList > li .photo {
  margin-bottom: 2.7rem;
  position: relative;
}
#main .greeting .photoList > li .photo .tag {
  padding: 3.2rem 2rem;
  display: block;
  position: absolute;
  bottom: -2rem;
  right: -4.3rem;
  width: 17rem;
  height: 17rem;
  background: var(--red7) url(../img/index/greeting_bg01.webp) no-repeat center bottom 1.3rem/15.5rem;
  border-radius: 50%;
  color: var(--white);
  font-size: 2.4rem;
  font-family: var(--sub-font);
  text-align: center;
  letter-spacing: 0.1em;
  line-height: 1.33;
}
#main .greeting .photoList > li .photo .tag small {
  margin-top: 0.5rem;
  display: block;
  font-family: var(--base-font);
  font-size: 1.93rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}
#main .greeting .photoList > li .name {
  margin-bottom: 2rem;
  font-family: var(--sub-font);
  font-size: 4.6rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.08em;
}
#main .greeting .photoList > li .name .tag {
  margin-bottom: 0.3rem;
  display: block;
  font-family: var(--base-font);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
#main .greeting .photoList > li .name + .textArea {
  margin-top: 3rem;
}
#main .greeting .photoList > li .title {
  margin-bottom: 2.6rem;
  color: var(--blue1);
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
}
#main .greeting .photoList > li .text {
  margin-bottom: 4.8rem;
  line-height: 2;
  letter-spacing: 0.1em;
}
#main .greeting .photoList > li .textArea .subBox {
  margin-bottom: 2.4rem;
}
#main .greeting .photoList > li .textArea .subBox:last-child {
  margin-bottom: 0;
}
#main .greeting .photoList > li .textArea .subBox .innerTitle {
  margin-bottom: 2.1rem;
  padding: 0.6rem 2.3rem 1.1rem;
  color: var(--white);
  font-size: 2.2rem;
  font-weight: 500;
  letter-spacing: 0.38em;
  background: url(../img/index/greeting_bg02.webp) no-repeat center center/100% 100%;
}
#main .greeting .photoList > li .textArea .subBox .textUl li {
  padding-left: 1.2rem;
  position: relative;
  font-size: 1.5rem;
  line-height: 1.86;
  letter-spacing: 0.1em;
}
#main .greeting .photoList > li .textArea .subBox .textUl li::before {
  position: absolute;
  top: 1.3rem;
  left: 0.2rem;
  width: 0.3rem;
  height: 0.3rem;
  background: var(--base-color);
  border-radius: 50%;
  content: "";
}
@media all and (max-width: 896px) {
  #main .greeting {
    padding: 5.4rem 0 5rem;
  }
  #main .greeting .comBgBox {
    top: 12.2rem;
  }
  #main .greeting .comBgBox.style01 {
    top: auto;
    bottom: 25.4rem;
    display: none;
  }
  #main .greeting .headLine01 {
    margin-bottom: 1rem;
  }
  #main .greeting .headLine01 .jp {
    margin-bottom: -1.2rem;
  }
  #main .greeting .photoList {
    margin: 0 0 3.3rem;
    display: block;
  }
  #main .greeting .photoList > li {
    margin-bottom: 3.6rem;
    width: auto !important;
    padding: 0 !important;
    border: none !important;
  }
  #main .greeting .photoList > li:last-child {
    margin-bottom: 0;
  }
  #main .greeting .photoList > li .photo {
    margin-bottom: 2.3rem;
  }
  #main .greeting .photoList > li .photo img {
    width: 100%;
  }
  #main .greeting .photoList > li .photo .tag {
    padding: 1.9rem 1rem;
    bottom: -0.8rem;
    right: -0.7rem;
    width: 10.2rem;
    height: 10.2rem;
    background: var(--red7) url(../img/index/greeting_bg01.webp) no-repeat center bottom 0.8rem/9.2rem;
    font-size: 1.45rem;
  }
  #main .greeting .photoList > li .photo .tag small {
    margin-top: 0.3rem;
    font-size: 1.15rem;
  }
  #main .greeting .photoList > li .name {
    margin-bottom: 1.5rem;
    font-size: 3.6rem;
  }
  #main .greeting .photoList > li .name .tag {
    margin-bottom: -0.3rem;
  }
  #main .greeting .photoList > li .name + .textArea {
    margin-top: 2.4rem;
  }
  #main .greeting .photoList > li .title {
    margin: 0 -1rem 2.7rem;
    font-size: 1.8rem;
    line-height: 1.56;
    letter-spacing: 0.05em;
  }
  #main .greeting .photoList > li .text {
    margin-bottom: 2.2rem;
  }
  #main .greeting .photoList > li .textArea .subBox {
    margin-bottom: 2.1rem;
  }
  #main .greeting .photoList > li .textArea .subBox .innerTitle {
    margin-bottom: 2.1rem;
  }
  #main .greeting .photoList > li .textArea .subBox .textUl li {
    font-size: 1.4rem;
  }
  #main .greeting .photoList > li .textArea .subBox .textUl.les0 li {
    letter-spacing: 0;
  }
}
#main .outBgBox {
  background: var(--yellow10);
}
#main .coverage {
  padding: 8.6rem 0 9.2rem;
  position: relative;
  background: url(../img/index/coverage_bg01.webp) no-repeat left -0.6rem top/13.45%, url(../img/index/coverage_bg02.webp) no-repeat right -0.6rem top/13.45%;
}
#main .coverage .content {
  max-width: 113.2rem;
}
#main .coverage .photo01 {
  position: absolute;
  top: 34.3rem;
  left: -0.6rem;
  width: 15.78%;
  z-index: 11;
  clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 0% 100%);
}
#main .coverage .photo02 {
  position: absolute;
  bottom: -6.5rem;
  right: -0.6rem;
  width: 15.78%;
  z-index: 11;
  clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 0% 100%);
}
#main .coverage .hTitle {
  margin-bottom: 5.1rem;
  font-weight: 400;
  font-family: var(--sub-font);
  text-align: center;
  color: var(--blue1);
  font-size: 5.5rem;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
#main .coverage .hTitle .big {
  font-size: 9.6rem;
  letter-spacing: 0;
  position: relative;
}
#main .coverage .hTitle .big::before {
  position: absolute;
  bottom: 0.4rem;
  left: 0;
  right: 0;
  height: 1px;
  border-bottom: 0.2rem dotted var(--blue1);
  content: "";
}
#main .coverage .title {
  margin-bottom: 1.4rem;
  color: var(--blue1);
  font-size: 3.4rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.2em;
}
#main .coverage .text {
  margin-bottom: 6.3rem;
  font-size: 1.8rem;
  text-align: center;
  letter-spacing: 0.12em;
  line-height: 1.78;
}
#main .coverage .inner .lBox,
#main .coverage .inner .rBox {
  padding: 5.1rem 0 4.7rem;
  position: relative;
  width: calc((100% - 5.5rem) / 2);
}
#main .coverage .inner .innerTitle {
  margin-bottom: 1.2rem;
  color: var(--white);
  font-family: var(--sub-font);
  font-size: 4.13rem;
  letter-spacing: 0.1em;
  text-align: center;
}
#main .coverage .inner .innerText {
  color: var(--white);
  line-height: 2;
  letter-spacing: 0.16em;
  text-align: justify;
}
#main .coverage .inner .lBox {
  background: var(--red9);
}
#main .coverage .inner .lBox::before {
  position: absolute;
  top: 0;
  left: 6.5rem;
  width: 1px;
  bottom: 0;
  background: var(--white);
  content: "";
}
#main .coverage .inner .lBox .subBox {
  padding: 0 4rem 0 12.4rem;
}
#main .coverage .inner .rBox {
  background: var(--green6);
}
#main .coverage .inner .rBox::before {
  position: absolute;
  top: 0;
  right: 6.5rem;
  width: 1px;
  bottom: 0;
  background: var(--white);
  content: "";
}
#main .coverage .inner .rBox .subBox {
  padding: 0 11.8rem 0 4.7rem;
}
#main .coverage .inner .rBox .subBox .tagUl {
  margin: 1.9rem 0 0;
  gap: 0.7rem 1.4rem;
}
#main .coverage .inner .rBox .subBox .tagUl li {
  padding: 0.4rem 0.2rem;
  width: calc((100% - 3rem) / 3);
  color: var(--green6);
  font-size: 1.4rem;
  font-weight: 700;
  background: var(--green7);
  border-radius: 1.4rem;
  text-align: center;
  letter-spacing: 0.1em;
}
#main .coverage .inner .rBox .subBox .tagUl li.spec {
  padding: 0.4rem 0;
  background: transparent;
  color: var(--white);
  font-weight: 400;
  text-align: left;
}
#main .coverage .inner .rBox .subBox .tagUl li.style01 {
  letter-spacing: -0.15em;
}
#main .coverage .inner .rBox .subBox .tagUl li.style02 {
  letter-spacing: 0.05em;
}
@media all and (max-width: 896px) {
  #main .coverage {
    padding: 4.4rem 0 2.3rem;
    background: url(../img/index/coverage_bg01_sp.webp) no-repeat left top/12.6%, url(../img/index/coverage_bg02_sp.webp) no-repeat right top/12.6%;
  }
  #main .coverage .hTitle {
    margin: 0 -1rem 2.4rem;
    font-size: 3rem;
  }
  #main .coverage .hTitle .big {
    font-size: 5.5rem;
  }
  #main .coverage .title {
    margin-bottom: 1.4rem;
    font-size: 2rem;
    line-height: 1.4;
  }
  #main .coverage .text {
    margin-bottom: 3.2rem;
    font-size: 1.5rem;
    line-height: 2;
  }
  #main .coverage .inner {
    display: block;
  }
  #main .coverage .inner .lBox,
  #main .coverage .inner .rBox {
    padding: 3.2rem 0 3.3rem;
    width: auto;
    position: relative;
  }
  #main .coverage .inner .innerTitle {
    margin-bottom: 1.7rem;
    font-size: 3.2rem;
  }
  #main .coverage .inner .lBox {
    margin-bottom: 3rem;
  }
  #main .coverage .inner .lBox::before {
    display: none;
  }
  #main .coverage .inner .lBox .subBox {
    padding: 0 2rem;
  }
  #main .coverage .inner .lBox .photo01 {
    position: absolute;
    top: -2.9rem;
    left: -2rem;
    width: 7rem;
    clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 0% 100%);
  }
  #main .coverage .inner .rBox {
    padding-bottom: 3.6rem;
  }
  #main .coverage .inner .rBox::before {
    display: none;
  }
  #main .coverage .inner .rBox .subBox {
    padding: 0 2rem;
  }
  #main .coverage .inner .rBox .subBox .innerText {
    letter-spacing: 0.1em;
  }
  #main .coverage .inner .rBox .subBox .tagUl {
    margin: 2.2rem 0 0;
    gap: 0.6rem 1rem;
  }
  #main .coverage .inner .rBox .subBox .tagUl li {
    padding: 0.2rem 0.2rem 0.3rem;
    width: calc((100% - 2rem) / 3);
    font-size: 1.2rem;
  }
  #main .coverage .inner .rBox .subBox .tagUl li.spec {
    padding: 0.2rem 0 0.3rem;
  }
  #main .coverage .inner .rBox .subBox .tagUl li.style01 {
    font-size: 1.1rem;
    letter-spacing: -0.15em;
  }
  #main .coverage .inner .rBox .subBox .tagUl li.style02 {
    letter-spacing: 0em;
  }
  #main .coverage .inner .rBox .photo02 {
    position: absolute;
    top: -3rem;
    bottom: auto;
    right: -2rem;
    width: 7rem;
    clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 0% 100%);
  }
}
#main .choice {
  margin-bottom: 10.1rem;
}
#main .choice .col01 {
  color: var(--red9);
}
#main .choice .col02 {
  color: var(--green6);
}
#main .choice .hTitle {
  margin: 0 auto 1.3rem;
  padding: 2rem 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  font-family: var(--sub-font);
  font-size: 5.2rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1em;
  line-height: 1.44;
}
#main .choice .hTitle small {
  font-size: 4rem;
  letter-spacing: 0;
}
#main .choice .hTitle::before {
  position: absolute;
  top: 0;
  left: -13.2rem;
  right: -10.7rem;
  height: 100%;
  background: url(../img/index/choice_img01.webp) no-repeat left top 1.3rem/10.7rem, url(../img/index/choice_img02.webp) no-repeat right top 1.6rem/10rem;
  content: "";
}
#main .choice .text {
  margin-bottom: 7.2rem;
  font-size: 1.8rem;
  line-height: 1.78;
  letter-spacing: 0.12em;
  text-align: center;
}
#main .choice .text strong {
  color: var(--blue1);
}
#main .choice .textArea .title {
  margin-bottom: 2rem;
  position: relative;
}
#main .choice .textArea .title::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  border-top: 0.2rem dotted #333;
  content: "";
}
#main .choice .textArea .title .sub {
  margin: 0 auto;
  padding: 0 3.1rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: block;
  background: var(--yellow10);
  position: relative;
  z-index: 5;
  font-size: 3.4rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
#main .choice .textArea .innerText {
  margin-bottom: 2rem;
  font-size: 1.8rem;
  line-height: 1.78;
  text-align: center;
  letter-spacing: 0.12em;
}
#main .choice .textArea .subBox {
  padding: 0.5rem 0 0;
  background: var(--white);
}
#main .choice .textArea .subBox .photo {
  margin-top: -6.3rem;
  width: 19rem;
}
#main .choice .textArea .subBox .textUl {
  margin: 2.9rem 0 0;
  width: calc(100% - 21.4rem);
  gap: 0 2.9rem;
}
#main .choice .textArea .subBox .textUl > li {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
#main .choice .textArea .subBox .textUl > li:first-child {
  max-width: 45.6rem;
}
#main .choice .textArea .subBox .textUl > li:nth-child(2) {
  max-width: 38rem;
}
#main .choice .textArea .subBox .textUl > li .subUl li {
  margin-bottom: 0.3rem;
  padding: 0.5rem 0 0.5rem 4.8rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  background: url(../img/common/icon12.webp) no-repeat left top 0.2rem/3.2rem;
}
#main .choice .textArea .subBox .textUl > li .subUl li:last-child {
  margin-bottom: 0;
}
@media all and (max-width: 896px) {
  #main .choice {
    margin-bottom: 4.7rem;
  }
  #main .choice .hTitle {
    margin: 0 auto -0.5rem;
    font-size: 2.3rem;
  }
  #main .choice .hTitle small {
    font-size: 1.7rem;
  }
  #main .choice .hTitle::before {
    left: -5.5rem;
    right: -5.4rem;
    background: url(../img/index/choice_img01.webp) no-repeat left top 1.7rem/4.8rem, url(../img/index/choice_img02.webp) no-repeat right top 1.8rem/4.5rem;
  }
  #main .choice .text {
    margin-bottom: 4.2rem;
    font-size: 1.5rem;
    line-height: 2;
  }
  #main .choice .textArea .title {
    margin-bottom: 0.8rem;
    position: relative;
  }
  #main .choice .textArea .title::before {
    top: auto;
    bottom: 1.1rem;
  }
  #main .choice .textArea .title .sub {
    margin: 0;
    padding: 0 1rem 0 0;
    font-size: 2rem;
    line-height: 1.4;
    text-align: left;
  }
  #main .choice .textArea .innerText {
    margin-bottom: 1.6rem;
    font-size: 1.4rem;
    line-height: 2;
    text-align: left;
  }
  #main .choice .textArea .subBox {
    padding: 1.8rem 1.9rem;
    display: block;
  }
  #main .choice .textArea .subBox .photo {
    position: absolute;
    bottom: -3rem;
    right: -2rem;
    margin-top: 0;
    width: 9.6rem;
    -webkit-transform: scaleX(-1);
            transform: scaleX(-1);
  }
  #main .choice .textArea .subBox .textUl {
    margin: 0;
    width: auto;
    display: block;
  }
  #main .choice .textArea .subBox .textUl > li {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    max-width: inherit !important;
  }
  #main .choice .textArea .subBox .textUl > li .subUl li {
    margin-bottom: -0.1rem;
    padding: 0.5rem 0 0.5rem 3.3rem;
    font-size: 1.4rem;
    letter-spacing: 0.06em;
    background: url(../img/common/icon12.webp) no-repeat left top 0.3rem/2.2rem;
  }
}
#main .payment .inner .lBox {
  margin-left: -0.6rem;
  width: 32.4%;
  height: 73.5rem;
}
#main .payment .inner .lBox img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main .payment .inner .rBox {
  width: 63%;
}
#main .payment .inner .rBox .textBox {
  padding: 4.3rem 0 0;
  width: 88%;
}
#main .payment .inner .rBox .textBox .hTitle {
  margin-bottom: 3.2rem;
  color: var(--white);
  font-family: var(--sub-font);
  font-size: 5.2rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.77;
}
#main .payment .inner .rBox .textBox .hTitle .bgText {
  padding: 1.2rem 2.7rem 1.7rem;
  background: -webkit-linear-gradient(var(--green8), var(--green8)) repeat-x center center/100% 80%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
#main .payment .inner .rBox .textBox .text {
  font-size: 1.8rem;
  line-height: 1.78;
  letter-spacing: 0.12em;
}
#main .payment .inner .rBox .textBox .text strong {
  color: var(--blue1);
}
#main .payment .inner .rBox .textBox .textList {
  margin: 2.9rem 0.5rem 3.3rem;
}
#main .payment .inner .rBox .textBox .textList li {
  margin-bottom: 1.2rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
#main .payment .inner .rBox .textBox .textList li .title {
  padding: 0.7rem 2rem 1rem 0;
  width: 12.4rem;
  min-height: 5.2rem;
  color: var(--blue21);
  font-size: 2.3rem;
  font-weight: 400;
  font-family: var(--sub-font);
  letter-spacing: 0.08em;
  text-align: center;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: 1;
}
#main .payment .inner .rBox .textBox .textList li .title::before {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 100%;
  background: url(../img/index/payment_bg01.webp) no-repeat left top/100% 100%;
  content: "";
  z-index: -1;
}
#main .payment .inner .rBox .textBox .textList li .text {
  margin-left: -3.6rem;
  padding: 0 0.3rem 0 3.6rem;
  max-width: calc(100% - 8.8rem);
  color: var(--blue21);
  letter-spacing: 0.08em;
  line-height: 5.2rem;
  background: url(../img/index/line01_pc.webp) left top/5rem;
}
@media all and (min-width: 897px) {
  #main .payment .inner .rBox .textBox .textList li .text {
    white-space: nowrap;
  }
}
#main .payment .inner .rBox .textBox .textList li:nth-child(2) .title {
  color: var(--yellow11);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(2) .title::before {
  background-image: url(../img/index/payment_bg02.webp);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(2) .text {
  color: var(--yellow11);
  border-color: var(--yellow11);
  background-image: url(../img/index/line02_pc.webp);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(3) .title {
  color: var(--red10);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(3) .title::before {
  background-image: url(../img/index/payment_bg03.webp);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(3) .text {
  color: var(--red10);
  border-color: var(--red10);
  background-image: url(../img/index/line03_pc.webp);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(4) {
  margin-bottom: 0;
}
#main .payment .inner .rBox .textBox .textList li:nth-child(4) .title {
  color: var(--green9);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(4) .title::before {
  background-image: url(../img/index/payment_bg04.webp);
}
#main .payment .inner .rBox .textBox .textList li:nth-child(4) .text {
  color: var(--green9);
  border-color: var(--green9);
  background-image: url(../img/index/line04_pc.webp);
}
#main .payment .inner .rBox .photo {
  margin-right: -0.6rem;
  width: 11.4%;
  height: 73.5rem;
}
#main .payment .inner .rBox .photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media all and (max-width: 896px) {
  #main .payment .inner {
    padding: 0 1.6rem;
    display: block;
  }
  #main .payment .inner .lBox {
    margin-left: 0;
    width: auto;
    height: auto;
    aspect-ratio: 335/184;
  }
  #main .payment .inner .lBox img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  #main .payment .inner .rBox {
    width: auto;
  }
  #main .payment .inner .rBox .textBox {
    padding: 0;
    width: auto;
  }
  #main .payment .inner .rBox .textBox .hTitle {
    margin: -6.3rem 0 1rem -1.6rem;
    font-size: 2.5rem;
    line-height: 1.8;
  }
  #main .payment .inner .rBox .textBox .hTitle .bgText {
    padding: 0.6rem 1rem 0.9rem;
  }
  #main .payment .inner .rBox .textBox .text {
    font-size: 1.5rem;
    line-height: 1.86;
    letter-spacing: 0.08em;
  }
  #main .payment .inner .rBox .textBox .textList {
    margin: 2.6rem 0 2.3rem;
  }
  #main .payment .inner .rBox .textBox .textList li {
    margin-bottom: 0.9rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    width: auto;
  }
  #main .payment .inner .rBox .textBox .textList li .title {
    padding: 0.6rem 1.6rem 0.4rem 0;
    width: 10rem;
    min-height: 4.1rem;
    font-size: 1.84rem;
  }
  #main .payment .inner .rBox .textBox .textList li .text {
    margin-left: -2.6rem;
    padding: 0.1rem 0 0 2.6rem;
    max-width: calc(100% - 7.4rem);
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    border-bottom: none;
    color: var(--blue21);
    letter-spacing: 0;
    line-height: 4.1rem;
    background: url(../img/index/line01.webp) left top/5rem;
  }
  #main .payment .inner .rBox .textBox .textList li .text .sub {
    margin-right: -1rem;
    display: block;
  }
  #main .payment .inner .rBox .textBox .textList li:nth-child(2) .text {
    background-image: url(../img/index/line02.webp);
  }
  #main .payment .inner .rBox .textBox .textList li:nth-child(3) .text {
    background-image: url(../img/index/line03.webp);
  }
  #main .payment .inner .rBox .textBox .textList li:nth-child(4) {
    margin-bottom: 0;
  }
  #main .payment .inner .rBox .textBox .textList li:nth-child(4) .text {
    background-image: url(../img/index/line04.webp);
  }
}
#main .prospective {
  padding: 9.5rem 0 11rem;
  background: url(../img/index/prospective_bg01.webp) no-repeat left -7rem bottom -2.1rem/45.5rem, url(../img/index/prospective_bg02.webp) no-repeat right -1.5rem top 0.1rem/45.5rem;
}
#main .prospective .hTitle {
  margin-bottom: 3.7rem;
  font-family: var(--sub-font);
  font-size: 4rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.05em;
  text-align: center;
}
#main .prospective .textBox {
  margin-bottom: 5.7rem;
  text-align: center;
}
#main .prospective .textBox .text {
  font-size: 1.8rem;
  line-height: 1.75;
  letter-spacing: 0.12em;
}
#main .prospective .textBox .bigText {
  margin: 2.7rem 0 2.3rem;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.63;
  letter-spacing: 0.12em;
}
#main .prospective .comBtn a {
  padding: 1rem 7rem 1rem 5rem;
}
@media all and (max-width: 896px) {
  #main .prospective {
    padding: 4.6rem 0 5rem;
    background: url(../img/index/prospective_bg01.webp) no-repeat left -4rem bottom 6.5rem/20rem, url(../img/index/prospective_bg02.webp) no-repeat right -3.2rem top -0.3rem/20rem;
  }
  #main .prospective .hTitle {
    margin: 0 -1rem 2rem;
    font-size: 2.7rem;
    line-height: 1.4;
    letter-spacing: 0;
  }
  #main .prospective .textBox {
    margin-bottom: 3rem;
  }
  #main .prospective .textBox .text {
    font-size: 1.5rem;
    line-height: 1.87;
  }
  #main .prospective .textBox .bigText {
    margin: 2.3rem -1rem 2.1rem;
    font-size: 1.76rem;
  }
  #main .prospective .comBtn a {
    padding: 1rem 6rem;
  }
}
#main .faq {
  margin-bottom: -16.9rem;
  padding: 10.7rem 0 24.2rem;
  background: var(--gradient1);
  position: relative;
  z-index: 5;
}
#main .faq .inner .lBox {
  width: 24rem;
}
#main .faq .inner .lBox .headLine01 {
  margin-bottom: 3rem;
  padding-left: 0.4rem;
}
#main .faq .inner .lBox .headLine01 .jp {
  margin-bottom: -2rem;
  letter-spacing: 0.16em;
}
#main .faq .inner .lBox .headLine01 .en {
  margin-left: -0.8rem;
  font-size: 14.2rem;
}
#main .faq .inner .lBox .comBtn {
  width: auto;
}
#main .faq .inner .lBox .comBtn a {
  padding: 1rem 6.8rem 1rem 3rem;
}
#main .faq .inner .dlBox {
  padding-top: 1.2rem;
  width: calc(100% - 30rem);
}
#main .faq .inner .dlBox .faqDl {
  margin-bottom: 0.4rem;
}
#main .faq .inner .dlBox .faqDl:last-child {
  margin-bottom: 0;
}
#main .faq .inner .dlBox .faqDl .en {
  width: 6.3rem;
  border-right: 1px solid var(--white5);
  color: var(--yellow9);
  font-size: 4rem;
  font-family: var(--en-font);
  text-align: center;
}
#main .faq .inner .dlBox .faqDl .text {
  padding: 1.9rem 6rem 2.1rem 2.5rem;
  width: calc(100% - 6.3rem);
  color: var(--white);
  font-weight: 500;
  letter-spacing: 0.12em;
}
#main .faq .inner .dlBox .faqDl dt {
  margin-bottom: 0.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  cursor: pointer;
  background: var(--blue22) url(../img/common/icon18_on.webp) no-repeat right 2.2rem top calc(50% - 0.2rem)/1.4rem;
}
#main .faq .inner .dlBox .faqDl dt.on {
  background-image: url(../img/common/icon18.webp);
}
#main .faq .inner .dlBox .faqDl dd {
  display: none;
  background: var(--white6);
}
#main .faq .inner .dlBox .faqDl dd .subBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
#main .faq .inner .dlBox .faqDl dd .en {
  padding-top: 0.3rem;
  border-color: var(--blue23);
}
#main .faq .inner .dlBox .faqDl dd .text {
  padding-right: 2.5rem;
  color: var(--base-color);
  font-size: 1.5rem;
  line-height: 1.87;
  letter-spacing: 0.1em;
}
#main .faq .inner .dlBox .faqDl dd.on {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media all and (max-width: 896px) {
  #main .faq {
    margin-bottom: -6.4rem;
    padding: 4.3rem 0 10rem;
  }
  #main .faq .inner {
    display: block;
  }
  #main .faq .inner .lBox {
    width: auto;
  }
  #main .faq .inner .lBox .headLine01 {
    margin-bottom: 1.8rem;
    text-align: center;
  }
  #main .faq .inner .lBox .headLine01 .jp {
    margin-bottom: -1.1rem;
  }
  #main .faq .inner .lBox .comBtn {
    width: auto;
  }
  #main .faq .inner .lBox .comBtn a {
    padding: 1rem 6.8rem 1rem 3rem;
  }
  #main .faq .inner .dlBox {
    margin-bottom: 3rem;
    padding-top: 0;
    width: auto;
  }
  #main .faq .inner .dlBox .faqDl {
    margin-bottom: 0.4rem;
  }
  #main .faq .inner .dlBox .faqDl:last-child {
    margin-bottom: 0;
  }
  #main .faq .inner .dlBox .faqDl .en {
    padding-top: 1rem;
    width: 5.1rem;
    font-size: 3rem;
  }
  #main .faq .inner .dlBox .faqDl .text {
    padding: 1.4rem 4.5rem 1.2rem 1.8rem;
    width: calc(100% - 5.1rem);
    line-height: 1.71;
    letter-spacing: 0.04em;
  }
  #main .faq .inner .dlBox .faqDl dt {
    margin-bottom: 0.4rem;
  }
  #main .faq .inner .dlBox .faqDl dd .text {
    padding: 1.5rem 1.8rem 1.8rem;
    font-size: 1.4rem;
    line-height: 1.71;
  }
}
#main .outBgBox02 {
  background: var(--gray1);
}
#main .outPhotoList {
  margin-left: -12.2rem;
  position: relative;
  z-index: 6;
}
#main .outPhotoList li {
  margin-right: 3rem;
  width: 20.2rem;
  aspect-ratio: 202/337;
  clip-path: polygon(0% 4rem, 100% 0%, 100% calc(100% - 3.9rem), 0% 100%);
}
#main .outPhotoList li img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media all and (max-width: 896px) {
  #main .outPhotoList {
    margin-left: 0;
  }
  #main .outPhotoList li {
    margin-right: 1.2rem;
    width: 7.8rem;
    clip-path: polygon(0% 12%, 100% 0%, 100% 88%, 0% 100%);
  }
}
#main .bannerArea {
  padding: 10.1rem 0;
  position: relative;
}
#main .bannerArea .comBgBox {
  top: -12.1rem;
  background: var(--blue24);
}
#main .bannerArea .bannerBox {
  margin-bottom: 4rem;
}
#main .bannerArea .bannerBox a {
  padding: 5.2rem 5.1rem 2rem;
  min-height: 35.2rem;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  z-index: 1;
}
#main .bannerArea .bannerBox a::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/index/banner_bg01.webp) no-repeat top right/cover;
  content: "";
  z-index: -1;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
#main .bannerArea .bannerBox a::after {
  position: absolute;
  top: 2.5rem;
  right: 3.3rem;
  width: 3.3rem;
  height: 3.4rem;
  background: url(../img/common/icon13.webp) no-repeat left top/100%;
  content: "";
}
#main .bannerArea .bannerBox a .logo {
  margin-bottom: 3.3rem;
  width: 59.6rem;
}
#main .bannerArea .bannerBox a .tag {
  margin-bottom: 0.8rem;
  padding: 0 2rem 0.9rem 2.5rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  color: var(--white);
  background: var(--yellow9);
  font-family: var(--sub-font);
  font-size: 3.8rem;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1;
}
#main .bannerArea .bannerBox a .tag .big {
  margin-right: 0.3rem;
  font-size: 6.6rem;
  vertical-align: -1rem;
}
#main .bannerArea .bannerBox a .text {
  padding-right: 1.9rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  font-family: var(--sub-font);
  font-size: 2.6rem;
  font-weight: 400;
  letter-spacing: 0.14em;
}
#main .bannerArea .bannerBox a .text .big {
  font-size: 3.9rem;
  vertical-align: -0.2rem;
  letter-spacing: 0.02em;
}
#main .bannerArea .bannerBox a .text::before {
  margin-top: 2px;
  position: absolute;
  top: 50%;
  left: 100%;
  height: 1px;
  width: 23.5rem;
  background: var(--base-color);
  content: "";
}
@media all and (min-width: 1025px) {
  #main .bannerArea .bannerBox a:hover::before {
    -webkit-filter: brightness(80%);
            filter: brightness(80%);
  }
}
#main .bannerArea .textArea {
  padding: 4.7rem 8.5rem 0;
  position: relative;
  min-height: 35.2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: url(../img/index/banner_bg02.webp) no-repeat center center/cover;
}
#main .bannerArea .textArea .link {
  position: absolute;
  top: -2.9rem;
  right: 4.6rem;
  width: 22.6rem;
}
#main .bannerArea .textArea .link a {
  padding: 1.9rem 0 0;
  min-height: 22.6rem;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 50%;
}
#main .bannerArea .textArea .link a::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--gradient2);
  content: "";
  border-radius: 50%;
  opacity: 0.9;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
#main .bannerArea .textArea .link a::after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/common/icon14.webp) no-repeat center center/21rem;
  content: "";
}
#main .bannerArea .textArea .link a .sub {
  padding-bottom: 3.6rem;
  position: relative;
  z-index: 5;
  font-size: 2.4rem;
  font-family: var(--sub-font);
  text-align: center;
  letter-spacing: 0.08em;
  line-height: 1.44;
  background: url(../img/common/icon15.webp) no-repeat center bottom/2rem;
}
#main .bannerArea .textArea .link a .sub .les0 {
  letter-spacing: -0.05em;
}
@media all and (min-width: 1025px) {
  #main .bannerArea .textArea .link a:hover::before {
    -webkit-filter: brightness(80%);
            filter: brightness(80%);
  }
}
#main .bannerArea .textArea .title {
  margin-bottom: 3.3rem;
  width: calc(100% - 25rem);
  font-family: var(--sub-font);
  font-size: 6rem;
  line-height: 1.16;
  color: var(--white);
  font-style: italic;
  position: relative;
}
#main .bannerArea .textArea .title .color {
  color: var(--green10);
}
#main .bannerArea .textArea .title small {
  font-size: 4.5rem;
}
#main .bannerArea .textArea .title .sub {
  position: absolute;
  top: 0.7rem;
  right: -2.1rem;
  width: 5.7rem;
}
#main .bannerArea .textArea .title .les {
  letter-spacing: -0.05em;
}
#main .bannerArea .textArea .textList {
  margin-bottom: 2.2rem;
  gap: 1.6rem;
}
#main .bannerArea .textArea .textList li {
  padding: 0.7rem 0.5rem 0.8rem;
  width: calc((100% - 6.4rem) / 5);
  background: var(--yellow12);
  color: var(--white);
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}
#main .bannerArea .textArea .textList li:nth-child(2) {
  background: var(--green11);
}
#main .bannerArea .textArea .textList li:nth-child(3) {
  background: var(--brown4);
}
#main .bannerArea .textArea .textList li:nth-child(4) {
  background: var(--blue25);
}
#main .bannerArea .textArea .textList li:nth-child(5) {
  background: var(--pink1);
}
#main .bannerArea .textArea .text {
  color: var(--white);
  font-size: 1.65rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.08em;
}
@media all and (max-width: 896px) {
  #main .bannerArea {
    padding: 3.8rem 0 5.8rem;
  }
  #main .bannerArea .comBgBox {
    top: -3.3rem;
    height: 53.5rem;
    clip-path: polygon(0 29.3%, 0 100%, 100% 69.4%, 100% 0%);
  }
  #main .bannerArea .bannerBox {
    margin-bottom: 1.6rem;
  }
  #main .bannerArea .bannerBox a {
    padding: 2rem 2rem 1rem;
    min-height: 13.3rem;
  }
  #main .bannerArea .bannerBox a::after {
    top: 1.5rem;
    right: 1.4rem;
    width: 1.4rem;
    height: 1.4rem;
  }
  #main .bannerArea .bannerBox a .logo {
    margin-bottom: 1.3rem;
    width: 20.4rem;
  }
  #main .bannerArea .bannerBox a .tag {
    margin-bottom: 0.8rem;
    padding: 0 0.7rem 0.2rem 0.8rem;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
  }
  #main .bannerArea .bannerBox a .tag .big {
    margin-right: 0.5rem;
    font-size: 2.3rem;
    vertical-align: -0.3rem;
  }
  #main .bannerArea .bannerBox a .text {
    padding-right: 0.6rem;
    font-size: 0.85rem;
  }
  #main .bannerArea .bannerBox a .text .big {
    font-size: 1.28rem;
    vertical-align: -0.1rem;
  }
  #main .bannerArea .bannerBox a .text::before {
    margin-top: 0;
    width: 5.3rem;
  }
  #main .bannerArea .textArea {
    padding: 2.6rem 2rem 0;
    min-height: 23.3rem;
    background: url(../img/index/banner_bg02.webp) no-repeat center center/cover;
  }
  #main .bannerArea .textArea .link {
    top: auto;
    bottom: -3.8rem;
    right: -0.9rem;
    width: 13.5rem;
  }
  #main .bannerArea .textArea .link a {
    padding: 1.3rem 0 0;
    min-height: 13.5rem;
  }
  #main .bannerArea .textArea .link a::after {
    background: url(../img/common/icon14.webp) no-repeat center center/12.5rem;
  }
  #main .bannerArea .textArea .link a .sub {
    padding-bottom: 2rem;
    font-size: 1.44rem;
    background: url(../img/common/icon15.webp) no-repeat center bottom/1.1rem;
  }
  #main .bannerArea .textArea .title {
    margin-bottom: 2rem;
    width: auto;
    font-size: 2.5rem;
    letter-spacing: 0.03em;
  }
  #main .bannerArea .textArea .title small {
    font-size: 1.8rem;
  }
  #main .bannerArea .textArea .title .sub {
    position: absolute;
    top: 0.2rem;
    right: -0.2rem;
    width: 2.4rem;
  }
  #main .bannerArea .textArea .title .les {
    letter-spacing: -0.02em;
  }
  #main .bannerArea .textArea .textList {
    margin-bottom: 1.4rem;
    gap: 0.9rem;
  }
  #main .bannerArea .textArea .textList li {
    padding: 0.3rem 0.5rem 0.5rem;
    width: calc((100% - 1.8rem) / 3);
    font-size: 1.1rem;
    letter-spacing: 0.04em;
  }
  #main .bannerArea .textArea .text {
    font-size: 1.1rem;
    text-align: left;
    letter-spacing: 0;
    line-height: 1.45;
  }
}
#main .column {
  padding: 5.4rem 0 10.3rem;
}
#main .column .headLine01 {
  margin-bottom: -8.3rem;
}
#main .column .headLine01 .en {
  letter-spacing: 0.03em;
}
#main .column .photoList {
  margin: 0 0.2rem 0 auto;
  max-width: 106rem;
  gap: 4rem;
}
#main .column .photoList > li {
  padding-bottom: 1.5rem;
  position: relative;
  width: calc((100% - 12rem) / 4);
}
#main .column .photoList > li::before {
  position: absolute;
  top: 0;
  right: -2.1rem;
  width: 1px;
  bottom: 0;
  border-right: 0.2rem dotted var(--blue26);
  content: "";
}
#main .column .photoList > li:last-child::before {
  display: none;
}
#main .column .photoList > li a {
  display: block;
}
#main .column .photoList > li a:hover {
  opacity: 0.6;
}
#main .column .photoList > li .photo {
  margin-bottom: 2rem;
  aspect-ratio: 235/140;
}
#main .column .photoList > li .photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#main .column .photoList > li .subBox {
  padding: 0 2.1rem;
}
#main .column .photoList > li .subBox .dateBox {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
#main .column .photoList > li .subBox .dateBox .tagUl {
  width: 6.6rem;
}
#main .column .photoList > li .subBox .dateBox .tagUl li {
  margin-bottom: 0.5rem;
  padding: 0.1rem 0.2rem;
  background: var(--blue1);
  color: #FFF;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.025em;
}
#main .column .photoList > li .subBox .dateBox .tagUl li:last-child {
  margin-bottom: 0;
}
#main .column .photoList > li .subBox .dateBox time {
  margin-top: -0.3rem;
  display: block;
  width: calc(100% - 7.9rem);
  font-family: var(--en-font2);
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.025em;
}
#main .column .photoList > li .subBox .title {
  margin-bottom: 1.3rem;
  font-size: 1.8rem;
  line-height: 1.44;
  text-decoration: underline;
  font-family: var(--sub-font);
}
#main .column .photoList > li .subBox .text {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.46;
  letter-spacing: 0.025em;
}
@media all and (max-width: 896px) {
  #main .column {
    padding: 3.3rem 0 5.4rem;
  }
  #main .column .headLine01 {
    margin-bottom: -2.8rem;
  }
  #main .column .headLine01 .en {
    letter-spacing: 0.03em;
  }
  #main .column .photoList {
    margin: 0;
    max-width: inherit;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 2.8rem 0;
  }
  #main .column .photoList > li {
    padding-bottom: 0;
    width: calc((100% - 1.5rem) / 2);
  }
  #main .column .photoList > li::before {
    display: none;
  }
  #main .column .photoList > li .photo {
    margin-bottom: 1.2rem;
  }
  #main .column .photoList > li .photo img {
    width: 100%;
  }
  #main .column .photoList > li .subBox {
    padding: 0 1.4rem;
  }
  #main .column .photoList > li .subBox .dateBox {
    margin-bottom: 0.5rem;
  }
  #main .column .photoList > li .subBox .dateBox .tagUl {
    width: 4.8rem;
  }
  #main .column .photoList > li .subBox .dateBox .tagUl li {
    margin-bottom: 0.5rem;
    padding: 0.1rem 0.2rem;
    font-size: 1rem;
  }
  #main .column .photoList > li .subBox .dateBox time {
    margin-top: -0.1rem;
    width: calc(100% - 5.3rem);
    font-size: 1.3rem;
  }
  #main .column .photoList > li .subBox .title {
    margin-bottom: 0.7rem;
    font-size: 1.3rem;
    line-height: 1.36;
  }
  #main .column .photoList > li .subBox .text {
    font-size: 1rem;
  }
}/*# sourceMappingURL=index.css.map */