@charset "UTF-8";

/*****************************
  top
*****************************/
.topsec{
  padding: 20rem 0;
}
.cmnflex {
  gap: 5rem;
}
.cmnflex .fttl{
  width: 180px;
}
.cmnflex .fbox{
  width: calc(100% - 230px);
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
}
@media only screen and (max-width: 820px) {
  .topsec {
    padding: 10rem 0;
  }
  .cmnflex .fttl {
    width: 140px;
  }
  .cmnflex .fbox{
    width: calc(100% - 190px);
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .cmnflex {
    gap: 3rem;
  }
  .cmnflex .fttl,
  .cmnflex .fbox{
    width: 100%;
  }
}

/*****************************
topsec-fv
*****************************/
.topsec-fv{
  padding: 0;
}
.topsec-fv .splide{
  width: 70%;
}
.topsec-fv .splide__slide{
  aspect-ratio: 725/591;
  mask-image: url("../images/common/mask1.svg");
  mask-repeat: no-repeat;
  mask-position: 0 0;
  mask-size: 100%;
  /* height: 100vh; */
  width: 100%;
}

.topsec-fv .maincatch{
  position: absolute;
  top: 15%;
  right: 10%;
  writing-mode: vertical-rl;
}
.topsec-fv .maincatch span{
  display: block;
  font-size: 3vw;
  font-weight: bold;
  letter-spacing: 18px;
  text-shadow: 0px 0px 1px #fff, 0px 0px 2px #fff, 0px 0px 3px #fff, 0px 0px 4px #fff,0px 0px 5px #fff,0px 0px 5px #fff;
}
.topsec-fv .maincatch span:last-of-type{
  margin-top: 11rem;
}
.topsec-fv .subcatch{
  position: absolute;
  right: 3vw;
  bottom: 12%;
  text-align: right;
}
.topsec-fv .subcatch p{
  font-size: 2.4vw;
  font-weight: bold;
  text-shadow: 0px 0px 1px #fff, 0px 0px 2px #fff, 0px 0px 3px #fff, 0px 0px 4px #fff,0px 0px 5px #fff,0px 0px 5px #fff;
}
.topsec-fv .subcatch .ja{
  font-size: 1.8vw;
}

@media only screen and (max-width: 1180px) {
  .topsec-fv .splide{
    width: 80%;
  }
  .topsec-fv .maincatch {
    right: 6%;
  }
}
@media only screen and (max-width: 1024px) {
  .topsec-fv .maincatch span {
    font-size: 4vw;
  }
  .topsec-fv .subcatch {
    bottom: 3%;
  }
  .topsec-fv .subcatch p {
    font-size: 3.4vw;
  }
  .topsec-fv .subcatch .ja {
    font-size: 2.2vw;
  }
}
@media only screen and (max-width: 960px) {
  .topsec-fv .splide{
    width: 100%;
  }
  .topsec-fv .subcatch {
    bottom: 10%;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-fv .splide{
    width: 120%;
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-fv .splide{
    width: 100%;
  }
  .topsec-fv .splide__slide{
    mask-image: none;
    height: 100vh;
  }
  .topsec-fv .maincatch {
    line-height: 1.6;
  }
  .topsec-fv .maincatch span {
    font-size: 8vw;
    letter-spacing: 23px;
  }
  .topsec-fv .subcatch {
    right: 2vw;
    bottom: 2rem;
  }
  .topsec-fv .subcatch p {
    font-size: 5.3vw;
  }
  .topsec-fv .subcatch .ja {
    font-size: 4vw;
  }
}

/*****************************
topsec-message
*****************************/
.topsec-message {
  min-height: 700px;
}
.topsec-message .bgmask{
  aspect-ratio: 227 / 165;
  mask-image: url("../images/common/mask2.svg");
  mask-repeat: no-repeat;
  mask-position: 0 0;
  mask-size: 100%;
  position: absolute;
  top: 0;
  right: 0;
  width: 70%;
}
.topsec-message .bg{
  background: url(../images/top/message_bg.webp) no-repeat center / cover;
  aspect-ratio: 227 / 165;
  width: 100%;
}
.topsec-message .message{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20rem;
  padding-top: 6rem;
  position: relative;
}
.topsec-message .ttl{
  display: flex;
  flex-direction: column;
  font-size: 3rem;
  gap: 2rem;
  text-shadow: 0px 0px 1px #fff, 0px 0px 2px #fff, 0px 0px 3px #fff, 0px 0px 4px #fff,0px 0px 5px #fff,0px 0px 5px #fff;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
  .topsec-message .bg{
    width: 75%;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-message .bg {
    width: 85%;
  }
}
@media only screen and (max-width: 768px) {
  .topsec-message .bg {
    width: 90%;
  }
}
@media only screen and (max-width: 767px) {
  .topsec-message > .inner3{
    display: flex;
    flex-direction: column;
    gap: 5rem;
  }
  .topsec-message .bg{
    position: relative;
    width: 100%;
  }
  .topsec-message .message{
    gap: 6rem;
    padding: 0;
  }
  .topsec-message .ttl{
    font-size: 6vw;
  }
  .topsec-message .morebtn1{
    text-align: right;
  }
}

/*****************************
topsec-business
*****************************/
.topsec-business{
  padding: 10rem 0 30rem;
}
.topsec-business::before{
  content: "";
  background: #707070;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  height: 130px;
  width: 1px;
}
.topsec-business .business{
  flex-direction: column;
  gap: 12rem;
}
.topsec-business .business > div{
  display: flex;
  gap: 5rem;
}
.topsec-business .business .bttl{
  writing-mode: vertical-rl;
}
.topsec-business .business .bttl span{
  font-size: 3rem;
  letter-spacing: 12px;
}
.topsec-business .business .bcontent .imgbox img{
  aspect-ratio: 17 / 7;
  object-fit: cover;
  height: auto;
  width: 100%;
}
.topsec-business .business .bcontent .txt{
  margin: 3rem 0;
}
.topsec-business .business .bcontent .txt .ttl{
  font-size: 3.4rem;
  font-weight: 500;
  letter-spacing: 4px;
  margin-bottom: 1rem;
}
.topsec-business .business .bcontent .txt p{
  font-size: 1.8rem;
}
.topsec-business .business .bcontent .morebtn1{
  text-align: right;
}
@media only screen and (max-width: 1180px) {
}
@media only screen and (max-width: 1024px) {
  .topsec-business .business .bcontent .txt .ttl{
    font-size: 3rem;
  }
}
@media only screen and (max-width: 820px) {
  .topsec-business {
    padding: 8rem 0 25rem;
  }
  .topsec-business::before {
    bottom: 40px;
    height: 90px;
  }
  .topsec-business .business > div {
    gap: 3rem;
  }
  .topsec-business .business .bttl span {
    font-size: 2.4rem;
  }
  .topsec-business .business .bcontent .txt .ttl {
    font-size: 2.4rem;
  }
  .topsec-business .business .bcontent .txt p {
    font-size: 1.6rem;
  }
}
@media only screen and (max-width: 768px) {
}
@media only screen and (max-width: 767px) {
  .topsec-business .business .bttl {
    line-height: 1.4;
  }
  .topsec-business .business .bttl span {
    font-size: 2rem;
  }
  .topsec-business .business .bcontent .txt .ttl {
    font-size: 2rem;
  }
  .topsec-business .business .bcontent .txt {
    margin: 1rem 0 2rem ;
  }
}

/*****************************
topsec-works
*****************************/
.topsec-works .workslide{
  margin-left: auto;
  width: 80%;
}
.topsec-works .splide__slide{
  padding: 4rem 0;
}
.topsec-works .splide__slide .item{
  border: 1px solid #000;
  display: block;
  opacity: 1;
  padding: 1.5rem 1.5rem 2rem;
  transition: .5s;
  transform: translateY(30px);
}
.topsec-works .splide__slide:nth-of-type(even) .item{
  transform: translateY(-30px);
}
.topsec-works .splide__slide .item img{
  aspect-ratio: 4/3;
  object-fit: cover;
  height: auto;
  width: 100%;
}
.topsec-works .splide__slide .item .ttl{
  border-bottom: 1px solid #ccc;
  font-weight: bold;
  margin: 1.5rem 0 3rem;
  padding-bottom: .5rem;
  position: relative;
}
.topsec-works .splide__slide .item .ttl::before{
  content: "";
  background: #000;
  position: absolute;
  bottom: -1px;
  left: 0;
  height: 1px;
  width: 50px;
  transition: .5s;
}
.topsec-works .splide__slide .item .more{
  font-family: "M PLUS 2", sans-serif;
  font-weight: bold;
  text-align: right;
}
.topsec-works .workslide:hover .splide__slide > .item:not(:hover){
  opacity: .3;
}
@media only screen and (min-width: 820px) {
  .topsec-works .splide__slide:hover > .item{
    background: #fff;
    transform: translateY(0);
  }
  .topsec-works .splide__slide .item:hover .ttl::before{
    width: 100%;
  }
}

.topsec-works .morebtn1{
  margin-top: 5rem;
  text-align: right;
}


@media only screen and (max-width: 1439px) {
  .topsec-works .workslide{
    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-works .splide__slide{
    padding: 2rem 0;
  }
  .topsec-works .splide__slide .item{
    padding: 1rem 1rem 1.5rem;
    transform: translateY(10px);
  }
  .topsec-works .splide__slide:nth-of-type(even) .item{
    transform: translateY(-10px);
  }
  .topsec-works .splide__slide .item .ttl {
    margin: 1rem 0 2rem;
  }
}


/*****************************
topsec-news
*****************************/
.topsec-news{
  padding: 0;
}
.topsec-news .morebtn1{
  margin-top: 4rem;
  text-align: right;
}

/*****************************
topsec-contact
*****************************/
.topsec-contact .fbox{
  margin-top: 10rem;
}
.topsec-contact .txt{
  margin-bottom: 4rem;
}
.topsec-contact .morebtn1{
  margin-top: 1rem;
  text-align: right;
}
@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-contact .fbox{
    margin: 0;
  }
}