@charset "UTF-8";

/*****************************
top
*****************************/
.topsec {
  padding: 10rem 0;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec {
    padding: 6rem 0;
  }
}

/*****************************
topsec-fv
*****************************/
.topsec-fv {
  background: url(../images/top/bg_orange.webp) no-repeat center / cover;
  height: 100vh;
}
.topsec-fv::after {
  background-image: url(../images/common/mask_wave_w.svg);
  background-size: 100% 100%;
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  height: 50px;
  width: 100%;
  z-index: 1;
}
.topsec-fv .imgbox {
  position: absolute;
  bottom: -70px;
  right: 10vw;
  max-width: 85vh;
}
.topsec-fv .txtwrap1 {
  color: #fff;
  position: absolute;
  top: 18%;
  left: 15vw;
}
.topsec-fv .txtwrap1 p {
  line-height: 1;
}
.topsec-fv .txtbox1 {
  display: flex;
  flex-direction: column-reverse;
  gap: 2rem;
}
.topsec-fv .namebox .furi {
  font-size: 2vw;
  font-weight: 700;
  margin-left: 2rem;
  letter-spacing: 5px;
}
.topsec-fv .namebox .name {
  font-size: 6vw;
  font-weight: 700;
}
.topsec-fv .bgtxtbox {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 1rem;
}
.topsec-fv .bgtxtbox p {
  background: #EF7211;
  display: inline-block;
  font-weight: 600;
  padding: 1rem;
}
.topsec-fv .bgtxtbox .txt1 {
  font-size: 1.4vw;
}
.topsec-fv .bgtxtbox .txt2 {
  font-size: 2vw;
}
.topsec-fv .logobox {
  margin-bottom: 3rem;
}
.topsec-fv .logobox .logosanseitou {
  max-width: 300px;
}
.topsec-fv .txtwrap2 {
  position: absolute;
  bottom: 100px;
  left: 0;
}
.topsec-fv .txtwrap2 .txt1 {
  font-size: 2vw;
  font-weight: 600;
  padding: 0 2rem;
  position: relative;
  z-index: 1;
}
.topsec-fv .txtwrap2 .txt1::before {
  background: #fff;
  border-radius: 0 50px 50px 0;
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateX(-100%);
  transition: .5s;
  height: 100%;
  width: 100%;
  z-index: -1;
}
.topsec-fv .txtwrap2 .txt1.load::before {
  transform: translateX(0);
  transition: .5s;
}
.topsec-fv .txtwrap2 .txt1 span {
  font-size: 3vw;
  font-weight: 600;
}
@media only screen and (max-width: 1180px) {
  .topsec-fv .txtwrap1 {
    top: 20%;
  }
  .topsec-fv .imgbox {
    bottom: -20px;
    right: -1vw;
    max-width: 80vh;
  }
}
@media only screen and (max-width: 1024px) {
  .topsec-fv .imgbox {
    right: 2vw;
    max-width: 75vh;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-fv {
    height: 600px;
  }
  .topsec-fv .txtwrap1 {
    left: 10vw;
  }
  .topsec-fv .imgbox {
    max-width: 50vh;
  }
  .topsec-fv .logobox .logosanseitou {
    max-width: 200px;
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
}
@media only screen and (max-width: 425px) {
  .topsec-fv {
    height: 650px;
  }
  .topsec-fv::after {
    height: 20px;
  }
  .topsec-fv .imgbox {
    bottom: 0;
    right: -19vw;
    max-width: 55vh;
  }
  .topsec-fv .txtwrap1 {
    top: initial;
    bottom: 37%;
    left: 3vw;
  }
  .topsec-fv .namebox .furi {
    font-size: 3vw;
    margin-left: 0;
  }
  .topsec-fv .namebox .name {
    font-size: 12vw;
  }
  .topsec-fv .bgtxtbox .txt1 {
    font-size: 3vw;
  }
  .topsec-fv .bgtxtbox .txt2 {
    font-size: 5vw;
  }
  .topsec-fv .txtbox2 .txt1 {
    font-size: 4.5vw;
  }
  .topsec-fv .txtwrap2 {
    bottom: 70px;
  }
  .topsec-fv .txtwrap2 .txt1 {
    font-size: 3.5vw;
    padding: 0 1.5rem 0 0;
  }
  .topsec-fv .txtwrap2 .txt1 span {
    font-size: 6vw;
  }
}

/*****************************
topsec-message
*****************************/
.topsec-message {
  background: #fff;
  padding: 15rem 0;
}
.topsec-message .fimgbox {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-left: calc(50% - 50vw);
  width: 30vw;
}
.topsec-message .fimgbox .img1 img {
  border-radius: 0 100px 0 0;
}
.topsec-message .fimgbox .img2 img {
  border-radius: 0 0 100px 0;
}
.topsec-message .ftxtbox {
  width: 40vw;
}
.topsec-message .txtbox p {
  font-weight: 500;
  line-height: 2;
}
.topsec-message .txtbox .morebtn1 {
  margin-top: 3rem;
}
@media only screen and (min-width: 2150px) {
  .topsec-message .fimgbox {
    width: 35vw;
  }
  .topsec-message .ftxtbox {
    width: 35vw;
  }
}
@media only screen and (max-width: 1480px) {
  .topsec-message .fimgbox {
    width: 40vw;
  }
}
@media only screen and (max-width: 1300px) {
  .topsec-message {
    padding: 10rem 0;
  }
  .topsec-message .fimgbox {
    flex-direction: row;
    margin-left: initial;
    margin-bottom: 10rem;
    width: 100%;
  }
  .topsec-message .fimgbox .img1 img {
    border-radius: 100px 0 0 100px;
  }
  .topsec-message .fimgbox .img2 img {
    border-radius: 0 100px 100px 0;
  }
  .topsec-message .ftxtbox {
    width: 100%;
  }
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
    .topsec-message .fimgbox .img1 img {
    border-radius: 50px 0 0 50px;
  }
  .topsec-message .fimgbox .img2 img {
    border-radius: 0 50px 50px 0;
  }
}

/*****************************
topsec-policy
*****************************/
.topsec-policy {
  padding: 30rem 0 5vw;
}
.topsec-policy::after {
  background-image: url(../images/common/mask_wave_w.svg);
  background-size: 100% 100%;
  content: '';
  position: absolute;
  left: 0;
  height: 50px;
  width: 100%;
  top: -1px;
  transform: scale(1, -1);
  z-index: 1;
}
.topsec-policy .ttlbox1 {
  margin-bottom: 5rem;
}
.topsec-policy .txtbox {
  position: relative;
  width: 100%;
  z-index: 1;
}
.topsec-policy .policylist {
  max-width: 550px;
}
.topsec-policy .imgbox {
  border-radius: 100px 0 0 100px;
  overflow: hidden;
  position: absolute;
  top: 150px;
  right: 0;
  width: 50vw;
}
.topsec-policy .imgbox img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}
@media only screen and (min-width: 2000px) {
  .topsec-policy {
    padding: 30rem 0 20vw;
  }
  .topsec-policy .imgbox {
    width: 45vw;
  }
}
@media only screen and (max-width: 1180px) {
  .topsec-policy .imgbox {
    width: 60vw;
  }
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 1000px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-policy {
    padding: 30rem 0 15vw;
  }
  .topsec-policy::after {
    height: 20px;
  }
  .topsec-policy .ttlbox1 {
    position: absolute;
    top: 70px;
    left: 20px;
    width: 100%;
  }
  .topsec-policy .imgbox {
    border-radius: 50px 0 0 50px;
    top: 130px;
    width: 70vw;
  }
}

/*****************************
topsec-introduction
*****************************/
.topsec-introduction {
  background: url(../images/top/bg_orange.webp) no-repeat center / cover;
  padding: 10rem 0 0;
}
.topsec-introduction .nm {
  margin-top: -65vw;
}
.topsec-introduction .logomark-w {
  display: block;
  position: sticky;
  top: 50px;
  transform: translateX(50px);
  opacity: .2;
  width: 70vw;
}
.topsec-introduction .txt1,
.topsec-introduction .txt2,
.topsec-introduction .txt3,
.topsec-introduction .txt4 {
  position: absolute;
  color: #fff;
  font-weight: 600;
  line-height: 1;
}
.topsec-introduction .txt1 {
  top: 10vw;
  left: 25vw;
  font-size: 6vw;
}
.topsec-introduction .txt2 {
  top: 19vw;
  left: -2vw;
  font-size: 6vw;
}
.topsec-introduction .txt3 {
  top: 18vw;
  right: 3vw;
  font-size: 8vw;
}
.topsec-introduction .txt4 {
  top: 31vw;
  right: 1vw;
  font-size: 7vw;
}
.topsec-introduction::before,
.topsec-introduction::after {
  content: '';
  position: absolute;
  left: 0;
  height: 50px;
  width: 100%;
  background-size: 100% 100%;
  z-index: 1;
}
.topsec-introduction::before {
  background-image: url(../images/common/mask_wave_c.svg);
}
.topsec-introduction::after {
  background-image: url(../images/common/mask_wave_w.svg);
}
.topsec-introduction::before {
  top: -1px;
  transform: scale(1,-1);
}
.topsec-introduction::after {
  bottom: -1px;
}
.topsec-introduction .imgbox {
  position: sticky;
  top: 50px;
  width: 28vw;
  transform: translateX(100px);
}
.topsec-introduction .txtwrap {
  background: #fff;
  border-radius: 100px 0 0 100px;
  padding: 15rem 5rem 8rem 8rem;
  width: 55vw;
  margin-left: auto;
  position: relative;
  top: -350px;
}
.profilebox {
  margin-bottom: 5rem;
}
.youtubebox {
  margin-bottom: 10rem;
}
.youtubebox iframe {
  aspect-ratio: 2/1.15;
  height: 100%;
  width: 100%;
}
.historybox {
  margin-bottom: 3rem;
}
@media only screen and (max-width: 1180px) {
  .topsec-introduction .imgbox {
    transform: translateX(2vw);
    width: 390px;
  }
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
  .topsec-introduction .imgbox {
    transform: translateX(-2vw);
  }
  .topsec-introduction .txtwrap {
    padding: 10rem 5rem 5rem 5rem;
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
}
@media only screen and (max-width: 425px) {
  .topsec-introduction {
    padding: 21rem 0 32rem;
  }
  .topsec-introduction::before,
  .topsec-introduction::after {
    height: 20px;
  }
  .topsec-introduction .txtwrap {
    border-radius: 20px 0 0 20px;
    padding: 6rem 5rem 2rem 2rem;
    width: 95vw;
    top: 0;
  }
  .topsec-introduction .imgbox {
    position: absolute;
    top: initial;
    bottom: 0;
    transform: translateX(-20px);
    width: 230px;
  }
  .topsec-introduction .logomark-w {
    position: absolute;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
  }
  .topsec-introduction .nm {
    margin-top: 0;
  }
  .topsec-introduction .txt1 {
    top: 23vw;
    left: 10vw;
    font-size: 10vw;
  }
  .topsec-introduction .txt2 {
    top: 35vw;
    left: 50vw;
    font-size: 7vw;
  }
  .topsec-introduction .txt3 {
    top: initial;
    bottom: 150px;
    right: 3vw;
    font-size: 12vw;
  }
  .topsec-introduction .txt4 {
    top: initial;
    bottom: 100px;
    right: 1vw;
    font-size: 5.6vw;
  }
}

/*****************************
topsec-news
*****************************/
.topsec-news {
  background: #fff;
  padding: 20rem 0 10rem;
}
.topsec-news .ttlbox1 .en {
  color: rgba(0,0,0,.05);
}
.topsec-news .newsbox {
  margin-top: 8rem;
  margin-bottom: 5rem;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-news {
    padding: 10rem 0;
  }
  .topsec-news .newsbox {
    margin-top: 4rem;
  }
  .topsec-news .ttlbox1 .en {
    font-size: 14.5vw;
    top: -30px;
  }
}
