@charset "utf-8";

/* --------------------------------------------
メインビジュアル
-----------------------------------------------*/
#home .main-visual{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  min-height: min(61.1111vw, 890px);
  background : url(img/top/pc-promo.webp) center center / cover no-repeat scroll padding-box border-box transparent;
  background-position: center center;
}

/* 左側白菱形 */
#home .main-visual::before{
  content: "";
  position: absolute;
  top: -70px;
  left: -350px;
  background: var(--base-white);
  width: 485px;
  height: 550px;
  transform: skewX(-30deg);
  opacity: 0.17;
}

/* 右側青菱形 */
#home .main-visual::after{
  content: "";
  position: absolute;
  top: 0;
  right: -530px;
  background: var(--base-green);
  width: min(880/1200 * 100vw, 880px);
  height: 100%;
  transform: skewX(-30deg);
  opacity: 0.4;
}

#home .main-visual__content{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#home .main-visual__key-wrap{
  position: relative;
  max-width: 1200px;
  width: 95%;
  height: 100%;
  margin: 0 auto;
}

#home .main-visual__key-txt{
  position: absolute;
  bottom: 60px;
  left: 0;
  width: min(45vw, 684px);
}

/* 菱形白背景 */
.square__white-illust{
  position: absolute;
  top: 0px;
  left: -20px;
  height: min(43.3333vw, 520px);
  width: 35%;
  background: var(--base-white);
  opacity: 0.5;
  z-index: 0;
  transform: skewX(-30deg);
  transform-origin: left top;
}

@media screen and (max-width: 767px) {
  #home .main-visual{
    min-height: clamp(530px, 119.25vw, 665px);
    margin-top: 80px;
    background : url(img/top/sp-promo.webp) center center / cover no-repeat scroll padding-box border-box transparent;
  }

  #home .main-visual__key-txt{
    top: 40px;
    left: 50%;
    translate: -50%;
    width: 90vw;
  }

  #home .main-visual::after{
    right: -75%;
  }

  .square__white-illust{
    width: 50%;
  }
}

/* --------------------------------------------
お知らせ
-----------------------------------------------*/
#home .news{
  padding-top: 40px;
  margin-bottom: 65px;
  z-index: 6;
}

#home .news a{
  position: relative;
  display: flex;
  align-items: center;
  padding: 23px 40px;
  background: var(--base-white);
  box-shadow: 8px 5px 8px 0px rgb(0, 0, 0, 0.1);
  gap: min(40/1200 * 100vw, 40px);
  line-height: 1.77;
  border-radius: 3px;
  z-index: 5;
}

#home .news h3{
  position: relative;
  font-size: var(--fontsize18);
  font-weight: 600;
  padding-left: 30px;
  white-space: nowrap;
}

#home .news__info {
  display: flex;
  gap: min(40/1200 * 100vw, 40px);
  align-items: center;
}

#home .news h3::before{
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: var(--base-green);
  transform: skewX(-30deg);
  position: absolute;
  left: 0;
  top: 50%;
  translate: 0 -50%;
}

#home .news time{
  color: var(--base-green);
  font-weight: 600;
  font-family: Arial, Helvetica, "Liberation Sans", "Nimbus Sans L", sans-serif;
  white-space: nowrap;
}

#home .news p{
  font-family: var(--fontsize18);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1; /* ← ここで3行に指定 */
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  #home .news {
    padding-top: min(30/384 * 100vw, 30px);
    margin-bottom: min(30/384 * 100vw, 30px);
  }

  #home .news h3{
    position: relative;
    font-weight: 600;
    padding-left: 20px;
  }

  #home .news a {
    flex-direction: column;
    align-items: baseline;
    gap: 5px;
    padding: 15px min(30/384 * 100vw, 30px) 20px min(35/384 * 100vw, 35px);
  }

  #home .news time,
  #home .news p {
    font-size: var(--fontsize16);
  }
}

/* --------------------------------------------
川崎重工宇宙プロダクションテクノロジーについて
-----------------------------------------------*/
#home .company {
  margin-bottom: min(120/1200 * 100vw, 120px);
}

#home .company__wrap .heading {
  margin-bottom: min(20/1200 * 100vw, 20px);
}

#home .company__description{
  font-size: var(--fontsize16);
  margin-bottom: min(45/1200 * 100vw, 45px);
  line-height: 2;
  letter-spacing: 0.04em;
}

#home .company__content {
  display: grid;
  grid-template-columns: clamp(300px, 31vw, 378px) 1fr;
  gap: min(36/1200 * 100vw, 36px);
}

#home .company__image {
  margin-right: calc(-1 * min(200 / 1500 * 100vw, 200px));
}

/* 菱形背景 */
#home .company__square{
  position: absolute;
  top: 0;
  right: 0;
}

#home .company__square-item{
  width: 155px;
  height: 250px;
  opacity: 0.2;
  transform: skew(-30deg);
}

#home .company__square-item--blue{
  background: var(--base-blue);
  position: absolute;
  top: 70px;
  right: -285px;
}

#home .company__square-item--green{
  background: var(--base-green);
  position: absolute;
  top: 130px;
  right: -135px;
}

@media screen and (max-width: 1199px) {
  #home .company__image{
    margin-right: -5%;
  }
}

@media screen and (max-width: 767px) {
  #home .company {
    margin-bottom: min(80/384 * 100vw, 80px);
  }

  #home .company__content {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  #home .company__description {
    margin-bottom: min(35/384 * 100vw, 35px);
  }

  #home .company__image{
    margin-right: 0;
  }

  #home .company__content .widget-btn {
    order: 2;
  }

  /* 菱形背景 */
  #home .company__square-item {
    width: min(105/384 * 100vw, 105px);
    height: min(160/384 * 100vw, 160px);
  }

  #home .company__square-item--green{
    top: 50px;
    right: 0;
    transform-origin: top right;
  }

  #home .company__square-item--blue{
    top: 20px;
    right: -50px;
  }
}

/* --------------------------------------------
3分でわかるKAPT
-----------------------------------------------*/
#home .about{
  position: relative;
}

#home .about__wrap {
  margin-bottom: min(200/1200 * 100vw, 200px);
}

#home .about__content {
  display: grid;
  grid-template-columns: clamp(300px, 31vw, 378px) 1fr;
  gap: 36px;
}

#home .about__image{
  position: relative;
  margin-top: 10px;
  padding: 45px min(60/1200 * 100vw, 60px);
  padding-left: 0;
}

#home .about__image::before{
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  background : url(img/top/about-bg.webp) right center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: cover;
  width: 100vw;
  height: 100%;
  z-index: 4;
}

#home .about__image img{
  position: relative;
  z-index: 5;
}

/* 菱形背景右側 */
#home .about__square-left{
  position: absolute;
  right: 0;
  top: 0;
}

#home .about__square-left .about__square-item {
  width: min(350/1200 * 100vw, 350px);
  height: min(390/1200 * 100vw, 390px);
  transform: skewX(-30deg);
}

#home .about__square-left .about__square-item--blue{
  width: min(290/1200 * 100vw, 290px);
  height: min(330/1200 * 100vw, 330px);
  position: absolute;
  top: min(110/1200 * 100vw, 110px);
  right: calc(-1 * min(180/1200 * 100vw, 180px));
  background: var(--base-blue);
  transform: skewX(-30deg);
  z-index: 1;
}

#home .about__square-left .about__square-item--green{
  background: var(--base-green);
  position: absolute;
  top: min(190/1200 * 100vw, 190px);
  right: calc(-1 * min(410/1200 * 100vw, 410px));
  z-index: 0;
}

#home .about__square-left .about__square-item--dark-green{
  background: var(--base-dark-green);
  opacity: 0.3;
  position: absolute;
  top: min(330/1200 * 100vw, 330px);
  right: -80px;
  z-index: 4;
}

/* 菱形背景左側 */
#home .about__square-right{
  position: absolute;
  top: 0;
  left: 0;
}

#home .about__square-right .about__square-item {
  width: min(255/1200 * 100vw, 255px);
  height: min(290/1200 * 100vw, 290px);
  opacity: 0.2;
  transform: skewX(-30deg);
}

#home .about__square-right .about__square-item--blue{
  background: var(--base-green);
  position: absolute;
  top: 120px;
  left: 100px;
  z-index: 4;
}

#home .about__square-right .about__square-item--green{
  background: var(--base-blue);
  position: absolute;
  top: 230px;
  left: -100px;
  z-index: 4;
}

@media screen and (max-width: 767px) {
  #home .about__wrap {
    margin-bottom: min(80/384 * 100vw, 80px);
  }

  #home .about__content {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  #home .about__content .widget-btn {
    order:2;
  }

  #home .about__image{
    margin-top: 0;
    padding: 0;
  }

  #home .about__image img{
    position: relative;
    z-index: 10;
  }

  #home .about__image::before{
    top: -90px;
    right: -10%;
    background : url(img/top/about-bg-sp.webp) right center / auto auto no-repeat scroll padding-box border-box transparent;
    background-size: cover;
    width: 50vw;
    height: min(510/500*100vw,510px);
  }

  /* 菱形背景 */
  #home .about__square-right .about__square-item {
    width: min(105/384*100vw,105px);
    height: min(110/384*100vw,110px);
    opacity: 0.6;
  }

  #home .about__square-right .about__square-item--green{
    top: 60px;
    left: 0;
  }

  #home .about__square-right .about__square-item--blue{
    top: 50px;
    left: -20px;
    opacity: 0.2;
  }

  #home .about__square-left{
    width: 100%;
    height: 100%;
  }

  #home .about__square-left .about__square-item--blue{
    width: min(90/384*100vw,90px);
    height: min(100/384*100vw,100px);
    top: initial;
    bottom: 20px;
    right: 103px;
    z-index: 9;
  }

  #home .about__square-left .about__square-item--green{
    top: initial;
    right: 0px;
    bottom: -25px;
    width: min(110/384*100vw,110px);
    height: min(120/384*100vw,120px);
    z-index: 5;
  }

  #home .about__square-left .about__square-item--dark-green{
    top: initial;
    bottom: -60px;
    right: 95px;
    width: min(115/384*100vw,115px);
    height: min(140/384*100vw,140px);
  }
}

/* --------------------------------------------
仕事を知る・人を知る
-----------------------------------------------*/
#home .job{
  position: relative;
  margin-bottom: min(200/1200 * 100vw, 200px);
}

#home .job__contain{
  position: relative;
}

/* スライダー */
#home .job__contain .mySwiper{
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  margin-bottom: 40px;
}

#home .job__slide{
  position: relative;
  width: 20%;
  overflow: hidden;
}

#home .job__slide::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: rotate(45deg) translateX(-100%);
  background: linear-gradient(90deg, var(--base-blue), #00ffe0, var(--base-green)) no-repeat;
  background-size: 100% 100%;
  opacity: 0;
  mix-blend-mode: hard-light;
}

#home .job__slide:hover::after {
  animation: gradientMove 0.5s linear;
}

@keyframes gradientMove {
  0% { transform: translateX(-200%); }
  5% { opacity: 0.3; }
  100% { transform: translateX(200%);  }
}

#home .job__slide:hover {
  opacity: 1;
}

#home .job__slide img{
  width: 100%;
}

#home .job_slide-txt{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: min(45/1600 * 100vw, 45px) min(30/1600 * 100vw, 30px);
  display: flex;
  flex-direction: column;
  justify-content: end;
}

#home .job_slide-txt > p{
  font-size: clamp(14px, calc(20 / 1800 * 100vw), 20px);
  color: var(--base-white);
  font-weight: 600;
  margin-bottom: 45px;
  line-height: 1.6;
}

#home .job_slide-txt > span{
  font-size: clamp(10px, calc(16 / 1900 * 100vw), 16px);
  color: var(--base-white);
  font-weight: 600;
}
/* ページネーション */
#home .job__contain .job__pagination{
  position: absolute;
  bottom: 0;
  right: 0;
  display: flex;
  background: #000;
}

#home .job__contain .job__pagination::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -90%;
  background: var(--base-white);
  width: 1px;
  height: 30px;
  z-index: 10;
}

#home .job__contain .swiper-button-next,
#home .job__contain .swiper-button-prev{
  position: relative;
  top: initial;
  left: initial;
  right: initial;
  bottom: initial;
  height: 100%;
  background: black;
  width: 65px;
  height: 65px;
}

#home .job__contain .swiper-button-next::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  background : url(img/common/page-next-arw.png) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: 12px 23px;
  width: 12px;
  height: 23px;
}

#home .job__contain .swiper-button-prev::after{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  background : url(img/common/page-prev-arw.png) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: 12px 23px;
  width: 12px;
  height: 23px;
}

/* 一覧ボタン */
#home .job__btn-wrap a{
  position: relative;
  display: inline-block;
  background: #000;
  color: var(--base-white);
  padding: 20px 95px 20px 80px;
  font-size: var(--fontsize20);
  font-weight: 600;
  z-index: 5;
  border: 1px solid #000;
  transition: all 0.3s;
  z-index: 5;
}

#home .job__btn-wrap a:hover{
  background: var(--base-white);
  color: #000;
  transition: all 0.3s;
}

#home .job__btn-wrap a::after{
  content: "";
  background : url(img/common/white-right-arw.png) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: 20px 22px;
  width: 20px;
  height: 22px;
  position: absolute;
  top: 50%;
  right: 30px;
  translate: 0 -50%;
}

#home .job__btn-wrap a:hover::after{
  background : url(img/common/black-right-arw.png) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: 20px 22px;
}

/* 菱形背景 */
#home .job__square-item{
  position: absolute;
  transform: skewX(-30deg);
}

#home .job__square-item--white{
  max-width: 840px;
  width: 45%;
  height: min(970/1500 * 100vw, 970px);
  background: var(--base-white);
  top: -30px;
  left: 0;
  opacity: 0.6;
  transform-origin: left bottom;
}

#home .job__square-item--blue{
  max-width: 345px;
  width: 20%;
  height: min(395/1800 * 100vw, 395px);
  background: var(--base-blue);
  opacity: 0.2;
  bottom: -30px;
  right: 24%;
  transform-origin: right bottom;
}

#home .job__square-item--dark-green{
  max-width: 345px;
  width: 20%;
  height: min(395/1800 * 100vw, 395px);
  background: var(--base-dark-green);
  opacity: 0.2;
  bottom: 10px;
  right: 12%;
  transform-origin: right bottom;
}

#home .job__square-item--green{
  max-width: 500px;
  width: 30%;
  height: min(355/1800 * 100vw, 355px);
  background: var(--base-green);
  top: 0;
  right: -5vw;
}

@media screen and (max-width: 1199px) {
  #home .job_slide-txt > p {
    font-size: var(--fontsize15);
    margin-bottom: min(45/1600*100vw,45px);
  }

  #home .job_slide-txt > span {
    font-size: var(--fontsize12);
  }
}

@media screen and (max-width: 767px) {
  #home .job {
    margin-bottom: min(80/384 * 100vw, 80px);
  }

  #home .job__slide{
    width: 72%;
  }

  #home .job__contain .mySwiper{
    margin-bottom: 20px;
  }

  #home .job_slide-txt {
    padding: min(45/384*100vw,45px ) min(25/384*100vw,25px);
  }

  #home .job_slide-txt > p {
    font-size: var(--fontsize18);
    margin-bottom: min(35/384*100vw,35px);
  }

  #home .job_slide-txt > span {
    font-size: var(--fontsize13);
  }

  #home .job__contain .swiper-button-next,
  #home .job__contain .swiper-button-prev{
    width: 45px;
    height: 45px;
  }

  #home .job__contain .job__pagination{
    bottom: initial;
    top: 22px;
  }

  #home .job__btn-wrap{
    text-align: center;
  }

  #home .job__btn-wrap a{
    padding: 20px 85px 20px 70px;
  }

  .job__square{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  }

  #home .job__square-item--white{
    width: 85%;
    height: min(500/384*100vw,500px);
    top: 180px;
    left: -86%;
    transform-origin: left bottom;
  }

  #home .job__square-item--green{
    max-width: initial;
    width: 35%;
    height: min(180/384 * 100vw, 180px);
    top: 230px;
    right: 0;
    transform-origin: bottom right;
  }

  #home .job__square-item--dark-green{
    max-width: initial;
    width: 45%;
    height: min(205/384*100vw,205px);
    bottom: -15px;
    right: 5%;
  }

  #home .job__square-item--blue{
    max-width: initial;
    width: 45%;
    height: min(205/384*100vw,205px);
    background: var(--base-blue);
    right: 35%;
  }
}

/* --------------------------------------------
職場を知る
-----------------------------------------------*/
#home .environment{
  margin-bottom: min(190/1200 * 100vw, 190px);
  position: relative;
}

#home .environment__contain{
  position: relative;
}

#home .environment__btn{
  position: relative;
  display: flex;
  justify-content: center;
  gap: 5px;
  z-index: 5;
}

#home .environment__btn-item{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35%;
  height: min(525/1300 * 100vw, 525px);
  transform: skewX(-30deg);
}

#home .environment__btn-item::after{
  content: "";
  width: 50px;
  height: 65px;
  background: #000;
  position: absolute;
  bottom: 10px;
  right: 10px;
}

#home .environment__btn-item::before{
  content: "";
  width: 20px;
  height: 22px;
  background : url(img/common/white-right-arw.png) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-size: 20px 22px;
  position: absolute;
  bottom: 30px;
  right: 24px;
  transform: skewX(30deg);
  z-index: 5;
}

#home .environment__btn--benefits{
  background : linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)) 0% 0% / auto auto repeat scroll padding-box border-box, url(img/top/benefit-img.webp) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-color: #000;
  background-size: cover;
}

#home .environment__btn--training{
  background : linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0)) 0% 0% / auto auto repeat scroll padding-box border-box, url(img/top/training-img.webp) center center / auto auto no-repeat scroll padding-box border-box transparent;
  background-color: #000;
  background-size: cover;
}

#home .environment__btn-item span{
  transform: skewX(30deg);
  font-size: var(--fontsize32);
  font-weight: 600;
  color: var(--base-white);
}

/* 菱形背景内側 */
#home .environment__square-in{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#home .environment__square-in .environment__square-item--green{
  width: min(345/1200 * 100vw, 345px);
  height: min(395/1200 * 100vw, 395px);
  position: absolute;
  bottom: -29px;
  left: min(89/1300 * 100vw, 89px);
  background-color: var(--base-green);
  transform: skewX(-30deg);
  opacity: 0.2;
  z-index: 1;
}

#home .environment__square-in .environment__square-item--blue{
  width: min(241/1200 * 100vw, 241px);
  height: min(277/1200 * 100vw, 277px);
  position: absolute;
  top: 165px;
  right: 80px;
  background-color: var(--base-dark-blue);
  transform: skewX(-30deg);
  opacity: 0.3;
  z-index: 1;
}

/* 菱形背景外側 */
#home .environment__square-out{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#home .environment__square-out .environment__square-item--green {
  background: var(--base-dark-green);
  transform: skewX(-30deg);
}

#home .environment__square-out .environment__square-item--white{
  background: #fff;
  transform: skewX(-30deg);
}

#home .environment__square-out .environment__square-item--left{
  width: min(345/1200 * 100vw, 345px);
  height: min(395/1200 * 100vw, 395px);
  position: absolute;
  bottom: 0;
  left: 0;
  opacity: 0.3;
}

#home .environment__square-out .environment__square-item--left{
  width: min(345/1200 * 100vw, 345px);
  height: min(395/1200 * 100vw, 395px);
  position: absolute;
  bottom: -60px;
  left: 0;
  background: var(--base-dark-green);
  transform: skewX(-30deg);
  opacity: 0.3;
}

#home .environment__square-out .environment__square-item--right {
  width: min(248/1200 * 100vw, 248px);
  height: min(281/1200 * 100vw, 281px);
  transform: skewX(-30deg);
  opacity: 0.2;
}

#home .environment__square-out .environment__square-item--right.environment__square-item--green{
  position: absolute;
  top: 52px;
  right: 0px;
}

#home .environment__square-out .environment__square-item--right.environment__square-item--white{
  position: absolute;
  top: calc(-1 * min(90/1800 * 100vw, 90px));
  right: -130px;
  opacity: 0.68;
}

@media screen and (max-width: 767px) {
  #home .environment {
    margin-bottom: min(80/384 * 100vw, 80px);
  }

  #home .environment__btn {
    flex-direction: column;
    gap: 3px;
  }

  #home .environment__btn-item{
    width: 80%;
    margin: 0 auto;
    height: min(200/500*100vw,200px);
  }

  #home .environment__btn-item span{
    position: relative;
    font-size: var(--fontsize18);
    padding-left: 15px;
  }

  #home .environment__btn-item span::after{
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    width: 7px;
    height: 7px;
    background: var(--base-white);
    transform: skewX(-30deg);
  }

  #home .environment__btn-item::after {
    width: min(35/500*100vw,35px);
    height: min(40/500*100vw,40px);
    bottom: min(10/500*100vw,10px);
    right: min(10/500*100vw,10px);
  }

  #home .environment__btn-item::before {
    width: min(12/500*100vw,12px);
    height: min(14/500*100vw,14px);
    background-size: min(12/500*100vw,12px) min(14/500*100vw,14px);
    bottom: initial;
    top: min(162/500*100vw,162px);
    right: min(22/500*100vw,22px);
  }

  /* 菱形背景 */
  #home .environment__square-out .environment__square-item--right.environment__square-item--white,
  #home .environment__square-out .environment__square-item--left,
  #home .environment__square-out .environment__square-item--right.environment__square-item--green{
    display: none;
  }

  #home .environment__square-in .environment__square-item--green{
    width: 35%;
    height: min(240/500*100vw,240px);
    bottom: 40px;
    left: -40px;
  }

  #home .environment__square-in .environment__square-item--blue{
    width: 30%;
    height: min(150/500*100vw,150px);
    top: initial;
    bottom: -40px;
    right: 0;
  }
}