@charset "UTF-8";
/*! トップ */
.p-fv {
  position: relative;
  -webkit-padding-before: 93px;
          padding-block-start: 93px;
  padding-inline: 1.25rem;
}
@media (min-width: 768px) {
  .p-fv {
    padding-inline: 3.1875rem 3.25rem;
    -webkit-padding-after: 0;
            padding-block-end: 0;
  }
}
.p-fv::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  background: -webkit-gradient(linear, left top, right top, from(#d8ebf5), color-stop(38%, #78c4ef), to(#c9e3f0));
  background: linear-gradient(90deg, #d8ebf5 0%, #78c4ef 38%, #c9e3f0 100%);
  width: 100%;
  height: 450px;
}
@media (min-width: 768px) {
  .p-fv::before {
    height: auto;
    aspect-ratio: 1366/629;
  }
}

.p-fv__wrap {
  -webkit-animation: fade-in 1s 0.3s ease-in-out forwards;
          animation: fade-in 1s 0.3s ease-in-out forwards;
  opacity: 0;
}
@-webkit-keyframes fade-in {
  0% {
    translate: 0 50px;
    opacity: 0;
  }
  100% {
    translate: 0;
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    translate: 0 50px;
    opacity: 0;
  }
  100% {
    translate: 0;
    opacity: 1;
  }
}

.p-fv__img {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 500px;
  border-radius: 10px;
  background: #d9d9d9;
}
@media (min-width: 768px) {
  .p-fv__img {
    aspect-ratio: 1266/614;
    height: auto;
  }
}
.p-fv__img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-filter: blur(5px);
          filter: blur(5px);
}
.p-fv__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(78deg, rgba(39, 119, 172, 0.5) 0%, rgba(255, 255, 255, 0) 100%);
}

.p-fv__photo {
  display: block;
  position: absolute;
  bottom: 0;
  width: 12.5rem;
  right: 0.5rem;
  height: auto;
  aspect-ratio: 432/473;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}
@media (min-width: 768px) {
  .p-fv__photo {
    right: 3rem;
    width: 27rem;
  }
}

.p-fv__text {
  position: absolute;
  z-index: 1;
  top: 5rem;
  left: 0.6875rem;
  color: #ffffff;
}
@media (min-width: 768px) {
  .p-fv__text {
    position: absolute;
    z-index: 1;
    top: unset;
    bottom: 4.5rem;
    left: 4.25rem;
    width: 37.9209370425vw;
    -webkit-margin-before: 0;
            margin-block-start: 0;
    -webkit-padding-after: 0;
            padding-block-end: 0;
  }
}

.p-fv__heading {
  font-size: max(1.125rem, 10px);
  font-weight: 700;
  letter-spacing: 0.0366666667em;
  line-height: 1.45;
}
@media (min-width: 768px) {
  .p-fv__heading {
    font-size: max(2.5rem, 10px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.03em;
  }
}

.p-fv__lead {
  -webkit-margin-before: 4.2666666667vw;
          margin-block-start: 4.2666666667vw;
  font-size: max(0.75rem, 10px);
  font-weight: 700;
  line-height: 2.25;
}
@media (min-width: 768px) {
  .p-fv__lead {
    -webkit-margin-before: 2.196193265vw;
            margin-block-start: 2.196193265vw;
    width: 39.897510981vw;
    font-size: max(1rem, 10px);
    font-weight: 700;
    line-height: 2.25;
  }
}

.p-top__watermark {
  -webkit-margin-before: -54px;
          margin-block-start: -54px;
  overflow: hidden;
}

.p-about {
  position: relative;
  overflow: hidden;
  padding-block: 64px;
  background: #ffffff;
}
@media (min-width: 768px) {
  .p-about {
    padding-block: 131px 247px;
  }
}

.p-about__deco {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  left: -3.125rem;
  z-index: 0;
  width: 122%;
  height: auto;
  aspect-ratio: 1669/607;
}
@media (min-width: 768px) {
  .p-about__deco {
    left: -9.5rem;
  }
}
@media (min-width: 1000px) {
  .p-about__deco {
    top: 33px;
    translate: 0;
  }
}

.p-about__grid {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
}
@media (min-width: 768px) {
  .p-about__grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 67px;
  }
}
@media (min-width: 1000px) {
  .p-about__grid {
    gap: 124px;
  }
}

@media (min-width: 768px) {
  .p-about__label {
    -webkit-margin-before: 94px;
            margin-block-start: 94px;
  }
}

.p-about__label-en {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  color: #16a3c3;
  font-family: "Montserrat", sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 0.6;
  letter-spacing: 0.03em;
}
.p-about__label-en .p-about__label-en--blue {
  color: #0072be;
}
@media (min-width: 768px) {
  .p-about__label-en {
    font-size: 50px;
  }
}

.p-about__label-jp {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
  color: #303131;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2857142857;
  letter-spacing: 0.03em;
}
@media (min-width: 768px) {
  .p-about__label-jp {
    -webkit-margin-before: 33px;
            margin-block-start: 33px;
    font-size: 16px;
    line-height: 1.25;
    letter-spacing: 0.03em;
  }
}

.p-about__heading {
  color: #303131;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}
@media (min-width: 768px) {
  .p-about__heading {
    font-size: 28px;
    line-height: 1.6428571429;
    letter-spacing: 0.03em;
  }
}

.p-about__text {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
  color: #303131;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8571428571;
}
@media (min-width: 768px) {
  .p-about__text {
    -webkit-margin-before: 52px;
            margin-block-start: 52px;
    font-size: 16px;
    line-height: 2.25;
  }
}

.p-about__text + .p-about__text {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}
@media (min-width: 768px) {
  .p-about__text + .p-about__text {
    -webkit-margin-before: 22px;
            margin-block-start: 22px;
  }
}

.p-top__panel {
  position: relative;
  background: #4a4a4a;
  border-radius: 30px 40px 0 0;
  padding-block: 64px 180px;
}
@media (min-width: 768px) {
  .p-top__panel {
    padding-block: 140px 180px;
  }
}
.p-top__panel::before {
  content: "";
  position: absolute;
  opacity: 0.3;
  inset: 0;
  background: url(../images/noise-white.webp);
  background-repeat: repeat;
}

.p-top__panel-grid {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
}
@media (min-width: 768px) {
  .p-top__panel-grid {
    display: grid;
    grid-template-columns: 20.7678883072% 1fr;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
    gap: 5rem;
  }
}
@media (min-width: 1200px) {
  .p-top__panel-grid {
    gap: 162px;
  }
}

@media (min-width: 768px) {
  .p-top__panel-sidebar {
    position: sticky;
    top: 117px;
  }
}

@media (min-width: 768px) {
  .p-top__category {
    -webkit-padding-before: 114px;
            padding-block-start: 114px;
  }
}

.p-top__panel-main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 64px;
}
@media (min-width: 768px) {
  .p-top__panel-main {
    gap: 122px;
  }
}

.p-feature__list {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
  -webkit-border-before: 1px solid #ffffff;
          border-block-start: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-feature__list {
    -webkit-margin-before: 77px;
            margin-block-start: 77px;
  }
}

.p-feature__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 24px;
  padding-block: 32px;
  -webkit-border-after: 1px solid #ffffff;
          border-block-end: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-feature__item {
    display: grid;
    grid-template-columns: 1fr 58.5790884718%;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 44px;
    padding-block: 49px;
  }
}

.p-feature__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 262/223;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 10px;
}
.p-feature__heading {
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6111111111;
}
@media (min-width: 768px) {
  .p-feature__heading {
    font-size: 24px;
    line-height: 1.9166666667;
    letter-spacing: 0.03em;
  }
}

.p-feature__text {
  -webkit-margin-before: 12px;
          margin-block-start: 12px;
  color: #ffffff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8571428571;
}
@media (min-width: 768px) {
  .p-feature__text {
    -webkit-margin-before: 23px;
            margin-block-start: 23px;
    font-size: 15px;
    line-height: 2.4;
  }
}

.p-top-service__list {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
  -webkit-border-before: 1px solid #ffffff;
          border-block-start: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-top-service__list {
    -webkit-margin-before: 56px;
            margin-block-start: 56px;
  }
}

.p-top-service__item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  padding-block: 20px 32px;
  -webkit-border-after: 1px solid #ffffff;
          border-block-end: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-top-service__item {
    padding-inline: 0.5rem 2.5rem;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 40px;
    padding-block: 27px 50px;
  }
}

.p-top-service__image {
  display: none;
}
@media (any-hover: hover) {
  .p-top-service__image {
    display: block;
    position: absolute;
    top: 50%;
    translate: 0 -50%;
    right: -10px;
    z-index: 1;
    width: 180px;
    height: auto;
    aspect-ratio: 262/299;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 10px;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: opacity 0.3s ease-out;
    transition: opacity 0.3s ease-out;
  }
}
@media (any-hover: hover) and (min-width: 768px) {
  .p-top-service__image {
    width: 280px;
    right: -54px;
  }
}

.p-top-service__item:hover .p-top-service__image {
  opacity: 1;
}

.p-top-service__body {
  position: relative;
  z-index: 2;
}
@media (min-width: 768px) {
  .p-top-service__body {
    display: grid;
    grid-template-columns: 167px 1fr;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 2.5rem;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}
@media (min-width: 1100px) {
  .p-top-service__body {
    gap: 5.5625rem;
  }
}

.p-top-service__label {
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.7222222222;
}
@media (min-width: 768px) {
  .p-top-service__label {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    font-size: 26px;
    line-height: 1.7692307692;
    letter-spacing: 0.03em;
  }
}

.p-top-service__btn {
  -webkit-margin-before: 59px;
          margin-block-start: 59px;
  text-align: center;
}

.p-company__table {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
  -webkit-border-before: 1px solid #ffffff;
          border-block-start: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-company__table {
    -webkit-margin-before: 81px;
            margin-block-start: 81px;
  }
}

.p-company__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
  padding-block: 20px;
  -webkit-border-after: 1px solid #ffffff;
          border-block-end: 1px solid #ffffff;
}
@media (min-width: 768px) {
  .p-company__row {
    gap: 40px;
    padding-block: 29px;
  }
}

.p-company__label {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 96px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.448;
}
@media (min-width: 768px) {
  .p-company__label {
    width: 122px;
    font-size: 16px;
  }
}

.p-company__value {
  color: #ffffff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .p-company__value {
    font-size: 16px;
  }
}
@media (any-hover: hover) {
  .p-company__value:where(a):hover {
    color: #ffffff;
  }
}

.p-news__list {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}
@media (min-width: 768px) {
  .p-news__list {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
    gap: 10px;
  }
}