.p-about {
  display: flex;
  flex-direction: column;
}
@media (min-width: 992px) {
  .p-about {
    flex-direction: row;
    align-items: stretch;
  }
}
.p-about__content {
  background: #D0E8FF;
  background: linear-gradient(180deg, rgb(208, 232, 255) 0%, rgb(140, 195, 237) 100%);
  padding: 2rem;
}
@media (min-width: 992px) {
  .p-about__content {
    display: flex;
    align-items: center;
    flex: 1;
    padding: 2.5rem;
  }
}
@media (min-width: 992px) and (max-width: 1279px) {
  .p-about__content {
    padding: 3.5rem;
  }
}
@media (min-width: 1280px) {
  .p-about__content {
    padding: 3.90625% 3.125% 3.90625% 10.15625%;
  }
}
.p-about__ttl {
  font-size: 2rem;
  line-height: 1.7;
}
@media (min-width: 992px) {
  .p-about__ttl {
    font-size: 2.4rem;
    line-height: 1.8965517241;
  }
}
@media (min-width: 1280px) {
  .p-about__ttl {
    font-size: 2.9rem;
  }
}
@media (max-width: 767px) {
  .p-about__ttl {
    text-align: center;
  }
}
@media (min-width: 992px) {
  .p-about__media {
    flex-shrink: 0;
    width: 60.78125%;
  }
}

.p-desc {
  background: url("../images/home/desc_bg.svg") no-repeat bottom center/cover;
  position: relative;
  overflow: hidden;
  padding-block: 2.8rem 6.3rem;
}
@media (min-width: 768px) {
  .p-desc {
    padding-block: 5.6rem 12.6rem;
  }
}
.p-desc::before, .p-desc::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin-inline: auto;
}
.p-desc::before {
  background: #FFFFFF;
  background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(197, 221, 236) 100%);
  height: 80rem;
}
@media (min-width: 768px) {
  .p-desc::before {
    height: 76.1rem;
  }
}
.p-desc::after {
  background: url("../images/home/desc_bg.svg") no-repeat center/contain;
  width: 31.1rem;
  height: 6rem;
  bottom: -1.5rem;
  z-index: 2;
}
@media (min-width: 768px) {
  .p-desc::after {
    width: 62.2rem;
    height: 12rem;
  }
}
.p-desc__ttl {
  color: var(--color-primary);
  font-size: 2rem;
  line-height: 1;
  position: relative;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .p-desc__ttl {
    font-size: 3rem;
    margin-bottom: 3rem;
  }
}
.p-desc__content {
  position: relative;
}
.p-desc__sub {
  font-size: 1.6rem;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .p-desc__sub {
    font-size: 2.4rem;
  }
}
.p-desc__media {
  position: relative;
  margin: 1.5rem auto 0;
}
@media (min-width: 768px) {
  .p-desc__media {
    max-width: 55.8rem;
    margin-top: 3rem;
  }
}
.p-desc__list {
  display: grid;
  gap: 1.5rem;
  margin-top: 2.5rem;
}
@media (min-width: 768px) {
  .p-desc__list {
    gap: 2.6rem;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 4.5rem;
  }
}
.p-desc .card-desc {
  position: relative;
}
.p-desc .card-desc__media {
  aspect-ratio: 309/218;
}
.p-desc .card-desc__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.p-desc .card-desc__content {
  display: flex;
  align-items: center;
  position: absolute;
  inset: 2rem;
}
@media (min-width: 768px) {
  .p-desc .card-desc__content {
    align-items: flex-start;
  }
}
.p-desc .card-desc__ttl {
  display: flex;
  gap: 1.5rem;
  flex-direction: column;
}
.p-desc .card-desc__ttl-en {
  color: #fff;
  font-size: 1.8rem;
  font-weight: normal;
  line-height: 1.2380952381;
}
@media (min-width: 768px) {
  .p-desc .card-desc__ttl-en {
    font-size: 2.1rem;
  }
}
.p-desc .card-desc__ttl-jp {
  color: #fff;
  font-size: 2.1rem;
  font-weight: 500;
  line-height: 1.0833333333;
}
@media (min-width: 768px) {
  .p-desc .card-desc__ttl-jp {
    font-size: 2.4rem;
  }
}

.p-news {
  padding-block: 3rem;
}
@media (min-width: 768px) {
  .p-news {
    padding-block: 6rem;
  }
}
.p-news__wrap {
  display: flex;
  gap: 2rem;
  flex-direction: column;
}
@media (min-width: 768px) {
  .p-news__wrap {
    flex-direction: row;
    align-items: flex-start;
    gap: 4rem;
  }
}
@media (min-width: 768px) {
  .p-news__head {
    flex-shrink: 0;
    width: 21.5rem;
  }
}
.p-news__content {
  flex: 1;
}
.p-news__ttl {
  color: var(--color-primary);
  font-size: 2.1rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media (min-width: 768px) {
  .p-news__ttl {
    font-size: 2.1rem;
    margin-bottom: 1rem;
  }
}
.p-news__sub {
  background-color: var(--color-primary);
  color: #fff;
  display: block;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: bold;
  text-align: center;
  padding: 1.75rem 1rem;
}

.p-ins {
  background: url("../images/home/ins_bg.jpg") no-repeat top left/cover;
  padding-block: 5.6rem;
}
@media (min-width: 768px) {
  .p-ins {
    background-position: center center;
    padding-block: 11.2rem;
  }
}
.p-ins__container {
  position: relative;
  padding-left: 2.5rem;
  padding-right: 2.5rem;
  width: 100%;
  margin-inline: auto;
}
@media (min-width: 768px) {
  .p-ins__container {
    max-width: 78rem;
  }
}
.p-ins__logo {
  width: 9.8rem;
  position: absolute;
  top: -3.9rem;
  right: 2.5rem;
}
@media (min-width: 768px) {
  .p-ins__logo {
    width: 19.6rem;
    top: -7.8rem;
    right: -12.2rem;
  }
}
.p-ins__head {
  display: flex;
  gap: 2rem;
  align-items: center;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .p-ins__head {
    gap: 6.5rem;
    margin-bottom: 1.8rem;
  }
}
.p-ins__head .desc {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .p-ins__head .desc {
    font-size: 1.8rem;
  }
}
.p-ins #sbi_images {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .p-ins #sbi_images {
    gap: 3.7rem;
  }
}

.p-contact {
  padding-block: 4.2rem 4.3rem;
}
@media (min-width: 768px) {
  .p-contact {
    padding-block: 9.5rem 8.7rem;
  }
}
.p-contact__btn {
  background-color: #fff;
  display: flex;
  align-items: center;
  filter: drop-shadow(7px 7px 7px rgba(0, 0, 0, 0.2));
}
@media (min-width: 768px) {
  .p-contact__btn {
    max-width: 67.5rem;
    margin-inline: auto;
    transition: opacity 0.3s ease-in-out;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-contact__btn:hover {
    opacity: 0.7;
  }
}
.p-contact__btn .media {
  width: 14rem;
}
@media (min-width: 768px) {
  .p-contact__btn .media {
    width: 31.5rem;
  }
}
.p-contact__btn .txt {
  color: var(--color-primary);
  font-weight: bold;
  flex: 1;
  text-align: center;
}
.p-contact__btn .txt::after {
  content: "";
  background-color: #85bf3f;
  -webkit-mask: url("../images/home/ic_arrow.svg") no-repeat center/contain;
  mask: url("../images/home/ic_arrow.svg") no-repeat center/contain;
  aspect-ratio: 15/12;
  width: 1.5rem;
  display: inline-block;
  vertical-align: middle;
  position: relative;
  top: -0.1rem;
  margin-left: 0.5rem;
}
@media (min-width: 768px) {
  .p-contact__btn .txt::after {
    aspect-ratio: 20/17;
    width: 2rem;
  }
}