@charset "utf-8";

.gap-60 {
  gap: 60px;
}

.gap-60 .col-50 {
  width: calc((100% - 60px) / 2);
}

/*
 * 汎用
 * --------------------------------------------------
 */

.page-title {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  height: auto;
  aspect-ratio: 5/1;
  position: relative;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

.page-title video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.page-title img {
  width: calc(100% + 100px);
  height: auto;
  object-fit: cover;
  object-position: 50px center;
  animation: title-slide 5s forwards;
  position: absolute;
}

@keyframes title-slide {
  0% {
    transform: translateX(0px);
  }

  100% {
    transform: translateX(-50px);
  }
}

.page-title h1 {
  font-size: 2cqi;
  line-height: 1;
  font-weight: 500;
  position: absolute;
  display: flex;
  flex-wrap: wrap;
  width: auto;
  justify-content: center;
  color: #ffffff;
  letter-spacing: 0.1cqi;
  filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.5));
}

@media (max-width: 767px) {
  .page-title {
    aspect-ratio: 16/9;
  }

  .page-title h1 {
    font-size: 5cqi;
  }
}

/*
 * テキスト
 * --------------------------------------------------
 */

.spec-subtitle h2 {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 2.2cqi;
  line-height: 1;
  font-weight: 600;
  justify-content: center;
  align-items: center;
}

.spec-catch {
  display: flex;
  flex-wrap: wrap;
  width: 70%;
  height: auto;
  aspect-ratio: 2/1;
  overflow: hidden;
}

.spec-catch img {
  object-fit: cover;
}

.spec-intro {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  height: auto;
  margin: 1.5cqi auto;
}

.spec-intro p {
  display: inline-block;
  width: 100%;
  font-size: 1.4cqi;
  line-height: 2;
  letter-spacing: 0.1cqi;
  font-weight: 400;
  margin: 1.5cqi 0px;
}

.spec-minititle h3 {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 2.6cqi;
  line-height: 1;
  letter-spacing: 0.1cqi;
  font-weight: 600;
  align-items: center;
}

.spec-minititle span {
  font-size: 0.6cqi;
  line-height: 1;
}

.spec-item {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 2cqi;
}

.spec-item h4 {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.spec-item h4 span {
  display: inline-block;
  width: auto;
  font-size: 2.4cqi;
  line-height: 1;
  font-weight: 600;
  background: linear-gradient(transparent 70%, #ffe780 70%);
}

.spec-item h5 {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 1.8cqi;
  line-height: 1;
  font-weight: 500;
}

.spec-item p {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 1.2cqi;
  line-height: 2;
}

.spec-bigarrow span {
  display: flex;
  flex-wrap: wrap;
  border-radius: 1000px;
  width: 5.5cqi;
  height: 5.5cqi;
  font-size: 3cqi;
  line-height: 1;
  color: #ffffff;
  margin: 0px auto;
  justify-content: center;
  align-items: center;
  background: #ff505a;
  margin-bottom: 2.5cqi;
}

.spec-bigarrow h2 {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 2.5cqi;
  line-height: 1.5;
  font-weight: 500;
  justify-content: center;
  align-items: center;
  text-align: center;
}

@media (max-width: 767px) {
  .spec-subtitle h2 {
    font-size: 6cqi;
  }

  .spec-catch {
    width: 100%;
  }

  .spec-intro {
    width: 100%;
    margin: 2.6cqi 0px;
  }

  .spec-intro p {
    font-size: 2.6cqi;
    margin: 2.6cqi 0px;
  }

  .spec-minititle h3 {
    font-size: 5.4cqi;
    line-height: 1;
    letter-spacing: 0.1cqi;
  }

  .spec-minititle span {
    font-size: 1.2cqi;
  }

  .spec-item {
    gap: 8cqi;
  }

  .spec-item h4 span {
    font-size: 5.2cqi;
    line-height: 1;
    font-weight: 600;
  }

  .spec-item h5 {
    font-size: 4.5cqi;
  }

  .spec-item p {
    font-size: 3.2cqi;
  }

  .spec-bigarrow span {
    width: 10cqi;
    height: 10cqi;
    font-size: 6cqi;
  }

  .spec-bigarrow h2 {
    font-size: 4.2cqi;
  }
}