html{
  scroll-behavior: smooth;
}

body{
  min-width: 1080px;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
}

a{
  text-decoration: none;
}

.serif{
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}

.totop-banner{
  position: fixed;
  width: 60px;
  height: 60px;
  bottom: 120px;
  right: 20px;
  z-index: 10000;
}

.recruit-banner{
  position: fixed;
  width: 230px;
  height: 80px;
  bottom: 10px;
  right: 0;
  z-index: 10000;
}

/* ヘッダーロゴ */
.header-logo{
  transition: all 0.3s ease-in-out;
  transition-delay : 0.1s;
  position: relative;
  z-index: 10002;
  object-fit: contain;
	cursor: pointer;

  @container scroll-state(stuck: top) {
    top: 10px;
    left: 20px;
    width: 300px;
    height: 60px;
  }
  
  @container scroll-state(not (stuck: top)) {
    top: 20px;
    left: 20px;
    width: 360px;
    height: 82px;
  }
}

/* ヘッダー背景 */
.header-bg{
  width: auto;
  container-type: scroll-state;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 10000;

  @container scroll-state(stuck: top) {
    height: 75px;
  }
  
  @container scroll-state(not (stuck: top)) {
    height: 125px;
  }
}
.header-bg.not-scroll{
    height: 125px;
    margin-bottom: 0;
}
.header-bg.scroll{
    height: 75px;
    margin-bottom: 50px;
}

/* ヘッダー上部固定 */
.header-stuck{
  transition: all 0.3s ease-in-out;
  transition-delay : 0.1s;

  @container scroll-state(stuck: top) {
    width: 100%;
    height: 100%;
    clip-path: polygon(0 0, 120vw 0, 117vw 75px, 0 75px);
    position: relative;
    background: white;
  }
  
  @container scroll-state(not (stuck: top)) {
    width: 450px;
    height: 100%;
    clip-path: polygon(0 0, 450px 0, 375px 125px, 0 125px);
    position: relative;
    background: white;
  }
}

/* ヘッダーリンクリスト */
.nav-list-container {
  transition: all 0.3s ease-in-out;
  transition-delay : 0.1s;
  position: absolute;
  top: 0;
  right: 0;
  margin-top: 0;

  @container scroll-state(stuck: top) {
    .nav-list{
      height: 75px;
    }
    .nav-list .nav{
      color: black;
    }
  }

  @container scroll-state(not (stuck: top)) {
    .nav-list{
      height: 125px;
    }
    .nav-list .nav{
      color: white;
    }
  }
}

.nav-list {
  list-style: none;
  align-items: center;
  font-size: small;
  display: grid;
  top: 0;
  right: 0;
  grid-template-columns: auto auto auto auto auto auto;
  align-items: center;
  position: relative;
  width: 700px;
  padding: 0 10px;
  margin: 0 10px;
  color: white;
  background: transparent;
  z-index: 10002;
  transition: all 0.3s ease-in-out;
  transition-delay : 0.1s;
}

.nav {
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease-in-out;
  transition-delay : 0.1s;
}

.nav:hover{
  transform: translateY(-3px);
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

.nav:focus{
  transform: translateY(-3px);
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

/* スライドをフル幅に */
.slideshow{
  position: absolute;
  width: 100%;
  box-sizing: border-box;
  height: 798px;
  margin-top: 0;
  margin-left: 0;
  overflow: hidden;
  top: 0;
  left: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* スライド共通 */
.slideshow .slide{
  position: absolute;
  inset: 0;

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  opacity: 0;
  transform: scale(1.5);

  animation: slideshow 30s linear infinite;
}

/* 各スライドの画像 */
.slideshow .slide:nth-child(1){
  background-image: url(images/slide-1.jpg);
  animation-delay: 0s;
}

.slideshow .slide:nth-child(2){
  background-image: url(images/slide-2.jpg);
  animation-delay: 10s;
}

.slideshow .slide:nth-child(3){
  background-image: url(images/slide-3.jpg);
  animation-delay: 20s;
}

/* スライドのアニメーション */
@keyframes slideshow{

  0%{
    opacity: 0;
    transform: scale(1.5);
	  filter: blur(0.5rem);
  }
  8%{
    opacity: 1;
  }
  27%{
	  filter: blur(0rem);
  }
  33%{
    opacity: 1;
  }

  45%{
    opacity: 0;
  }

  100%{
    opacity: 0;
    transform: scale(1);
  }
}

.title{
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 90px;
  margin-bottom: 40px;
}

.subtitle{
  margin-left: 50px;
  font-size: 15px;
}

.hover-trans {
  opacity: 1;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
}

.hover-trans:hover{
  opacity: 0.8;
	cursor: pointer;
  transition-delay: 0s;
}

.trust{
  position: absolute;
  color: white;
  z-index: 5000;
  top: 25vh;
  left: 10vw;
  width: 530px;
  line-height: 30px;
}

.kenou-button{
  object-fit: contain;
	cursor: pointer;
  width: 300px;
  margin-top: 30px;
}

.company{
  height: 1000px;
  color: white;
}

.company-slide{
  width: auto;
  height: 1000px;
  margin-left: 0;
  overflow: hidden;
  left: 0;
  z-index: 0;
}
.company-slide.not-scroll{
  margin-top: 673px;
}
.company-slide.scroll{
  margin-top: 723px;
}

.company-slide .slide{
  width: 100%;
  height: 1000px;
  position: absolute;
  object-fit: cover;

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  opacity: 0;

  animation: company-slide 4.8s linear infinite;
}

.company-slide .slide:nth-child(1){
  background-image: url(images/comslide-1.jpg);
  animation-delay: 0s;
}

.company-slide .slide:nth-child(2){
  background-image: url(images/comslide-2.jpg);
  animation-delay: 2.4s;
}

@keyframes company-slide{
  0%{
    opacity: 1;
    z-index: 0;
  }

  50%{
    opacity: 1;
    z-index: 1;
  }

  62.5%{
    opacity: 0;
  }

  100%{
    opacity: 0;
  }
}

.company .contents{
  z-index: 5000;
  position: relative;
  top: -750px;
  left: 50vw;
  width: 530px;
  line-height: 30px;
}

.overview-button{
  margin-top: 30px;
  margin-left: 20px;
  margin-right: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px;
  /*background-color: white;*/
  border: 3px solid white;
	cursor: pointer;
}

.overview-button::after {
  background: white;
  position: absolute;
  content: '';
  width: 484px;
  height: 90px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.overview-button:hover {
  color: #1B76B0;
}
.overview-button:hover::after {
  transform: scale(1, 1);
}

.philosophy-button{
  margin-top: 20px;
  margin-left: 20px;
  margin-right: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px;
  border: 3px solid white;
	cursor: pointer;
}

.philosophy-button::after {
  background: white;
  position: absolute;
  content: '';
  width: 484px;
  height: 90px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.philosophy-button:hover {
  color: #1B76B0;
}
.philosophy-button:hover::after {
  transform: scale(1, 1);
}

.business{
  height: 891px;
  width: auto;
  position: relative;
  background-image: url(images/business.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #5a5a5a;
}

.business .trans-logo{
  position: relative;
  object-fit: contain;
  top: 7%;
  left: 23%;
  width: 424px;
  height: 390px;
  opacity: 0;
  transform: translateY(-40px);
  transition: 0.5s ease;
  transition-delay: 0s;
}

.business .trans-logo.show{
  transform: translateY(0);
  opacity: 1;
}

.business .bus-line{
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
}
.business .bus-line::after{
  top: 25%;
  left: 55%;
  background: linear-gradient(to right, #a0a0a0);
  content: '';
  display: block;
  height: 2px;
  width: 0;
  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  position: absolute;
  bottom: 0;
}
.business .bus-line.show::after {
  width: 40%;
}


.business .contents{
  z-index: 2500;
  position: absolute;
  top: 12%;
  left: 30%;
  width: 900px;
}

.business .subtitle{
  margin-left: 0px;
  font-size: 15px;
}

.business-list-container{
  position: relative;
  top: -2%;
  left: -7%;
}

.business-list {
  list-style: none;
  align-items: center;
  font-size: small;
  display: grid;
  top: 0;
  right: 0;
  grid-template-columns: auto auto auto auto;
  align-items: center;
  position: relative;
  width: 1000px;
  height: auto;
}

.business-list li{
  text-align: center;
  margin: 0 15px;
}

.busnav{
  display: block;
  align-items: center;
  justify-content: center;
  line-height: 30px;
  font-size: 15px;
}

.busnav-number {
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 30px;
}

.busnav-odd{
  margin-bottom: 70px;
}

.busnav-even{
  margin-top: 70px;
}

.busnav img{
  width: 220px;
  display: block;
  justify-content: center;
  align-items: center;
  object-fit: contain;
  margin: 10px 0;
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.5s, transform 0.8s ease-out;
}

.business-list-container.show .business-list li .busnav img{
  opacity: 1;
  transform: translateY(0);
}

.business-list-container.show .business-list li:nth-child(1) .busnav img{
  transition-delay: 0s;
}
.business-list-container.show .business-list li:nth-child(2) .busnav img{
  transition-delay: 0.3s;
}
.business-list-container.show .business-list li:nth-child(3) .busnav img{
  transition-delay: 0.6s;
}
.business-list-container.show .business-list li:nth-child(4) .busnav img{
  transition-delay: 0.9s;
}

.business-list-container.animation-finished .business-list li .busnav img{
  transition-delay: 0s !important;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1) !important;
}

/* hover */
.busnav img:hover{
  opacity: 0.8 !important;
}


/*
.business-list-container.animation-finished img{
  transition-delay:0s !important;
}
*/

.busnav-title{
  font-size: 20px;
  font-weight: bold;
  color: #005F96;
  margin-bottom: 20px;
}

.recruitment{
  height: 1115px;
  width: auto;
  background-image: url(images/recruitment.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  color: #5a5a5a;
}

.recruitment img{
  aspect-ratio: 1/1;
  position: absolute;
  opacity: 0;
}

.recruit-1{
  height: 25%;
  top: 7%;
  right: 0;
  left: -700px;
  margin: 0 auto;
  transition-delay: 0;
  transform: translateY(-40px);
}
.recruit-2{
  height: 21%;
  top: 40%;
  right: 0;
  left: -900px;
  margin: 0 auto;
  transition-delay: .3s;
  transform: translateX(40px);
}
.recruit-3{
  height: 17%;
  top: 70%;
  right: 0;
  left: -750px;
  margin: 0 auto;
  transition-delay: 1s;
  transform: translateY(40px);
}

.recruitment.show img{
  opacity: 1;
  transform: translateX(0) translateY(0);
  z-index: 255;
}
.recruitment.show .recruit-1{
  transition: opacity 0.5s, transform 0.8s ease-out;
  transition-delay: 0s;
}
.recruitment.show .recruit-2{
  transition: opacity 0.5s, transform 0.8s ease-out;
  transition-delay: .3s;
}
.recruitment.show .recruit-3{
  transition: opacity 0.5s, transform 0.8s ease-out;
  transition-delay: 1s;
}

.recruitment .rec-line{
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
}
.recruitment .rec-line::after{
  top: 20%;
  right: 0;
  left: 300px;
  margin: 0 auto;
  background: linear-gradient(to left, #a0a0a0);
  content: '';
  display: block;
  transform: translateX(-100%);
  height: 2px;
  width: 0;
  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  position: absolute;
  bottom: 0;
}
.recruitment.show .rec-line::after {
  width: 20%;
}

.recruitment .contents{
  z-index: 2500;
  position: absolute;
  top: 12%;
  left: 49.5%;
  width: 550px;
  font-size: 17px;
}

.recruitment .subtitle{
  margin-left: 0px;
  font-size: 15px;
}

.recruitment .head{
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 30px;
  line-height: 70px;
  margin-bottom: 30px;
}

.marker{
  background: linear-gradient(transparent 45%, #FFE881 45%);
}

.recruitment .contents .sentence{
  line-height: 35px;
}

.recruit-button{
  margin-top: 30px;
  margin-left: 20px;
  margin-right: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px;
  color: #005F96;
  border: 3px solid #005F96;
	cursor: pointer;
}

.recruit-button::after {
  background: #005F96;
  position: absolute;
  content: '';
  width: 504px;
  height: 85px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.recruit-button:hover {
  color: #fff;
}
.recruit-button:hover::after {
  transform: scale(1, 1);
}

.event-button{
  margin-top: 20px;
  margin-left: 20px;
  margin-right: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 30px;
  color: #1885C4;
  border: 3px solid #1885C4;
	cursor: pointer;
}

.event-button::after {
  background: #1885C4;
  position: absolute;
  content: '';
  width: 504px;
  height: 85px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.event-button:hover {
  color: #fff;
}
.event-button:hover::after {
  transform: scale(1, 1);
}

.topics-enquiry{
  height: 543px;
  width: auto;
  background-image: url(images/topics-enquiry.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.topics{
  color: #5a5a5a;
  position: relative;
}

.topics .title{
  font-size: 45px;
  position: absolute;
  top: 40px;
  left: 20%;
}

.timeline{
  position: absolute;
  top: 20px;
  left: 35%;
  width: 850px;
  height: 120px;
}

.enquiry{
  color: white;
  position: relative;
  top: 290px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.enquiry .contents .address{
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
}

.enquiry .contents .number{
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 30px;
}

.enquiry-button{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #005F96;
  border: 3px solid white;
	width: 600px;
  height: 80px;
  position: relative;
  cursor: pointer;
  z-index: 0;
}

.enquiry-button .text{
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
	width: 606px;
  height: 86px;
  position: absolute;
  z-index: 0;
}

.enquiry-button .text::after {
  background: white;
  position: absolute;
  content: '';
  width: 600px;
  height: 80px;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: .2s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.enquiry-button .text:hover {
  color: #005F96;
}
.enquiry-button .text:hover::after {
  transform: scale(1, 1);
}

.news{
  color: #4a4a4a;
  height: 350.5px;
  width: auto;
  background-color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.news .contents{
  display: flex;
  justify-content: center;
  align-items: center;
}

.news .contents .serif{
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 35px;
  position: absolute;
  top: 70px;
}

.timeline-news{
  position: absolute;
  top: 150px;
  height: 150px;
  width: 1120px;
}

.bottom-enquiry{
  height: 545.5px;
  width: auto;
  background-image: url(images/bot-enquiry.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
  position: relative;
}

.bottom-enquiry .contents{
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

.bottom-enquiry .contents .sentence{
  position: absolute;
  top: 150px;
  left: 150px;
}

.bottom-enquiry .contents .sentence .serif{
  font-size: 40px;
}

.bottom-enquiry .contents .sentence .number{
  font-size: clamp(2.5rem, 2.045rem + 2.27vw, 3.75rem);
}

.bottom-enquiry .contents .sentence .address{
  font-size: 30px;
}

.bottom-enquiry-button{
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  background-color: #DF9340;
  border-radius: 10px;
  width: 600px;
  height: 60px;
  font-size: 30px;
  position: absolute;
  top: 250px;
  right: 150px;
}

.footer{
  height: 50px;
  width: auto;
  color: white;
  background-color: #403F3F;
  display: flex;
  justify-content: center;
  align-items: center;
}