@charset "utf-8";

.sec-intro {
  display: grid;
  grid-template-columns: 1fr max-content;
  grid-template-rows: 830px;
  align-items: center;
  position: relative;
  margin-bottom: 149px;
}

.sec-intro .sec-img {
  max-width: calc(812 / 1920 * 100vw);
  width: 100%;
  height: 100%;
}

.sec-intro .sec-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sec-intro .sec-text {
  margin-left: 15%;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.sec-intro .tit-ja .char {
  display: inline-block;

  opacity: var(--opacity, 0);

  transition: opacity 0.6s cubic-bezier(0.77, 0, 0.175, 1);

  transition-delay: calc(0.05s * var(--char-index));
  font-family: var(--font-notoserif);
  font-weight: 600;
  font-size: clamp(2.5rem, 2.167rem + 0.69vw, 3rem);
  line-height: clamp(3.75rem, 2.918rem + 1.73vw, 5rem);
  color: #1f67aa;
}

.sec-intro .sec-text .desc p {
  font-family: var(--font-notosans);
  font-weight: 400;
  font-size: clamp(1rem, 0.917rem + 0.17vw, 1.125rem);
  line-height: calc(40 / 18);
  color: #232426;
}

.sec-intro .tit-ja.is-active {
  --opacity: 1;
}

.sec-intro::before {
  content: "";
  background: url(/system_panel/uploads/images/20260518225608598391.png) no-repeat top/cover;
  position: absolute;
  height: 1130px;
  top: 0;
  width: 100%;
  z-index: -1;
}

.sec-main > .inner {
  display: grid;
  grid-template-columns: 10% minmax(84%, 1256px);
  gap: 5%;
}

.sidemenu {
  position: relative;
  width: 100%;
}

.sidemenu .list.is-fixed {
  position: fixed;
  top: calc(var(--header-height) + 105px);
}

.sidemenu .list.is-stop {
  position: absolute;
  bottom: 300px;
  top: auto;
}

.sidemenu .list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.sidemenu .list a {
  font-family: var(--font-notosans);
  font-weight: 600;
  font-size: 18px;
  color: #919191;
  position: relative;
}

.sidemenu .list a.active {
  color: #085eab;
  padding-left: 11px;
}

.sidemenu .list a.active::before {
  content: "";
  width: 6px;
  height: 6px;
  background-color: #085eab;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 0;
}

.main-contents .inner {
  padding: 0 0 120px;
}

.main-contents .sec-title {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 73px;
}

.main-contents .sec-title .tit-ja {
  font-family: var(--font-notoserif);
  font-weight: 400;
  font-size: 16px;
  color: #085eab;
}

.main-contents .sec-title .tit-en {
  font-family: var(--font-shippori);
  font-weight: 600;
  font-size: clamp(3rem, 1.67rem + 2.78vw, 5rem);
  color: #085eab;
}

.features {
  margin-bottom: 80px;
}

.features .list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.features .list .item {
  display: grid;
  grid-template-columns: 30% 1fr;
  align-items: center;
  gap: 5%;
}

.features .list .item .text {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.features .list .item .tit-en {
  font-family: var(--font-notoserif);
  font-weight: 400;
  font-size: clamp(0.75rem, 0.667rem + 0.17vw, 0.875rem);
  line-height: calc(20 / 14);
  color: #085eab;
}

.features .list .item .tit-ja {
  font-family: var(--font-notoserif);
  font-weight: 500;
  font-size: clamp(1.5rem, 1.334rem + 0.35vw, 1.75rem);
  color: #085eab;
}

.features .list .item .desc p {
  font-weight: 400;
  font-size: 16px;
  line-height: calc(28 / 16);
  color: #485057;
}

.service {
  margin-bottom: 80px;
}

.service .list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2%;
}

.service .list .item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.service .list .item .item-img {
  margin-bottom: 40px;
  width: 157px;
  aspect-ratio: 1/1;
}

.service .list .item .tit-ja {
  font-family: var(--font-notoserif);
  font-weight: 500;
  font-size: clamp(1.5rem, 1.334rem + 0.35vw, 1.75rem);
  color: #085eab;
  margin-bottom: 24px;
  text-align: center;
}

.service .list .item .desc p {
  font-family: var(--font-notosans);
  font-weight: 400;
  font-size: clamp(0.875rem, 0.792rem + 0.17vw, 1rem);
  line-height: calc(28 / 16);
  text-align: center;
  color: #485057;
}

.sites .list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px 29px;
}

.sites .list .item-img {
  position: relative;
}

.sites .list .tit-ja {
  font-family: var(--font-notosans);
  font-weight: 600;
  font-size: 16px;
  color: #fff;
  position: absolute;
  left: 16px;
  bottom: 12px;
}

@media (max-width: 1300px) {
  .w1344,
  .w1536 {
    width: 90%;
  }
}

@media (max-width: 1200px) {
  .sidemenu {
    display: none;
  }

  .sec-main > .inner {
    grid-template-columns: 100%;
  }

  .sec-intro {
    gap: 50px;
    grid-template-columns: 1fr 34%;
  }

  .sec-intro .sec-text {
    margin-left: 6%;
  }
}

@media (max-width: 900px) {
  .sec-intro {
    display: flex;
    flex-direction: column-reverse;
    gap: 40px;
    margin-bottom: 80px;
  }

  .sec-intro::before {
    height: 221px;
    top: 452px;
  }

  .sec-intro .sec-img {
    max-width: none;
    width: 100%;
    height: 324px;
  }

  .sec-intro .sec-text {
    width: 90%;
    margin: 0 auto;
  }

  .sec-main {
    width: 90%;
  }

  .main-contents .inner {
    padding: 0 0 80px;
  }

  .main-contents .sec-title {
    align-items: center;
    margin-bottom: 40px;
  }

  .features,
  .sites {
    width: 95%;
    margin: 0 auto;
  }

  .features {
    margin-bottom: 80px;
  }

  .features .list .item {
    display: flex;
    flex-direction: column;
    gap: 30px;
  }

  .service .list {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px 0;
  }

  .sites .list {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  .features .list .item .text {
    gap: 20px;
  }

  .features .list .item .text .item-tit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
}

@media (max-width: 767px) {
  .sec-intro .sec-text {
    width: 88%;
  }
  .service .list {
    display: flex;
    flex-direction: column;
    gap: 30px;
  }

  .sites .list {
    display: flex;
    flex-direction: column;
    gap: 30px;
  }
}

@media (max-width: 375px) {
    .sec-intro .sec-text .desc {
      width: 90%;
    }
}