@charset "UTF-8";
:root {
  /* color */
  --color-white: #ffffff;
  --color-text: #4f4f4f;
  --color-text-blue: #005587;
  --color-bg-light: #eefaff;
  --color-bg-dark: #eaf1f8;
  --color-blue-light: #0bbbef;
  --color-blue-main: #035788;
  --color-blue-medium: #046b9d;
  --color-blue-dark: #032a57;
  --color-green-light: #5083a1;
  --color-orange: #ff8617;
  --color-line: #d9d9d9;
  --color-border: #cfd8e3;
  /* font */
  --font-sans: YuGothic, "Yu Gothic", "游ゴシック体", "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --font-en: Arial, "Helvetica Neue", Helvetica, sans-serif;
}

.p-home-light-area {
  background: linear-gradient(180deg, var(--color-bg-light) 0%, var(--color-white) 100%);
}

.p-home-news {
  padding-top: 37rem;
  padding-bottom: 114rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-news {
    padding-top: 32rem;
    padding-bottom: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-news {
    padding-top: 24rem;
    padding-bottom: 40rem;
  }
}

.p-home-news__inner {
  display: grid;
  grid-template-columns: 83rem 1fr;
  -moz-column-gap: 32rem;
       column-gap: 32rem;
  align-items: start;
  padding: 40rem 59rem 40rem 27rem;
  background-color: var(--color-white);
}
@media only screen and (max-width: 1271px) {
  .p-home-news__inner {
    grid-template-columns: 100rem 1fr;
    -moz-column-gap: 32rem;
         column-gap: 32rem;
    padding: 32rem 48rem 32rem 22rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-news__inner {
    grid-template-columns: 1fr;
    row-gap: 20rem;
    padding: 24rem 24rem 24rem 16rem;
  }
}

.p-home-news__heading {
  display: inline-flex;
  align-items: center;
  gap: 5rem;
  min-height: 37rem;
  white-space: nowrap;
}
@media only screen and (max-width: 767px) {
  .p-home-news__heading {
    min-height: auto;
  }
}

.p-home-news__heading-text {
  display: inline-block;
  color: var(--color-text-blue);
  font-size: 16rem;
  line-height: 1.18;
  letter-spacing: 0.64rem;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .p-home-news__heading-text {
    font-size: 15rem;
  }
}

.p-home-news__heading-icon {
  display: block;
  flex-shrink: 0;
  width: 12rem;
  height: 12rem;
  transform: translateY(-1.5rem);
}
@media only screen and (max-width: 767px) {
  .p-home-news__heading-icon {
    width: 11rem;
    height: 11rem;
    transform: translateY(0.5rem);
  }
}

.p-home-news__body {
  min-width: 0;
}

.p-home-news__item {
  display: grid;
  grid-template-columns: 74rem 1fr;
  -moz-column-gap: 30rem;
       column-gap: 30rem;
  align-items: center;
  min-height: 37rem;
  border-bottom: 1rem solid var(--color-bg-dark);
}
@media only screen and (max-width: 1271px) {
  .p-home-news__item {
    grid-template-columns: 74rem 1fr;
    -moz-column-gap: 24rem;
         column-gap: 24rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-news__item {
    grid-template-columns: 1fr;
    row-gap: 8rem;
    padding: 10rem 0;
  }
}

.p-home-news__date {
  white-space: nowrap;
  color: var(--color-green-light);
}

.p-home-news__link {
  display: block;
  overflow: hidden;
  color: var(--color-text-blue);
  line-height: 1.1875;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity 0.3s ease;
}

.p-home-news__link:hover {
  opacity: 0.7;
}

.p-home-news__more {
  margin-top: 16rem;
  text-align: right;
  font-size: 14rem;
  font-weight: 700;
  line-height: 1.21;
  letter-spacing: 0.56rem;
}

.p-home-news__more a {
  display: inline-flex;
  align-items: center;
  gap: 8rem;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.p-home-news__more a::after {
  width: 0;
  height: 0;
  border-top: 3rem solid transparent;
  border-bottom: 3rem solid transparent;
  border-left: 5rem solid var(--color-orange);
  content: "";
  transform: translateY(0.5rem);
}

.p-home-news__more a:hover {
  opacity: 0.7;
}

.p-home-about {
  padding-bottom: 140rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-about {
    padding-bottom: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-about {
    padding-bottom: 40rem;
  }
}

.p-home-about__inner {
  display: grid;
  grid-template-columns: 1fr 420rem;
  gap: 90rem;
  align-items: start;
}
@media only screen and (max-width: 1271px) {
  .p-home-about__inner {
    grid-template-columns: 1fr;
    gap: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-about__inner {
    gap: 40rem;
  }
}

.p-home-about__content {
  min-width: 0;
  width: auto;
  max-width: none;
}
@media only screen and (max-width: 1271px) {
  .p-home-about__content {
    width: 100%;
  }
}

.p-home-about__text {
  margin-top: 34rem;
}
@media only screen and (max-width: 767px) {
  .p-home-about__text {
    margin-top: 24rem;
  }
}

.p-home-about__text p {
  font-weight: 700;
}

.p-home-about__text p + p {
  margin-top: 20rem;
}

@media only screen and (max-width: 767px) {
  .p-home-about__text p + p {
    margin-top: 16rem;
  }
}
.p-home-about__btn {
  margin-top: 45rem;
}
@media only screen and (max-width: 767px) {
  .p-home-about__btn {
    text-align: center;
    margin-top: 32rem;
  }
}

@media only screen and (max-width: 1271px) {
  .p-home-about__image {
    max-width: 520rem;
    margin-inline: auto;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-about__image {
    max-width: 100%;
  }
}

.p-home-about__image img {
  display: block;
  width: 100%;
  height: auto;
}

.p-home-blue-area {
  background: linear-gradient(220deg, var(--color-blue-medium) 0%, var(--color-blue-dark) 100%);
}

.p-home-products {
  padding-top: 130rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-products {
    padding-top: 96rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-products {
    padding-top: 64rem;
  }
}

.p-home-products__box {
  margin-top: 49rem;
  padding: 40rem;
  background-color: var(--color-white);
}
@media only screen and (max-width: 1271px) {
  .p-home-products__box {
    margin-top: 36rem;
    padding: 32rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-products__box {
    margin-top: 24rem;
    padding: 20rem;
  }
}

.p-home-products__box .c-product-cards {
  margin-top: 0;
}

.p-home-products__btn {
  margin-top: 52rem;
  text-align: center;
}
@media only screen and (max-width: 1271px) {
  .p-home-products__btn {
    margin-top: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-products__btn {
    margin-top: 32rem;
  }
}

.p-home-strengths {
  padding-block: 130rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-strengths {
    padding-block: 96rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-strengths {
    padding-block: 64rem;
  }
}

.p-home-strengths__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 72rem;
       column-gap: 72rem;
  row-gap: 72rem;
  margin-top: 64rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-strengths__grid {
    grid-template-columns: repeat(2, 1fr);
    -moz-column-gap: 48rem;
         column-gap: 48rem;
    row-gap: 56rem;
    margin-top: 48rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-strengths__grid {
    grid-template-columns: 1fr;
    row-gap: 40rem;
    margin-top: 36rem;
  }
}

.p-home-strengths__item {
  color: var(--color-white);
}

.p-home-strengths__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 96rem;
  height: 96rem;
  margin-inline: auto;
}
@media only screen and (max-width: 767px) {
  .p-home-strengths__icon {
    width: 72rem;
    height: 72rem;
  }
}

.p-home-strengths__icon img {
  display: block;
  max-width: 96rem;
  max-height: 96rem;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media only screen and (max-width: 767px) {
  .p-home-strengths__icon img {
    max-width: 72rem;
    max-height: 72rem;
  }
}

.p-home-strengths__title {
  display: block;
  width: 100%;
  margin-top: 20rem;
  text-align: center;
  font-size: 20rem;
  line-height: 1.2;
  letter-spacing: 0.8rem;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .p-home-strengths__title {
    font-size: 16rem;
    margin-top: 16rem;
  }
}

.p-home-strengths__title span {
  display: inline-block;
}

.p-home-strengths__text {
  margin-top: 16rem;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.64rem;
}
@media only screen and (max-width: 767px) {
  .p-home-strengths__text {
    font-size: 14rem;
    margin-top: 12rem;
  }
}

.p-home-links {
  padding-top: 158rem;
  padding-bottom: 114rem;
  background: linear-gradient(180deg, var(--color-bg-light) 0%, var(--color-white) 100%);
}
@media only screen and (max-width: 1271px) {
  .p-home-links {
    padding-top: 112rem;
    padding-bottom: 88rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-links {
    padding-block: 64rem;
  }
}

.p-home-links__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  -moz-column-gap: 72rem;
       column-gap: 72rem;
}
@media only screen and (max-width: 1271px) {
  .p-home-links__grid {
    -moz-column-gap: 40rem;
         column-gap: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-links__grid {
    grid-template-columns: 1fr;
    row-gap: 40rem;
  }
}

.p-home-links__card {
  display: grid;
  grid-template-rows: 132rem 250rem;
  align-items: start;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.p-home-links__card .c-heading--large {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 92rem;
  margin: 0;
  padding-bottom: 31rem;
  box-sizing: border-box;
}

.p-home-links__card .c-heading--large-line::after {
  position: absolute;
  bottom: 0;
  left: 0;
}

.p-home-links__image {
  width: 100%;
  height: 250rem;
  margin-top: 0;
}

.p-home-links__image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media only screen and (min-width: 1272px) {
  .p-home-links__card .c-heading--large {
    position: relative;
    display: block;
    height: 86rem;
    margin: 0;
    padding-bottom: 0;
    box-sizing: border-box;
  }
  .p-home-links__card .c-heading--large-line::after {
    position: absolute;
    bottom: 0;
    left: 0;
  }
  .p-home-links__image {
    width: 100%;
    height: 250rem;
    margin-top: 0;
  }
  .p-home-links__image img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media only screen and (min-width: 1272px) and (hover: hover) and (pointer: fine) {
  .p-home-links__card:hover {
    opacity: 0.7;
  }
}
@media only screen and (min-width: 1272px) {
  .p-home-links__card {
    display: grid;
    grid-template-rows: 132rem 250rem;
    align-items: start;
  }
  .p-home-links__card .c-heading--large {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 92rem;
    margin: 0;
    padding-bottom: 31rem;
    box-sizing: border-box;
  }
  .p-home-links__card .c-heading--large-line::after {
    bottom: 0;
  }
  .p-home-links__image {
    width: 100%;
    height: 250rem;
    margin-top: 0;
  }
  .p-home-links__image img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .p-home-links__card--client .c-heading--large {
    margin-top: 0;
  }
  .p-home-links__card--client .p-home-links__image,
  .p-home-links__card--client .p-home-links__image img {
    margin-top: 0;
  }
}
@media only screen and (max-width: 1271px) {
  .p-home-links__card {
    grid-template-rows: 112rem 180rem;
  }
  .p-home-links__card .c-heading--large {
    height: 88rem;
    min-height: 0;
    margin: 0;
    padding-bottom: 25rem;
    box-sizing: border-box;
    line-height: 1.3;
  }
  .p-home-links__image {
    height: 180rem;
  }
  .p-home-links__image img {
    height: auto;
  }
  .p-home-links__card .c-heading--large-line::after {
    position: absolute;
    bottom: 0;
    left: 0;
  }
}
@media only screen and (max-width: 767px) {
  .p-home-links__card {
    display: block;
  }
  .p-home-links__card .c-heading--large {
    height: auto;
    min-height: auto;
    padding-bottom: 25rem;
  }
  .p-home-links__image {
    height: auto;
    margin-top: 24rem;
  }
  .p-home-links__image img {
    height: auto;
  }
}