@charset "utf-8";

.p-top-fv {
  padding-top: 135px;
  position: relative;
  width: 100%;
  overflow: hidden;

  @media (width < 768px) {
    padding-top: 85px;
  }
}

.p-top-fv__inner {
  position: relative;
  max-width: 96%;

  @media (width < 1120px) {
    max-width: 100%;
  }
}

.gjs-dashed *[data-highlightable] .p-top-fv {
  height: auto;
  overflow: auto;
}

.p-top-fv__slides {
  position: relative;
  width: 100%;
  height: 100%;
  aspect-ratio: 1266 / 585;
  overflow: hidden;
  border-radius: 5px;
  z-index: 1;

  @media (width < 768px) {
    aspect-ratio: 1266 / 800;
  }
}

.gjs-dashed *[data-highlightable] .p-top-fv__slides {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  height: auto;
  aspect-ratio: auto;
}

.p-top-fv__slide {
  position: absolute;
  width: 100%;
  height: 100%;
  inset: 0;
  opacity: 0;
  transform: scale(1);
  transition:
    opacity 2s ease-out,
    transform 8s linear;
  object-fit: cover;
  border-radius: 5px;
}

.gjs-dashed *[data-highlightable] .p-top-fv__slide {
  height: auto;
  overflow: auto;
  position: static;
  opacity: 1;
  width: 33.3%;
  height: auto;
}

.p-top-fv__slide.is-active {
  opacity: 1;
  transform: scale(1.1);
}

.p-top-service {
  margin-top: -380px;
  background: transparent linear-gradient(180deg, #faefed 0%, #ffc7c17c 70%, #ffffff00 100%);
  padding: 477px 0 85px;

  @media (width < 1120px) {
    margin-top: -230px;
    padding: 300px 0 85px;
  }

  @media (width < 768px) {
    margin-top: -120px;
    padding: 200px 0 85px;
  }

  .l-inner {
    max-width: 1216px;
  }
}

.p-top-service__heading {
  text-align: center;
}

.p-top-service__flex {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 90px;
  position: relative;

  @media (width < 1120px) {
    gap: 40px;
  }

  @media (width < 768px) {
    flex-direction: column;
  }
}

.p-top-service-box {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 58px 60px 73px;
  color: var(--color-white);
  border-radius: 10px;
  overflow: hidden;

  @media (width < 1120px) {
    padding: 50px 40px 60px;
  }

  @media (width < 768px) {
    padding: 60px 20px;
  }
}

.p-top-service-box::before {
  content: "";
  position: absolute;
  z-index: -1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-top-service-box:first-of-type {
  background: #d13e40;
}

.p-top-service-box:first-of-type::before {
  background: url("https://daishin-reform.com/system_panel/uploads/images/top-service_kodate-bg.png") no-repeat center center / cover;
}

.p-top-service-box:last-of-type {
  background: #de433d;
}

.p-top-service-box:last-of-type::before {
  background: url("https://daishin-reform.com/system_panel/uploads/images/top-service_tempo-bg.png") no-repeat center center / cover;
}

.p-top-service-box__heading {
  text-align: center;
  font-weight: 600;
  font-size: 26px;
  line-height: 1.769;
  letter-spacing: 0.05em;
}

.p-top-service-box__icon {
  margin: 24px auto 40px;
  width: 157px;
  aspect-ratio: 1;
  background: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;

  img {
    width: 60%;
    height: 80%;
    object-fit: contain;
  }
}

.p-top-service-box__main-text {
  margin: 0 auto;
  max-width: 350px;
  font-weight: 600;
  font-size: 22px;
  line-height: 2.091;
  letter-spacing: 0.05em;

  @media (width < 1120px) {
    font-size: 19px;
  }
}

.p-top-service-box__text {
  margin: 10px auto 0;
  max-width: 350px;
}

.p-top-service-box__btn {
  margin: 22px auto 0;
  position: relative;

  .c-arrow-btn__arrow {
    position: absolute;
    right: 10px;
  }
}

.p-top-service__logo {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 197px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;

  @media (width < 1120px) {
    width: 120px;
  }

  img {
    width: 82%;
    height: 80%;
    object-fit: contain;
  }
}

.p-top-features {
  padding-bottom: 130px;
  background: #2a2a2a;
  border-radius: 5px;
  overflow: hidden;
  color: var(--color-white);

  @media (width < 768px) {
    padding-bottom: 80px;
  }

  .l-inner {
    max-width: 1280px;
  }
}

.p-top-features__slide {
  div {
    margin-top: -0.21em;
  }
}

.p-top-features__images {
  margin-top: -28px;
  position: relative;
  width: 100%;
  aspect-ratio: 1280/946;

  @media (width < 768px) {
    margin-top: 0;
  }

  img {
    position: absolute;
    border-radius: 5px;
    object-fit: cover;
  }

  img:nth-of-type(1) {
    width: 28%;
    aspect-ratio: 351/619;
    top: 10%;
    left: 0;
  }

  img:nth-of-type(2) {
    width: 42%;
    aspect-ratio: 516/457;
    top: 4%;
    left: 31%;

    @media (width < 768px) {
      left: 33%;
    }
  }

  img:nth-of-type(3) {
    width: 20%;
    aspect-ratio: 252/346;
    top: 0;
    right: 3%;

    @media (width < 768px) {
      right: 0;
    }
  }

  img:nth-of-type(4) {
    width: 66%;
    aspect-ratio: 815/380;
    bottom: 0;
    right: 3%;
  }
}

.p-top-features__flex {
  margin: 96px auto 0;
  max-width: 1168px;
  display: flex;
  justify-content: space-between;
  gap: 20px;

  @media (width < 768px) {
    margin: 40px auto 0;
    flex-direction: column;
  }
}

.p-top-features__heading {
  width: fit-content;

  .c-heading__en {
    color: var(--color-white);
  }

  .c-heading__ja {
    color: var(--color-white);
  }
}

.p-top-features__body {
  margin-top: 20px;
  width: 45%;
  min-width: 350px;

  @media (width < 768px) {
    width: fit-content;
    min-width: auto;
    margin-left: auto;
  }
}

.p-top-features__main-text {
  max-width: 454px;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.643;
  letter-spacing: 0.05em;
}

.p-top-features__text {
  margin-top: 38px;
  max-width: 454px;
}

.p-top-features__lists {
  max-width: 454px;
  margin: 26px 0 40px;
}

.p-top-features-list {
  width: 100%;
  height: 84px;
  display: flex;
  align-items: center;
  gap: 25px;
}

.p-top-features-list:not(:first-of-type) {
  border-top: 1px solid hsla(0, 0%, 100%, 0.3);
}

.p-top-features-list__icon {
  width: 23px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;

  img {
    width: 60%;
    object-fit: contain;
  }
}

.p-top-features-list__text {
  font-size: 16px;
  line-height: 1.4;

  div {
    display: inline-block;
  }
}

.p-top-features__link {
  .c-arrow-btn__text {
    flex: 0 1 auto;
    padding-left: 24px;
  }
}

.p-top-works {
  margin-top: 128px;

  @media (width < 768px) {
    margin-top: 60px;
  }
}

.p-top-works__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  @media (width < 768px) {
    flex-direction: column;
    align-items: start;
  }
}

.p-top-works__text {
  max-width: 522px;
  width: 60%;

  @media (width < 768px) {
    width: 100%;
  }
}

.p-top-works__lists {
  margin: 48px auto 0;

  section {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 46px;

    @media (width < 1120px) {
      gap: 20px;
      grid-template-columns: repeat(2, 1fr);
    }

    @media (width < 600px) {
      display: flex;
      flex-direction: column;
    }
  }
}

.p-top-works__link {
  margin: 56px auto 0;
  max-width: 220px;
  padding: 0 16px 0 24px;

  .c-arrow-btn__text {
    flex: 0 1 auto;
  }
}

.p-top-company {
  margin-top: 123px;

  @media (width < 768px) {
    margin-top: 80px;
  }
}

.p-top-company__bg {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  z-index: 1;
  color: var(--color-white);
  padding: 72px 20px 66px;

  @media (width < 768px) {
    padding: 40px 20px 60px;
  }
}

.p-top-company__bg-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

.p-top-company__heading {
  text-align: center;

  .c-heading__en,
  .c-heading__ja {
    color: var(--color-white);
  }
}

.p-top-company__text {
  margin: 91px auto 0;
  max-width: 454px;
  text-align: center;

  @media (width < 768px) {
    margin: 50px auto 0;
  }
}

.p-top-company__link {
  margin: 26px auto 0;
  background: var(--color-white);
  border-radius: 50%;
  width: 140px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;

  img {
    width: 20px;
    height: 100%;
    object-fit: contain;
  }
}

.p-top-company__link:hover {
  opacity: 0.7;
}

.p-top-news {
  margin-top: 126px;
  margin-bottom: 140px;

  @media (width < 768px) {
    margin-top: 80px;
    margin-bottom: 80px;
  }
}

.p-top-news__flex {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 20px;

  @media (width < 768px) {
    flex-direction: column;
  }
}

.p-top-news__head {
  max-width: 267px;

  @media (width < 768px) {
    max-width: 100%;
  }
}

.p-top-news__text {
  margin-top: 40px;
}

.p-top-news__link {
  margin-top: 35px;
  max-width: 220px;
  padding: 0 16px 0 24px;

  .c-arrow-btn__text {
    flex: 0 1 auto;
  }
}

.p-top-news__lists {
  margin-top: 34px;
  width: 67%;

  @media (width < 768px) {
    width: 100%;
  }

  section {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
}

.p-instagram {
  padding: 108px 0 140px;
  background: #faf3f2;

  @media (width < 768px) {
    padding: 80px 0;
  }
}

.p-instagram__text {
  margin: 31px auto 0;
  max-width: 1148px;
}

.p-instagram__body {
  margin: 48px auto 0;
  max-width: 1148px;

  section {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;

    @media (width < 768px) {
      grid-template-columns: repeat(2, 1fr);
      width: fit-content;
      margin: 0 auto;
    }

    @media (width < 600px) {
      display: flex;
      flex-direction: column;
    }
  }

  article {
    width: 100%;

    @media (width < 768px) {
      width: 254px;
    }
  }

  .imgBx01 {
    display: block;
  }

  .imgBx01:hover {
    opacity: 0.7;
  }

  .imgBx01 img,
  .imgBx01 video {
    width: 100%;
    aspect-ratio: 1;
    background: var(--color-gray);
    border-radius: 10px;
    overflow: hidden;
  }

  .imgBx01 > span {
    position: absolute;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
  }

  .imgBx01 > img + span,
  .imgBx01 > video + span {
    display: none;
  }

  .webgene-item-main-video {
    display: block;
    width: auto;
    max-width: 100%;
  }

  .webgene-item .dayTxt {
    margin-top: 15px;
    color: #838284;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.09em;
  }
}
