@charset "UTF-8";
/* common
---------------------------------------------------------------------------- */
/* m-ttl-group
------------------------------------------ */
.m-ttl-group {
  display: flex;
  flex-direction: column;
  gap: min(0.6770833333vw, 13px);
}

.m-ttl-group-en img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.m-ttl-group._about .m-ttl-group-en {
  width: min(18.5557291667vw, 356.27px);
  aspect-ratio: 356.27/80.85;
}
.m-ttl-group._about .m-ttl-group-jp {
  color: #fff;
}

.m-ttl-group._product .m-ttl-group-en {
  width: min(25.24375vw, 484.68px);
  aspect-ratio: 484.68/78.23;
}

.m-ttl-group._case .m-ttl-group-en {
  width: min(13.34375vw, 256.2px);
  aspect-ratio: 256.2/80.85;
}

.m-ttl-group._topics .m-ttl-group-en {
  width: min(18.3692708333vw, 352.69px);
  aspect-ratio: 352.69/78.22;
}

.m-ttl-group._column .m-ttl-group-en {
  width: min(23.8057291667vw, 457.07px);
  aspect-ratio: 457.07/83.58;
}

.m-ttl-group._company .m-ttl-group-en {
  width: min(27.3494791667vw, 525.11px);
  aspect-ratio: 525.11/83.58;
}

.m-ttl-group-jp {
  font-size: 2.4rem;
  line-height: 1.7083333333;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: min(1.25vw, 24px);
  color: #002c81;
}

@media screen and (max-width: 767px) {
  .m-ttl-group {
    gap: 1.4666666667vw;
  }
  .m-ttl-group._about .m-ttl-group-en {
    width: 47.9066666667vw;
  }
  .m-ttl-group._about .m-ttl-group-jp {
    color: #fff;
  }
  .m-ttl-group._product .m-ttl-group-en {
    width: 65.6266666667vw;
  }
  .m-ttl-group._case .m-ttl-group-en {
    width: 34.2933333333vw;
  }
  .m-ttl-group._topics .m-ttl-group-en {
    width: 47.72vw;
  }
  .m-ttl-group._column .m-ttl-group-en {
    width: 62.32vw;
  }
  .m-ttl-group._company .m-ttl-group-en {
    width: 70.6vw;
  }
  .m-ttl-group-en {
    width: 70.6vw;
  }
  .m-ttl-group-jp {
    font-size: 4.8vw;
  }
}
/* p-mv
---------------------------------------------------------------------------- */
.p-mv {
  padding-block: min(9.4270833333vw, 181px) min(10vw, 192px);
  background: linear-gradient(60deg, rgb(0, 44, 129) 22%, rgba(0, 44, 129, 0.5) 95%);
  position: relative;
}

.p-mv-inner {
  max-width: min(100vw, 1920px);
  margin-inline: auto;
  padding-inline: min(8.5416666667vw, 164px);
}

.p-mv-txt {
  font-size: 4.7rem;
  line-height: 0.2978723404;
  letter-spacing: 0.08em;
  font-weight: 500;
  font-size: min(2.4479166667vw, 47px);
  line-height: 1.8;
  color: #fff;
}

.p-mv-txt ._bg {
  display: inline-block;
  font-size: min(2.3958333333vw, 46px);
  line-height: 1.1;
  background-color: #02163d;
  padding-block: min(0.4166666667vw, 8px) min(0.46875vw, 9px);
  padding-inline: min(0.6770833333vw, 13px);
  margin-right: min(0.4166666667vw, 8px);
}

.p-mv-txt ._small {
  font-size: min(1.9791666667vw, 38px);
}

.p-mv-txt ._parentheses {
  position: relative;
  margin-inline: min(1.9270833333vw, 37px);
}

.p-mv-txt ._parentheses::after,
.p-mv-txt ._parentheses::before {
  content: "";
  width: min(0.8057291667vw, 15.47px);
  height: min(1.71875vw, 33px);
  background-image: url(../../../assets/images/top/icn_parentheses.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
}

.p-mv-txt ._parentheses::before {
  top: min(0.2083333333vw, 4px);
  left: max(-0.9375vw, -18px);
}

.p-mv-txt ._parentheses::after {
  rotate: 180deg;
  bottom: min(0.3125vw, 6px);
  right: max(-1.1458333333vw, -22px);
}

.p-mv-img {
  display: block;
  width: min(68.0927083333vw, 1307.38px);
  aspect-ratio: 1307.38/185.11;
  margin-block: min(2.0833333333vw, 40px) min(4.1666666667vw, 80px);
  margin-left: max(-0.78125vw, -15px);
}
.p-mv-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-mv-list {
  display: grid;
  grid-template-columns: repeat(3, min(14.84375vw, 285px));
  gap: min(1.09375vw, 21px);
}

.p-mv-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(0.5208333333vw, 10px);
  width: 100%;
  height: min(8.59375vw, 165px);
  position: relative;
}

.p-mv-item::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/top/bg_mv_list_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  inset: 0;
}

.p-mv-item-icn {
  width: min(2.6041666667vw, 50px);
  aspect-ratio: 1;
}
.p-mv-item-icn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-mv-item-txt {
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: min(0.9375vw, 18px);
  color: #fff;
  text-align: center;
}

.p-mv-slide {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  z-index: -1;
  overflow: hidden;
  width: 100%;
  height: 100%;
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  background-color: #002C81;
}

.p-mv-slide-body {
  width: 100%;
  height: 100%;
  display: flex;
  -webkit-transform: translate(50%, -50%) rotate(30deg);
  transform: translate(50%, -50%) rotate(30deg);
  -webkit-transform-origin: 100% 20%;
  transform-origin: 100% 20%;
  -webkit-backface-visibility: hidden;
  margin-left: max(-21.9791666667vw, -422px);
}

.p-mv-slide-rail {
  height: 100%;
  position: relative;
  margin-right: min(3.125vw, 60px);
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.p-mv-slide-rail-inner {
  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;
}

.p-mv-slide-rail-inner ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
}

.p-mv-slide-rail:nth-child(odd) .p-mv-slide-rail-inner ul:first-child {
  -webkit-animation: railDown1 600s -300s linear infinite;
  animation-name: railDown1;
  animation-duration: 600s;
  animation-delay: -300s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.p-mv-slide-rail:nth-child(odd) .p-mv-slide-rail-inner ul:last-child {
  -webkit-animation: railDown2 600s linear infinite;
  animation-name: railDown2;
  animation-duration: 600s;
  animation-delay: -300s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.p-mv-slide-rail-inner ul:first-child {
  -webkit-animation: railUp1 600s -300s linear infinite;
  animation-name: railUp1;
  animation-duration: 600s;
  animation-delay: -300s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.p-mv-slide-rail-inner ul:last-child {
  -webkit-animation: railUp2 600s linear infinite;
  animation-name: railUp2;
  animation-duration: 600s;
  animation-delay: -300s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.p-mv-slide-tile {
  margin-bottom: min(2.6041666667vw, 50px);
  width: min(15.625vw, 300px);
  aspect-ratio: 300/400;
  position: relative;
}
.p-mv-slide-tile img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

@-webkit-keyframes railUp1 {
  0% {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
  }
  to {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
}
@keyframes railUp1 {
  0% {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
  }
  to {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
}
@-webkit-keyframes railUp2 {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-200%);
    transform: translateY(-200%);
  }
}
@keyframes railUp2 {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-200%);
    transform: translateY(-200%);
  }
}
@-webkit-keyframes railDown1 {
  0% {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  to {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
  }
}
@keyframes railDown1 {
  0% {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  to {
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
  }
}
@-webkit-keyframes railDown2 {
  0% {
    -webkit-transform: translateY(-200%);
    transform: translateY(-200%);
  }
  to {
    -webkit-transform: translateY(0%);
    transform: translateY(0%);
  }
}
@keyframes railDown2 {
  0% {
    -webkit-transform: translateY(-200%);
    transform: translateY(-200%);
  }
  to {
    -webkit-transform: translateY(0%);
    transform: translateY(0%);
  }
}
@media screen and (max-width: 767px) {
  .p-mv {
    padding-block: 34.6666666667vw 13.3333333333vw;
    background: linear-gradient(45deg, rgb(0, 44, 129) 22%, rgba(0, 44, 129, 0.5) 95%);
  }
  .p-mv-inner {
    max-width: 100%;
    padding-inline: 5.3333333333vw;
  }
  .p-mv-txt {
    font-size: 4.8vw;
    line-height: 1.9;
  }
  .p-mv-txt ._bg {
    font-size: 4.8vw;
    padding-block: 1.0666666667vw;
    padding-inline: 1.3333333333vw;
    margin-right: 0.8vw;
  }
  .p-mv-txt ._small {
    font-size: 4.2666666667vw;
  }
  .p-mv-txt ._parentheses {
    margin-inline: 3.2vw;
  }
  .p-mv-txt ._parentheses::after,
  .p-mv-txt ._parentheses::before {
    width: 1.624vw;
    height: 3.4666666667vw;
  }
  .p-mv-txt ._parentheses::before {
    top: 0.2666666667vw;
    left: -1.8666666667vw;
  }
  .p-mv-txt ._parentheses::after {
    rotate: 180deg;
    bottom: 0.2666666667vw;
    right: -2.1333333333vw;
  }
  .p-mv-img {
    width: 100.8vw;
    aspect-ratio: 378/160;
    margin-block: -1.0666666667vw 2.4vw;
    margin-left: -5.3333333333vw;
  }
  .p-mv-list {
    grid-template-columns: repeat(1, 78.6666666667vw);
    gap: 2.4vw;
  }
  .p-mv-item {
    flex-direction: row;
    justify-content: flex-start;
    gap: 4.2666666667vw;
    height: 17.6vw;
    padding-left: 5.3333333333vw;
  }
  .p-mv-item::before {
    background-image: url(../../../assets/images/top/bg_mv_list_sp.webp);
    background-size: contain;
  }
  .p-mv-item-icn {
    width: 8vw;
  }
  .p-mv-item-txt {
    font-size: 3.7333333333vw;
    text-align: left;
  }
  .p-mv-slide-body {
    margin-left: -13.3333333333vw;
  }
  .p-mv-slide-rail {
    margin-right: 3.68vw;
  }
  .p-mv-slide-tile {
    margin-bottom: 3.68vw;
    width: 18.4vw;
    aspect-ratio: 69/92;
  }
}
/* NEWS
---------------------------------------------------------------------------- */
.p-news {
  padding-block: 7.3rem 19.9rem;
}

.p-news-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  justify-content: space-between;
  align-items: flex-start;
  gap: 3rem;
}

.p-news-side {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.p-news .p-news-side {
  padding-top: 1.8rem;
}

.p-news-title-en {
  font-size: 4.6rem;
  line-height: 1;
  font-weight: 700;
  color: #002c81;
  font-family: "Josefin Sans";
  font-style: italic;
}

.p-news-more {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  gap: 1.8rem;
  color: #303030;
  text-decoration: underline;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 700;
}

.p-news-more::after {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  background-image: url(../../../assets/images/common/icn_arrow_circle.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

@media (any-hover: hover) {
  .p-news-more:hover {
    text-decoration: none;
  }
}
.p-news-item {
  position: relative;
  padding-bottom: 1.9rem;
}

.p-news-item::after,
.p-news-item::before {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 0.1rem;
  background-color: var(--border-color);
  transform: var(--transform);
  transform-origin: left;
  transition: transform 0.3s;
}

.p-news-item::after {
  --border-color: #dfdfdf;
  --transform: scale(1, 1);
}

.p-news-item::before {
  --border-color: #09237d;
  --transform: scale(0, 1);
  z-index: 1;
}

@media (any-hover: hover) {
  .p-news-item:has(a):hover::before {
    --transform: scale(1, 1);
  }
}
.p-news-item + .p-news-item {
  margin-top: 1.5rem;
}

.p-news-item-link {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0;
  color: #303030;
}

.p-news-item-link-meta {
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
}

.p-news-item-link-body {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
}

.p-news-item-date {
  margin-top: 0.5rem;
  margin-right: 2rem;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
}

.p-news-item-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-block: 0.5rem 0.6rem;
  padding-inline: 2.2rem;
  margin-right: 1.6rem;
  border-radius: calc(infinity * 1px);
  background-color: #002c81;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  letter-spacing: 0.06em;
  font-weight: 400;
}

.p-news-item-title {
  display: -webkit-box;
  margin-right: 1.6rem;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
}

.p-news-item-icon {
  display: block;
  width: 2.4rem;
  height: 2.4rem;
}

.p-news-item-icon::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/common/icn_arrow_circle_2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

@media screen and (max-width: 767px) {
  .p-news {
    padding-block: 12.8vw 46.4vw;
  }
  .p-news-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8vw;
  }
  .p-news-side {
    display: flex;
    flex-direction: column;
    gap: 3.7333333333vw;
  }
  .p-news .p-news-side {
    padding-top: 0;
  }
  .p-news-title-en {
    font-size: 9.6vw;
    text-align: center;
  }
  .p-news-more {
    justify-content: center;
    gap: 4.8vw;
    font-size: 4.2666666667vw;
  }
  .p-news-more::after {
    width: 6.4vw;
    height: 6.4vw;
  }
  .p-news-item {
    padding-bottom: 6.1333333333vw;
  }
  .p-news-item::after,
  .p-news-item::before {
    height: 0.2666666667vw;
  }
  .p-news-item + .p-news-item {
    margin-top: 5.3333333333vw;
  }
  .p-news-item-link {
    grid-template-columns: 1fr;
  }
  .p-news-item-link-meta {
    grid-template-columns: auto 1fr;
  }
  .p-news-item-link-body {
    grid-template-columns: 1fr auto;
    gap: 4.5333333333vw;
  }
  .p-news-item-date {
    margin-top: 0;
    margin-right: 5.3333333333vw;
    font-size: 4.2666666667vw;
  }
  .p-news-item-category-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 2.6666666667vw;
  }
  .p-news-item-category {
    padding-block: 1.3333333333vw 1.6vw;
    padding-inline: 5.8666666667vw;
    margin-right: 0;
    font-size: 4vw;
    width: fit-content;
  }
  .p-news-item-title {
    display: -webkit-box;
    margin-right: 0;
    -webkit-line-clamp: 2;
    font-size: 4.2666666667vw;
  }
  .p-news-item-icon {
    width: 6.4vw;
    height: 6.4vw;
  }
}
/* p-newsBottom
---------------------------------------------------------------------------- */
.p-newsBottom {
  padding-block: 10rem 8.5rem;
  background-color: #f8f8f8;
}
.p-newsBottom .p-news-inner {
  gap: 6.5rem;
}
.p-newsBottom .p-news-title-en {
  font-size: 7.5rem;
}

.p-news-tab-btn-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 1.1rem;
  margin-bottom: 3.5rem;
}

.p-news-tab-btn {
  display: grid;
  place-content: center;
  min-width: 13.5rem;
  padding-inline: 2.5rem;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: #fff;
  height: 3.9rem;
  background-color: #002c81;
  border-radius: 0.4rem 0.4rem 0 0;
  border: 0.1rem solid #002c81;
  border-bottom: none;
}
.p-news-tab-btn._active {
  background-color: #f8f8f8;
  color: #002c81;
  pointer-events: none;
}

.js-tab-content {
  display: none;
}

.js-tab-content._active {
  display: block;
}

@media screen and (max-width: 767px) {
  .p-newsBottom {
    padding-block: 13.3333333333vw 12.2666666667vw;
  }
  .p-newsBottom .p-news-inner {
    gap: 8vw;
  }
  .p-newsBottom .p-news-title-en {
    font-size: 13.3333333333vw;
    text-align: left;
  }
  .p-news-tab-btn-wrap {
    gap: 1.0666666667vw;
    margin-bottom: 8vw;
  }
  .p-news-tab-btn {
    min-width: auto;
    padding-inline: 2.1333333333vw;
    font-size: 3.7333333333vw;
    height: 10.4vw;
    border-radius: 1.0666666667vw 1.0666666667vw 0 0;
    border: 0.2666666667vw solid #002c81;
    border-bottom: none;
  }
}
/* p-about
---------------------------------------------------------------------------- */
.p-about {
  padding-block: min(5.2083333333vw, 100px) min(5.2083333333vw, 100px);
  position: relative;
  z-index: 1;
}

.p-about-bg-wrap {
  padding-right: min(9.9479166667vw, 191px);
  position: absolute;
  inset: 0;
  z-index: -1;
}

.p-about-bg {
  width: 100%;
  height: min(53.4375vw, 1026px);
  background-image: url(../../../assets/images/top/bg_about_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom left;
}

.p-about-inner {
  position: relative;
}

.p-about-content {
  max-width: min(62.5vw, 1200px);
  margin-inline: auto;
  position: relative;
}

.p-about-hero {
  margin-bottom: min(4.6875vw, 90px);
}

.p-about-photo {
  width: min(50vw, 960px);
  aspect-ratio: 960/540;
  position: absolute;
  top: max(-9.375vw, -180px);
  left: min(6.25vw, 120px);
  translate: -50%;
}
.p-about-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-about-hero-body {
  width: fit-content;
  margin-inline: auto min(1.5104166667vw, 29px);
}

.p-about-lead {
  margin-top: min(2.2395833333vw, 43px);
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
  font-size: min(0.8333333333vw, 16px);
  color: #fff;
}

.p-about-features {
  display: grid;
  grid-template-columns: repeat(3, min(19.2708333333vw, 370px));
  justify-content: center;
  gap: min(2.34375vw, 45px);
  height: min(16.3541666667vw, 314px);
  margin-bottom: min(1.875vw, 36px);
}

.p-about-card {
  position: relative;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
  justify-content: center;
  align-items: center;
  padding-block: min(3.2291666667vw, 62px) min(1.5104166667vw, 29px);
}

.p-about-card::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/top/bg_about_item.webp);
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  inset: 0;
  z-index: -1;
}

.p-about-card-num {
  font-size: 6rem;
  line-height: 1;
  font-weight: 700;
  font-size: min(3.125vw, 60px);
  font-family: "Josefin Sans";
  color: #002c81;
  font-style: italic;
  position: absolute;
  top: min(1.3020833333vw, 25px);
  left: min(1.40625vw, 27px);
}

.p-about-card-illust {
  margin-inline: auto;
}
.p-about-card-illust._illust-1 {
  width: min(5.0848958333vw, 97.63px);
  aspect-ratio: 97.63/79.43;
}
.p-about-card-illust._illust-2 {
  width: min(3.1020833333vw, 59.56px);
  aspect-ratio: 59.56/100.7;
}
.p-about-card-illust._illust-3 {
  width: min(5.1432291667vw, 98.75px);
  aspect-ratio: 98.75/85.83;
}
.p-about-card-illust img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-about-card-line {
  font-size: 2rem;
  line-height: 1.5;
  font-weight: 700;
  font-size: min(1.0416666667vw, 20px);
  text-align: center;
}
.p-about-card-line span {
  line-height: 1;
  color: #fff;
  padding-block: 0;
  padding-inline: min(0.46875vw, 9px);
  background-color: #002c81;
}

.p-about-btn-wrap {
  width: min(12.03125vw, 231px);
  margin-inline: auto;
}

@media screen and (max-width: 767px) {
  .p-about {
    padding-block: 23.7333333333vw 13.8666666667vw;
  }
  .p-about-bg-wrap {
    padding-right: 0;
  }
  .p-about-bg {
    height: 378.9333333333vw;
    background-image: url(../../../assets/images/top/bg_about_sp.webp);
  }
  .p-about-content {
    max-width: 100%;
    padding-inline: 5.3333333333vw;
  }
  .p-about-hero {
    margin-bottom: 5.8666666667vw;
  }
  .p-about-photo {
    width: 89.3333333333vw;
    top: -58.4vw;
    left: 0;
    translate: 0;
  }
  .p-about-hero-body {
    margin-inline: auto;
  }
  .p-about-lead {
    margin-top: 1.3333333333vw;
    font-size: 4.2666666667vw;
  }
  .p-about-features {
    grid-template-columns: repeat(1, 1fr);
    gap: 5.3333333333vw;
    height: auto;
    margin-bottom: 8vw;
  }
  .p-about-card {
    grid-template-rows: auto;
    padding-block: 13.0666666667vw 8.5333333333vw;
    height: 74.9333333333vw;
  }
  .p-about-card-num {
    font-size: 13.3333333333vw;
    top: 4.5333333333vw;
    left: 4.8vw;
  }
  .p-about-card-illust._illust-1 {
    width: 23.4666666667vw;
  }
  .p-about-card-illust._illust-2 {
    width: 13.3333333333vw;
  }
  .p-about-card-illust._illust-3 {
    width: 22.1333333333vw;
  }
  .p-about-card-line {
    font-size: 4.8vw;
  }
  .p-about-card-line span {
    padding-inline: 2.4vw;
  }
  .p-about-btn-wrap {
    width: 61.6vw;
  }
}
/* p-product
---------------------------------------------------------------------------- */
.p-product {
  padding-block: 41.6rem 10rem;
  position: relative;
  margin-top: -23.2rem;
}

.p-product::before {
  content: "";
  width: 192rem;
  height: 108.8rem;
  background-image: url(../../../assets/images/top/bg_product_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom right;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: -1;
}

.p-product::after {
  content: "";
  width: 100%;
  height: 100%;
  background-color: #f0f6fe;
  position: absolute;
  inset: 0;
  z-index: -2;
}

.p-product-search {
  background-color: #e8f0ff;
  padding-block: 3rem;
  padding-inline: 5rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
  margin-block: 4.5rem 3.2rem;
}

.p-product-search-btn {
  --color-bg: #002c81;
  --color-txt: #fff;
  --border-color: #002c81;
  display: grid;
  grid-template-columns: 1fr auto;
  justify-content: space-between;
  align-items: center;
  padding-block: 1.6rem 1.4rem;
  padding-inline: 2rem 2.4rem;
  font-size: 1.8rem;
  line-height: 1.7222222222;
  letter-spacing: 0.15em;
  font-weight: 700;
  color: var(--color-txt);
  background-color: var(--color-bg);
  border: 0.2rem solid var(--border-color);
  border-radius: 0.6rem;
  overflow: hidden;
  transition: all 0.3s;
  position: relative;
}
.p-product-search-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--color-txt);
  translate: -102%;
  transition: all 0.3s;
}

.p-product-search-btn ._txt {
  position: relative;
  padding-left: 3.55rem;
}

.p-product-search-btn ._txt::before {
  content: "";
  width: 2.55rem;
  height: 2.55rem;
  mask-image: url(../../../assets/images/top/icn_product_1.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: var(--color-txt);
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}

.p-product-search-btn:nth-of-type(2) ._txt::before {
  width: 2.66rem;
  height: 2.748rem;
  mask-image: url(../../../assets/images/top/icn_product_2.svg);
}

.p-product-search-btn:nth-of-type(3) ._txt::before {
  width: 2.464rem;
  height: 2.977rem;
  mask-image: url(../../../assets/images/top/icn_product_3.svg);
}

.p-product-search-btn ._arrow {
  position: relative;
  display: block;
  width: 1.8rem;
  height: 1.7rem;
}

.p-product-search-btn ._arrow::after,
.p-product-search-btn ._arrow::before {
  content: "";
  width: 100%;
  height: 100%;
  mask-image: url(../../../assets/images/common/icn_arrow_right.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center;
  background-color: var(--color-arrow);
  position: absolute;
  inset: 0;
  transition: translate 0.3s ease, opacity 0.3s ease;
}

.p-product-search-btn ._arrow::before {
  --color-arrow: var(--color-bg);
  translate: -102% 0;
  opacity: 0;
}

.p-product-search-btn ._arrow::after {
  --color-arrow: var(--color-txt);
  translate: 0 0;
  opacity: 1;
}

@media (any-hover: hover) {
  .p-product-search-btn:hover {
    color: var(--color-bg);
  }
  .p-product-search-btn:hover::before {
    translate: 0;
  }
  .p-product-search-btn:hover ._txt::before {
    background-color: var(--color-bg);
  }
  .p-product-search-btn:hover ._arrow::before {
    translate: 0 0;
    opacity: 1;
  }
  .p-product-search-btn:hover ._arrow::after {
    translate: 100% 0;
    opacity: 0;
  }
}
.p-product-search-freeword {
  position: relative;
  width: 62rem;
  height: 6.5rem;
  margin-inline: auto;
}

.p-product-search-freeword-input {
  font-size: 2rem;
  line-height: 1.7;
  letter-spacing: 0.04em;
  font-weight: 700;
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding-block: 2.2rem 2.3rem;
  padding-inline: 3rem;
  border-radius: 0.6rem;
  border: 0.2rem solid #989898;
}

.p-product-search-freeword-input:-webkit-autofill,
.p-product-search-freeword-input:-webkit-autofill:hover,
.p-product-search-freeword-input:-webkit-autofill:focus,
.p-product-search-freeword-input:-webkit-autofill:active {
  box-shadow: 0 0 0 1000px #fff inset;
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
  -webkit-text-fill-color: currentColor;
  caret-color: currentColor;
  transition: background-color 5000s ease-in-out 0s;
}

.p-product-search-freeword-input:autofill {
  background-color: #fff;
}

.p-product-search-freeword-submit {
  width: 3rem;
  height: 3rem;
  background-image: url(../../../assets/images/top/icn_search.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 2.5rem;
  translate: 0 -50%;
}

.p-product-category {
  margin-top: 4.7rem;
}

.p-product-category-ttl {
  --border-width: 6rem; /* ボーダーの横幅 */
  --border-thickness: 0.2rem; /* ボーダーの太さ */
  --border-color: #002c81; /* ボーダーの色 */
  --border-gap: 1.8rem; /* 見出しとボーダー間の距離 */
  font-size: 3.2rem;
  line-height: 1.6875;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: #002c81;
  inline-size: fit-content;
  margin-inline-start: auto;
  margin-inline-end: auto;
  border-image-source: linear-gradient(transparent calc(50% - var(--border-thickness) / 2), var(--border-color) 0 calc(50% + var(--border-thickness) / 2), transparent 0);
  border-image-slice: 0 1;
  border-image-width: 0 var(--border-width);
  border-image-outset: 0 calc(var(--border-width) + var(--border-gap));
  border-image-repeat: stretch;
}

.p-product-category-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2.7rem 1.5rem;
  margin-block: 2.7rem 4rem;
}

.p-product-category-item {
  color: #303030;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
}

.p-product-category-item-img {
  width: 100%;
  aspect-ratio: 228/221;
  overflow: hidden;
}
.p-product-category-item-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  scale: 1;
  transition: scale 0.3s;
}

.p-product-category-item-txt {
  display: grid;
  align-items: center;
  width: 100%;
  position: relative;
  font-size: 1.8rem;
  line-height: 1.7222222222;
  letter-spacing: 0.04em;
  font-weight: 700;
  color: #303030;
  padding-block: 1.3rem 2.2rem;
  padding-left: 2.7rem;
}

.p-product-category-item-txt::after,
.p-product-category-item-txt::before {
  position: absolute;
  content: "";
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 0.1rem;
  background-color: var(--border-color);
  transform: var(--transform);
  transform-origin: left;
  transition: transform 0.3s;
}

.p-product-category-item-txt::after {
  --border-color: #dfdfdf;
  --transform: scale(1, 1);
}

.p-product-category-item-txt::before {
  --border-color: #09237d;
  --transform: scale(0, 1);
  z-index: 1;
}

.p-product-category-item-txt ._arrow {
  display: block;
  width: 1.9rem;
  height: 1.4rem;
  mask-image: url(../../../assets/images/common/icn_arrow_right.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  background-color: #09237d;
  position: absolute;
  top: 46%;
  left: 0;
  translate: 0 -50%;
}

@media (any-hover: hover) {
  .p-product-category-item:hover .p-product-category-item-img img {
    scale: 1.1;
  }
  .p-product-category-item:hover .p-product-category-item-txt::before {
    transform: scale(1);
  }
}
.p-product-category-btn-wrap {
  width: 23.1rem;
  margin-inline: auto;
}

.p-product-category-img-link {
  display: block;
  width: 80rem;
  aspect-ratio: 800/204;
  margin-inline: auto;
  margin-top: 6.1rem;
}

.p-product-category-img {
  display: block;
  width: 100%;
  height: 100%;
}
.p-product-category-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

@media screen and (max-width: 767px) {
  .p-product {
    padding-block: 31.4666666667vw 13.3333333333vw;
    margin-top: 0;
  }
  .p-product::before {
    content: "";
    width: 100vw;
    height: 218.4vw;
    background-image: url(../../../assets/images/top/bg_product_sp.webp);
  }
  .p-product-search {
    padding-block: 8vw;
    padding-inline: 5.3333333333vw;
    grid-template-columns: repeat(1, 1fr);
    gap: 5.6vw;
    margin-block: 7.7333333333vw 5.3333333333vw;
  }
  .p-product-search-btn {
    padding-block: 3.2vw;
    padding-inline: 5.0666666667vw 4.2666666667vw;
    font-size: 4.8vw;
    letter-spacing: 0.04em;
    border: 0.5333333333vw solid var(--border-color);
    border-radius: 1.6vw;
  }
  .p-product-search-btn ._arrow {
    width: 3.2vw;
    height: 2.6666666667vw;
  }
  .p-product-search-btn ._txt {
    padding-left: 9.0666666667vw;
  }
  .p-product-search-btn ._txt::before {
    width: 6.4vw;
    height: 6.4vw;
  }
  .p-product-search-btn:nth-of-type(2) ._txt::before {
    width: 6.4vw;
    height: 6.6666666667vw;
  }
  .p-product-search-btn:nth-of-type(3) ._txt::before {
    width: 6.4vw;
    height: 7.4666666667vw;
  }
  .p-product-search-btn ._arrow {
    width: 4.8vw;
    height: 4.5333333333vw;
  }
  .p-product-search-freeword {
    width: 100%;
    height: 17.3333333333vw;
  }
  .p-product-search-freeword-input {
    font-size: 5.3333333333vw;
    padding-block: 6.1333333333vw 5.8666666667vw;
    padding-inline: 5.3333333333vw;
    border-radius: 1.6vw;
    border: 0.5333333333vw solid #989898;
  }
  .p-product-search-freeword-submit {
    width: 8vw;
    height: 8vw;
    right: 5.3333333333vw;
  }
  .p-product-category {
    margin-top: 7.7333333333vw;
  }
  .p-product-category-ttl {
    --border-width: calc(50/375 * 100 * 1vw); /* ボーダーの横幅 */
    --border-thickness: calc(2/375 * 100 * 1vw); /* ボーダーの太さ */
    --border-color: #002c81; /* ボーダーの色 */
    --border-gap: calc(10/375 * 100 * 1vw); /* 見出しとボーダー間の距離 */
    font-size: 6.4vw;
    border-image-source: linear-gradient(transparent calc(50% - var(--border-thickness) / 2), var(--border-color) 0 calc(50% + var(--border-thickness) / 2), transparent 0);
    border-image-width: 0 var(--border-width);
    border-image-outset: 0 calc(var(--border-width) + var(--border-gap));
  }
  .p-product-category-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 5.3333333333vw 4.2666666667vw;
    margin-block: 4.8vw 8vw;
  }
  .p-product-category-item-txt {
    align-items: flex-start;
    font-size: 3.7333333333vw;
    line-height: 1.2857142857;
    padding-block: 1.8666666667vw 5.6vw;
    padding-left: 6.1333333333vw;
  }
  .p-product-category-item-txt::after,
  .p-product-category-item-txt::before {
    height: 0.2666666667vw;
  }
  .p-product-category-item-txt ._arrow {
    width: 3.2vw;
    height: 2.6666666667vw;
    top: 5.6vw;
  }
  .p-product-category-btn-wrap {
    width: 61.6vw;
  }
  .p-product-category-img-link {
    width: 89.3333333333vw;
    aspect-ratio: 335/85;
    margin-top: 8vw;
  }
}
/* p-afterService
---------------------------------------------------------------------------- */
.p-afterService {
  padding-block: 10rem;
  position: relative;
}

.p-afterService::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/top/bg_afterService_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom;
  position: absolute;
  inset: 0;
  z-index: -1;
}

.p-afterService-box {
  display: grid;
  grid-template: "ttl img" "txt img" "btn img"/1fr auto;
  gap: 0 4.6rem;
  align-items: center;
  padding-block: 4.7rem;
  padding-inline: 8rem 5.4rem;
  position: relative;
}

.p-afterService-box::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/top/bg_afterService_box_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom;
  position: absolute;
  inset: 0;
  z-index: -1;
}

.p-afterService-box-ttl {
  grid-area: ttl;
  font-size: 3.2rem;
  line-height: 1.6875;
  letter-spacing: 0.06em;
  font-weight: 700;
  color: #002c81;
  position: relative;
  padding-left: 7.2rem;
}

.p-afterService-box-ttl::before {
  content: "";
  width: 6.1rem;
  height: 5.3rem;
  background-image: url(../../../assets/images/top/icn_afterService.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  translate: 0 -50%;
}

.p-afterService-box-txt {
  grid-area: txt;
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
  margin-block: 1.5rem 3.5rem;
}

.p-afterService-box-btn-wrap {
  grid-area: btn;
  width: 23.1rem;
}

.p-afterService-box-img {
  grid-area: img;
  width: 50.3rem;
  aspect-ratio: 503/281;
}
.p-afterService-box-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

@media screen and (max-width: 767px) {
  .p-afterService {
    padding-block: 13.3333333333vw 14.9333333333vw;
  }
  .p-afterService::before {
    background-image: url(../../../assets/images/top/bg_afterService_sp.webp);
  }
  .p-afterService-box {
    grid-template: "ttl" "img" "txt" "btn"/1fr;
    gap: 0;
    padding-block: 5.6vw 9.0666666667vw;
    padding-inline: 5.3333333333vw;
  }
  .p-afterService-box::before {
    background-image: url(../../../assets/images/top/bg_afterService_box_sp.webp);
  }
  .p-afterService-box-ttl {
    font-size: 6.4vw;
    padding-left: 13.8666666667vw;
  }
  .p-afterService-box-ttl::before {
    width: 11.2vw;
    height: 9.6vw;
  }
  .p-afterService-box-txt {
    font-size: 4.2666666667vw;
    margin-block: 4vw 6.1333333333vw;
  }
  .p-afterService-box-btn-wrap {
    width: 61.6vw;
  }
  .p-afterService-box-img {
    width: 100%;
    margin-top: 4.8vw;
  }
}
/* p-case
---------------------------------------------------------------------------- */
.p-case {
  padding-block: 12rem 16.7rem;
  position: relative;
}
.p-case .swiper-slide-prev,
.p-case .swiper-slide-next {
  opacity: 0.6;
}

.p-case::before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: #f0f6fe;
  position: absolute;
  inset: 0;
  z-index: -2;
}

.p-case-card {
  margin-top: min(1.3020833333vw, 25px);
  width: min(100vw, 1920px);
  margin-inline: auto;
  position: relative;
}

.p-case-card-link {
  color: #303030;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: min(2.0833333333vw, 40px);
  width: min(57.2916666667vw, 1100px);
  min-height: min(20.8333333333vw, 400px);
  padding-block: min(4.2708333333vw, 82px) min(3.125vw, 60px);
  padding-inline: min(2.6041666667vw, 50px);
  position: relative;
  margin-inline: auto;
}

.p-case-card-link::before {
  content: "";
  width: min(59.6354166667vw, 1145px);
  height: min(23.1770833333vw, 445px);
  background-image: url(../../../assets/images/top/bg_case_item_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: absolute;
  inset: 0;
  left: max(-1.25vw, -24px);
  z-index: -1;
}

.p-case-card-ttl-wrap {
  border-left: min(0.2604166667vw, 5px) solid #002c81;
  padding-left: min(1.0416666667vw, 20px);
  margin-bottom: min(1.71875vw, 33px);
}

.p-case-card-ttl {
  font-size: 3.2rem;
  line-height: 1.6875;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: min(1.6666666667vw, 32px);
  color: #002c81;
}

.p-case-card-ttl-sub {
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
  font-size: min(0.8333333333vw, 16px);
}

.p-case-card-txt {
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
  font-size: min(0.8333333333vw, 16px);
  overflow: hidden;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

.p-case-card-img {
  width: min(26.0416666667vw, 500px);
  aspect-ratio: 500/280;
  overflow: hidden;
}
.p-case-card-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  scale: 1;
  transition: scale 0.3s ease;
}

@media (any-hover: hover) {
  .p-case-card-link:hover .p-case-card-img img {
    scale: 1.1;
  }
}
.p-swiper-scrollbar:has(.swiper-scrollbar-drag) {
  position: absolute;
  bottom: max(-2.0833333333vw, -40px);
  left: 50%;
  translate: -50% 100%;
  width: min(26.0416666667vw, 500px);
  height: min(0.2083333333vw, 4px);
  z-index: 10;
  background-color: #dfdfdf;
}
.p-swiper-scrollbar:has(.swiper-scrollbar-drag) .swiper-scrollbar-drag {
  background-color: #002c81;
}

.p-swiper-button-prev,
.p-swiper-button-next {
  position: absolute;
  top: 52%;
  translate: 0 -50%;
  width: min(3.3703125vw, 64.71px);
  height: min(3.3703125vw, 64.71px);
  z-index: 10;
  cursor: pointer;
}

.p-swiper-button-prev {
  left: min(18.9583333333vw, 364px);
}

.p-swiper-button-next {
  right: min(18.9583333333vw, 364px);
}

.p-swiper-button-prev:after,
.p-swiper-button-next:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../../../assets/images/top/icn_case_arrow.webp);
  background-repeat: no-repeat;
  background-size: contain;
}

.p-swiper-button-next:after {
  rotate: 180deg;
}

@media screen and (max-width: 767px) {
  .p-case {
    padding-block: 13.3333333333vw 19.2vw;
  }
  .p-case-card {
    margin-top: 6.6666666667vw;
    width: 100vw;
  }
  .p-case-card-link {
    grid-template-columns: 1fr;
    gap: 4.5333333333vw;
    width: 78.6666666667vw;
    min-height: 124.2666666667vw;
    padding-block: 5.3333333333vw;
    padding-inline: 5.3333333333vw;
  }
  .p-case-card-link::before {
    background-image: url(../../../assets/images/top/bg_case_item_sp.webp);
    width: 90.6666666667vw;
    height: 136.2666666667vw;
    top: -4.8vw;
    left: -5.8666666667vw;
  }
  .p-case-card-ttl-wrap {
    border-left: 0.8vw solid #002c81;
    padding-left: 4.8vw;
    margin-bottom: 2.4vw;
  }
  .p-case-card-ttl {
    font-size: 6.4vw;
    line-height: 1.7083333333;
  }
  .p-case-card-ttl-sub {
    font-size: 3.7333333333vw;
    line-height: 1.7142857143;
  }
  .p-case-card-txt {
    font-size: 4.2666666667vw;
    line-height: 1.8125;
    -webkit-line-clamp: 6;
  }
  .p-case-card-img {
    width: 100%;
  }
  .p-swiper-scrollbar:has(.swiper-scrollbar-drag) {
    bottom: -5.3333333333vw;
    width: 89.3333333333vw;
    height: 1.0666666667vw;
  }
  .p-swiper-button-prev,
  .p-swiper-button-next {
    top: 50%;
    width: 16vw;
    height: 16vw;
  }
  .p-swiper-button-prev {
    left: 5.6vw;
  }
  .p-swiper-button-next {
    right: 5.6vw;
  }
}
/* p-topics
---------------------------------------------------------------------------- */
.p-topics {
  margin-block: 12rem 20.4rem;
}

.p-topics-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4.5rem;
}

.p-topics-head-btn-wrap {
  width: 23.1rem;
}

.p-topics-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  width: 100%;
}

.p-topics-card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  gap: 0;
  color: inherit;
  transition: opacity 0.2s ease;
}

.p-topics-card-thumb {
  width: 100%;
  aspect-ratio: 380/213;
  overflow: hidden;
}
.p-topics-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  scale: 1;
  transition: scale 0.3s ease;
}

.p-topics-card-date {
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.06em;
  font-weight: 400;
  margin-top: 1.4rem;
}

.p-topics-card-ttl {
  font-size: 2rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  font-weight: 700;
  overflow: hidden;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin-block: 0.8rem 2.6rem;
  position: relative;
}

.p-topics-card-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.p-topics-card-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-block: 0.2rem;
  padding-inline: 1.2rem;
  background-color: #fff;
  color: #002c81;
  border: 0.1rem solid #002c81;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 700;
  border-radius: calc(infinity * 1px);
}

@media (any-hover: hover) {
  .p-topics-card:hover .p-topics-card-thumb img {
    scale: 1.1;
  }
}
@media screen and (max-width: 767px) {
  .p-topics {
    margin-block: 13.3333333333vw 51.7333333333vw;
  }
  .p-topics-head {
    margin-bottom: 8vw;
  }
  .p-topics-head-btn-wrap {
    width: 61.6vw;
    margin-inline: auto;
    margin-top: 8.2666666667vw;
  }
  .p-topics-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 8vw;
    width: 100%;
  }
  .p-topics-card-date {
    font-size: 4.2666666667vw;
    line-height: 2;
    margin-top: 1.0666666667vw;
  }
  .p-topics-card-ttl {
    font-size: 4.8vw;
    line-height: 1.6666666667;
    margin-block: 1.6vw 6.1333333333vw;
  }
  .p-topics-card-tags {
    gap: 2.6666666667vw;
  }
  .p-topics-card-tag {
    padding-block: 0.5333333333vw;
    padding-inline: 3.2vw;
    border: 0.2666666667vw solid #002c81;
    font-size: 3.7333333333vw;
  }
}
/* p-column
---------------------------------------------------------------------------- */
.p-column {
  margin-bottom: 20.7rem;
  position: relative;
}

.p-column::before {
  content: "";
  width: 192rem;
  height: 108.8rem;
  background-image: url(../../../assets/images/top/bg_column_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom;
  position: absolute;
  bottom: -21.3rem;
  left: 50%;
  translate: -50% 0;
  z-index: -1;
}

.p-column-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4.5rem;
}

.p-column-head-btn-wrap {
  width: 23.1rem;
}

.p-column-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  width: 100%;
}

.p-column-card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  color: inherit;
  transition: opacity 0.2s ease;
}

.p-column-card-thumb {
  width: 100%;
  aspect-ratio: 380/213;
  overflow: hidden;
}
.p-column-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  scale: 1;
  transition: scale 0.3s ease;
}

.p-column-card-ttl {
  font-size: 2rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  font-weight: 700;
  overflow: hidden;
  white-space: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin-block: 1.4rem 2.6rem;
  position: relative;
}

.p-column-card-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.p-column-card-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-block: 0.2rem;
  padding-inline: 1.2rem;
  background-color: #fff;
  color: #002c81;
  border: 0.1rem solid #002c81;
  font-size: 1.4rem;
  line-height: 1.5;
  font-weight: 700;
  border-radius: calc(infinity * 1px);
}

@media (any-hover: hover) {
  .p-column-card:hover .p-column-card-thumb img {
    scale: 1.1;
  }
}
@media screen and (max-width: 767px) {
  .p-column {
    margin-bottom: 53.3333333333vw;
  }
  .p-column::before {
    width: 100.2666666667vw;
    height: 218.4vw;
    background-image: url(../../../assets/images/top/bg_column_sp.webp);
    bottom: -13.0666666667vw;
  }
  .p-column-head {
    margin-bottom: 8vw;
  }
  .p-column-head-btn-wrap {
    width: 61.6vw;
    margin-inline: auto;
    margin-top: 8.2666666667vw;
  }
  .p-column-list {
    grid-template-columns: repeat(1, 1fr);
    gap: 8vw;
    width: 100%;
  }
  .p-column-card-ttl {
    font-size: 4.8vw;
    line-height: 1.6666666667;
    margin-block: 2.6666666667vw 6.1333333333vw;
  }
  .p-column-card-tags {
    gap: 2.6666666667vw;
  }
  .p-column-card-tag {
    padding-block: 0.5333333333vw;
    padding-inline: 3.2vw;
    border: 0.2666666667vw solid #002c81;
    font-size: 3.7333333333vw;
  }
}
/* p-company
---------------------------------------------------------------------------- */
.p-company {
  margin-bottom: 15.2rem;
}

.p-company-inner {
  max-width: min(100vw, 1920px);
  padding-block: min(3.75vw, 72px) min(17.1875vw, 330px);
  margin-inline: auto;
  position: relative;
}

.p-company-inner::before {
  content: "";
  width: min(90.1041666667vw, 1730px);
  height: min(32.34375vw, 621px);
  background-color: #f0f6fe;
  position: absolute;
  top: 0;
  right: 50%;
  translate: 50% 0;
  z-index: -1;
}

.p-company-content {
  width: min(27.3494791667vw, 525.11px);
}

.p-company-txt {
  font-size: 1.6rem;
  line-height: 1.8125;
  letter-spacing: 0.06em;
  font-weight: 400;
  font-size: min(0.8333333333vw, 16px);
  margin-block: min(1.9270833333vw, 37px) min(2.1354166667vw, 41px);
}

.p-company-btn-wrap {
  width: min(12.03125vw, 231px);
  margin-top: min(2.6041666667vw, 50px);
}

.p-company-img {
  position: absolute;
  top: max(-4.4270833333vw, -85px);
  right: 0;
  width: min(50vw, 960px);
  height: min(28.125vw, 540px);
}
.p-company-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-company-page {
  position: absolute;
  bottom: max(-1.6145833333vw, -31px);
  left: 50%;
  translate: -50%;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: center;
  gap: min(0.78125vw, 15px);
  width: 100%;
  max-width: min(62.5vw, 1200px);
  margin-inline: auto;
}

.p-company-page-link {
  display: block;
  position: relative;
  color: #fff;
  width: min(11.875vw, 228px);
  height: min(6.7708333333vw, 130px);
  padding-block: min(1.1458333333vw, 22px);
  padding-inline: min(1.0416666667vw, 20px);
  background-image: url(../../../assets/images/top/bg_company_1.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  border-radius: min(0.3125vw, 6px);
  overflow: hidden;
  transition: all 0.3s;
}
.p-company-page-link::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #002c81;
  translate: -102%;
  transition: all 0.3s;
}

.p-company-page-link:nth-of-type(2) {
  background-image: url(../../../assets/images/top/bg_company_2.webp);
}

.p-company-page-link:nth-of-type(3) {
  background-image: url(../../../assets/images/top/bg_company_3.webp);
}

.p-company-page-link:nth-of-type(4) {
  background-image: url(../../../assets/images/top/bg_company_4.webp);
}

.p-company-page-link:nth-of-type(5) {
  background-image: url(../../../assets/images/top/bg_company_5.webp);
}

.p-company-page-txt-group {
  position: relative;
}

.p-company-page-txt-en {
  font-size: 2rem;
  line-height: 1.2;
  font-weight: 500;
  font-size: min(1.0416666667vw, 20px);
  font-family: "Josefin Sans";
  font-style: italic;
}

.p-company-page-ttl {
  font-size: 2.4rem;
  line-height: 1.3333333333;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: min(1.25vw, 24px);
}

.p-company-page-icon {
  position: absolute;
  bottom: min(1.0416666667vw, 20px);
  right: min(1.0416666667vw, 20px);
}

.p-company-page-icon ._arrow {
  position: relative;
  display: block;
  width: min(0.9375vw, 18px);
  height: min(0.8854166667vw, 17px);
}

.p-company-page-icon ._arrow::after,
.p-company-page-icon ._arrow::before {
  content: "";
  width: 100%;
  height: 100%;
  mask-image: url(../../../assets/images/common/icn_arrow_right.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center;
  background-color: var(--color-bg);
  position: absolute;
  inset: 0;
  transition: translate 0.3s ease, opacity 0.3s ease;
}

.p-company-page-icon ._arrow::before {
  --color-bg: #fff;
  translate: -102% 0;
  opacity: 0;
}

.p-company-page-icon ._arrow::after {
  --color-bg: #fff;
  translate: 0 0;
  opacity: 1;
}

@media (any-hover: hover) {
  .p-company-page-link:hover::before {
    translate: 0;
  }
  .p-company-page-link:hover ._arrow::before {
    translate: 0 0;
    opacity: 1;
  }
  .p-company-page-link:hover ._arrow::after {
    translate: 100% 0;
    opacity: 0;
  }
}
@media screen and (max-width: 767px) {
  .p-company {
    margin-bottom: 52.2666666667vw;
  }
  .p-company-inner {
    max-width: 100%;
    padding-block: 31.4666666667vw 42.6666666667vw;
  }
  .p-company-inner::before {
    width: 100%;
    height: 172.8vw;
  }
  .p-company-content {
    width: 100%;
  }
  .p-company-txt {
    font-size: 4.2666666667vw;
    margin-block: 2.6666666667vw 6.4vw;
  }
  .p-company-btn-wrap {
    width: 61.6vw;
    margin-top: 10.6666666667vw;
  }
  .p-company-img {
    top: -26.4vw;
    width: 89.3333333333vw;
    height: 50.1333333333vw;
  }
  .p-company-page {
    bottom: -38.6666666667vw;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.6666666667vw;
    max-width: 100%;
    padding-inline: 5.3333333333vw;
  }
  .p-company-page-link {
    width: 43.4666666667vw;
    height: 24vw;
    padding-block: 4vw;
    padding-inline: 4vw;
    border-radius: 1.6vw;
  }
  .p-company-page-txt-en {
    font-size: 1.4rem;
    line-height: 1.2857142857;
  }
  .p-company-page-ttl {
    font-size: 4.2666666667vw;
  }
  .p-company-page-icon {
    bottom: 3.2vw;
    right: 3.2vw;
  }
  .p-company-page-icon ._arrow {
    width: 4.8vw;
    height: 4.5333333333vw;
  }
}
/* p-group
---------------------------------------------------------------------------- */
.p-group {
  padding-block: min(6.25vw, 120px);
  position: relative;
  margin-bottom: 12rem;
}

.p-group::before {
  content: "";
  width: min(90.1041666667vw, 1730px);
  height: min(34.375vw, 660px);
  background-image: url(../../../assets/images/top/bg_group_pc.webp);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: bottom left;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  translate: -50%;
  z-index: -1;
  margin-inline: max(-5vw, -96px) auto;
}

.p-group-inner {
  display: flex;
  justify-content: space-between;
  gap: min(6.25vw, 120px);
  max-width: min(62.5vw, 1200px);
  margin-inline: auto;
}

.p-group-left {
  display: flex;
  flex-direction: column;
  gap: min(2.1875vw, 42px);
}

.p-group-ttl {
  display: flex;
  flex-direction: column;
  gap: min(0.6770833333vw, 13px);
}

.p-group-ttl-en {
  width: min(18.5005208333vw, 355.21px);
  aspect-ratio: 355.21/78.22;
}
.p-group-ttl-en img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.p-group-ttl-jp {
  font-size: 2.4rem;
  line-height: 1.7083333333;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: min(1.25vw, 24px);
  color: #fff;
}

.p-group-txt {
  font-size: 3.2rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: min(1.6666666667vw, 32px);
  color: #fff;
}

.p-group-box-wrap {
  display: flex;
  flex-direction: column;
  gap: min(1.0416666667vw, 20px);
}

.p-group-box-img {
  display: block;
  width: min(26.0416666667vw, 500px);
  height: min(10.4166666667vw, 200px);
}
.p-group-box-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

@media screen and (max-width: 767px) {
  .p-group {
    padding-block: 13.3333333333vw;
    margin-bottom: 0;
  }
  .p-group::before {
    width: 100%;
    height: 100%;
    margin-inline: auto;
    background-image: url(../../../assets/images/top/bg_group_sp.webp);
  }
  .p-group-inner {
    flex-direction: column;
    gap: 5.3333333333vw;
    max-width: 100%;
    padding-inline: 5.3333333333vw;
  }
  .p-group-left {
    gap: 1.8666666667vw;
  }
  .p-group-ttl {
    gap: 1.3333333333vw;
  }
  .p-group-ttl-en {
    width: 48.52vw;
  }
  .p-group-ttl-jp {
    font-size: 4.8vw;
  }
  .p-group-txt {
    font-size: 6.4vw;
    line-height: 1.6;
  }
  .p-group-box-wrap {
    gap: 5.3333333333vw;
  }
  .p-group-box-img {
    width: 89.3333333333vw;
    height: 36.8vw;
  }
}
