@charset "UTF-8";
.l-header h1 {
  display: contents;
}

.top-title {
  margin-bottom: 26px;
  color: #0C0051;
  font-size: 1.8rem;
  font-weight: 600;
}
.top-title .en {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding-bottom: 12px;
  background: -webkit-gradient(linear, left top, right top, from(#0C0051), to(#E60000));
  background: linear-gradient(to right, #0C0051, #E60000);
  font-family: "Noto Sans", sans-serif;
  font-size: 5rem;
  font-weight: 700;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.top-title::after {
  display: block;
  content: "";
  width: 76px;
  height: 6px;
  margin-top: 18px;
  background: url('data:image/svg+xml;utf8,<svg width="76" height="6" viewBox="0 0 76 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3 0H39L32.5 6H3C1.34315 6 0 4.65685 0 3C0 1.34315 1.34315 0 3 0Z" fill="%230C0051"/><path fill-rule="evenodd" clip-rule="evenodd" d="M37 6L73 6C74.6569 6 76 4.65685 76 3C76 1.34315 74.6569 0 73 3.8147e-06C72.9984 3.81099e-06 72.9968 1.27538e-06 72.9952 3.81407e-06L43.5 0L37 6Z" fill="%23E60000"/></svg>') no-repeat center center/contain;
}
.top-card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 6;
  gap: 0;
  width: 288px;
  height: auto;
  -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
          box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  border: none;
  text-decoration: none;
  -webkit-transition: -webkit-box-shadow ease-in-out 0.4s;
  transition: -webkit-box-shadow ease-in-out 0.4s;
  transition: box-shadow ease-in-out 0.4s;
  transition: box-shadow ease-in-out 0.4s, -webkit-box-shadow ease-in-out 0.4s;
  position: relative;
}
.top-card__grid {
  display: grid;
  grid-auto-flow: column;
}
.top-card::before {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: 8px;
  z-index: -1;
  background-color: #fff;
}
.top-card:after {
  position: absolute;
  display: block;
  content: "";
  right: 16px;
  bottom: 20px;
  width: 32px;
  height: 32px;
  background-size: 32px 32px;
  background-repeat: repeat-x, no-repeat;
  background-position: left top, left top;
  background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="mask0_2694_20991" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"><rect width="32" height="32" fill="white"/></mask><g mask="url(%23mask0_2694_20991)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5957 15L17 13.6842L18.1489 12L23 16L18.1489 20L17 18.3158L18.5957 17H9V15H18.5957Z" fill="white"/></g></svg>'), url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="%230C0051"/></svg>');
  -webkit-transition: all ease-in-out 0.4s;
  transition: all ease-in-out 0.4s;
}
.top-card__image {
  overflow: hidden;
  border-radius: 8px 8px 0 0;
  border-bottom: 1px solid #E3E3E3;
}
.top-card__image img {
  -webkit-transition: all ease-in-out 0.4s;
  transition: all ease-in-out 0.4s;
}
.top-card__body {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  gap: 16px;
  overflow: hidden;
  padding: 24px 24px 56px;
  border-radius: 0 0 8px 8px;
  line-height: 1.4;
}
.top-card__text {
  grid-row: auto;
}
.top-card__text p:not([class]) {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-height: 1.4;
}
.top-card__category {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.2;
}
.top-card__category > dt::after {
  display: inline-block;
  content: "：";
}
.top-card__category > dt ~ dt {
  margin-top: 8px;
}
.top-card__category > dd {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.top-card__category > dd ~ dd {
  margin-top: 8px;
}
.top-card__tagWrap {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 6px;
  -webkit-text-fill-color: initial;
}
.top-card:not(:hover) {
  color: #000;
}

.is-hide {
  display: none;
}

.fixed-image {
  position: fixed;
  inset: 0;
  z-index: -1;
}

.mv-wrap {
  padding-top: 20px;
  padding-bottom: 22px;
}
.mv-slider {
  overflow: visible;
  margin-left: 16px;
  margin-right: 16px;
}
.mv-slider__item {
  height: 468px;
}
.mv-slider__item img {
  width: 100%;
}
.mv-slider__item.--item01 {
  display: grid;
  align-content: center;
}
.mv-slider__item.--item01 .l-wrapper {
  width: 100%;
}
.mv-title {
  color: #0C0051;
  font-size: 5.6rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.34;
}
.mv-btnWrap {
  margin-top: 40px;
}
.mv-btnWrap .c-btn {
  display: inline-grid;
  place-content: center;
  min-width: 100px;
  min-height: 46px;
}

#lottie01,
#lottie02 {
  position: absolute;
  top: 0;
  right: 0;
}

.service-wrap {
  margin: 0 16px 0;
}
.service-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}
.service-card {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 234px minmax(0, 1fr);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.service-card__image {
  position: relative;
}
.service-card__image img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
.service-card__text {
  padding: 32px 40px 40px;
}
.service-card__text p {
  line-height: 1.6;
}
.service-card__btn {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 32px;
}
.service-card__btn + .service-card__btn {
  margin-top: 8px;
}
.service-card__btn .c-btn {
  min-height: 40px;
  padding: 4px;
  line-height: 1.2;
}
.service-card__btn .c-btn.--default {
  min-width: 224px;
}
.service-card__btn .c-btn.--stroke {
  min-width: 147px;
}
.service-title {
  position: absolute;
  left: 0;
  bottom: -28px;
  padding: 20px 40px 0 40px;
  border-radius: 0 10px 0 0;
  background-color: #fff;
  color: #0C0051;
  font-size: 1.4rem;
  font-weight: 600;
}
.service-title::before {
  position: absolute;
  top: -10px;
  left: 0;
  display: block;
  content: "";
  width: 10px;
  height: 10px;
  background: url('data:image/svg+xml;utf8,<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 9.94507C9.67167 9.98137 9.33801 10 9 10C4.02944 10 0 5.97056 0 1C0 0.661991 0.0186333 0.328334 0.0549288 0H0V1V10H9H10V9.94507Z" fill="white"/></svg>') no-repeat left bottom/contain;
}
.service-title::after {
  position: absolute;
  top: 40px;
  right: -10px;
  display: block;
  content: "";
  width: 10px;
  height: 10px;
  background: url('data:image/svg+xml;utf8,<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 9.94507C9.67167 9.98137 9.33801 10 9 10C4.02944 10 0 5.97056 0 1C0 0.661991 0.0186333 0.328334 0.0549288 0H0V1V10H9H10V9.94507Z" fill="white"/></svg>') no-repeat left bottom/contain;
}
.service-title .en {
  display: block;
  padding-bottom: 10px;
  background: -webkit-gradient(linear, left top, right top, from(#0C0051), to(#E60000));
  background: linear-gradient(to right, #0C0051, #E60000);
  font-family: "Noto Sans", sans-serif;
  font-size: 3.4rem;
  font-weight: 700;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.service-bnr {
  margin: 80px auto 0;
}

.contact-wrap {
  margin-top: 90px;
  padding: 0;
}
.contact-inner {
  padding: 96px 44px;
  text-align: center;
}
.contact-title {
  margin-bottom: 12px;
  color: #0C0051;
  font-size: 1.4rem;
  font-weight: 600;
}
.contact-title .en {
  display: block;
  margin-bottom: 10px;
  font-family: "Noto Sans", sans-serif;
  font-size: 5rem;
  font-weight: 700;
}
.contact-btnWrap {
  margin-top: 26px;
}
.contact-btnWrap .c-btn {
  min-width: 194px;
}

.p-top {
  position: relative;
  z-index: 1;
  background-color: #E4F4FC;
}

.l-main {
  padding-bottom: 56px;
}

/* ▼hover挙動 */
@media (hover: hover) {
  .top-card:hover {
    background: none;
    background-clip: initial;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: initial;
    -webkit-box-shadow: 2px 0 24px rgba(0, 0, 0, 0.14);
            box-shadow: 2px 0 24px rgba(0, 0, 0, 0.14);
  }
  .top-card:hover .top-card__image img {
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  .top-card:hover .top-card__tag {
    background-clip: initial;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: initial;
  }
  .top-card:hover .top-card__text {
    background: -webkit-gradient(linear, left top, right top, color-stop(0, #0C0051), color-stop(26%, #900000), to(#E60000));
    background: linear-gradient(to right, #0C0051 0, #900000 26%, #E60000 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .top-card:hover .top-card__category {
    background: none;
    background-clip: initial;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: initial;
    color: #000;
  }
  .top-card:hover::after {
    background-position: 32px top, left top;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="mask0_2694_20991" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"><rect width="32" height="32" fill="white"/></mask><g mask="url(%23mask0_2694_20991)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5957 15L17 13.6842L18.1489 12L23 16L18.1489 20L17 18.3158L18.5957 17H9V15H18.5957Z" fill="white"/></g></svg>'), url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_2694_13385)"/><defs><linearGradient id="paint0_linear_2694_13385" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
  }
  .swiper-button-stop:hover::before {
    border-color: transparent;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_3137_75533)"/><defs><linearGradient id="paint0_linear_3137_75533" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
    color: #fff;
    -webkit-text-fill-color: initial;
  }
  .mv-slider__item a:not(.c-btn) {
    display: block;
    border-radius: 10px;
    background: #fff;
    -webkit-transition: -webkit-box-shadow ease-in-out 0.4s;
    transition: -webkit-box-shadow ease-in-out 0.4s;
    transition: box-shadow ease-in-out 0.4s;
    transition: box-shadow ease-in-out 0.4s, -webkit-box-shadow ease-in-out 0.4s;
  }
  .mv-slider__item a:not(.c-btn) img {
    -webkit-transition: opacity ease-in-out 0.4s;
    transition: opacity ease-in-out 0.4s;
  }
  .mv-slider__item a:not(.c-btn):hover {
    -webkit-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.14);
            box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.14);
  }
  .mv-slider__item a:not(.c-btn):hover img {
    opacity: 0.6;
  }
  .news-link:hover {
    background: none;
    background-clip: initial;
    -webkit-background-clip: initial;
    -webkit-text-fill-color: initial;
  }
  .news-link:hover::before {
    opacity: 0.06;
  }
  .news-link:hover::after {
    background-position: 32px top, left top;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="mask0_2694_20991" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"><rect width="32" height="32" fill="white"/></mask><g mask="url(%23mask0_2694_20991)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5957 15L17 13.6842L18.1489 12L23 16L18.1489 20L17 18.3158L18.5957 17H9V15H18.5957Z" fill="white"/></g></svg>'), url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_2694_13385)"/><defs><linearGradient id="paint0_linear_2694_13385" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
  }
  .c-link[class*="--circle"]:hover::before {
    border-color: transparent;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_3137_75533)"/><defs><linearGradient id="paint0_linear_3137_75533" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
    color: #fff;
    -webkit-text-fill-color: initial;
  }
  .c-link.--arrow:hover::before {
    background-position: 22px top, left top;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="mask0_2694_20991" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"><rect width="32" height="32" fill="white"/></mask><g mask="url(%23mask0_2694_20991)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5957 15L17 13.6842L18.1489 12L23 16L18.1489 20L17 18.3158L18.5957 17H9V15H18.5957Z" fill="white"/></g></svg>'), url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_2694_13385)"/><defs><linearGradient id="paint0_linear_2694_13385" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
  }
  .c-link.--fillarrow:hover::before {
    background-position: 22px top, left top;
    background-image: url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><mask id="mask0_2694_20991" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="32" height="32"><rect width="32" height="32" fill="white"/></mask><g mask="url(%23mask0_2694_20991)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.5957 15L17 13.6842L18.1489 12L23 16L18.1489 20L17 18.3158L18.5957 17H9V15H18.5957Z" fill="white"/></g></svg>'), url('data:image/svg+xml;utf8,<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="url(%23paint0_linear_2694_13385)"/><defs><linearGradient id="paint0_linear_2694_13385" x1="-1.97764e-09" y1="32.203" x2="32.2795" y2="32.203" gradientUnits="userSpaceOnUse"><stop stop-color="%230C0051"/><stop offset="1" stop-color="%23E60000"/></linearGradient></defs></svg>');
  }
}
/* ▼タブレット用デザインとして付け足すデザイン */
@media print, screen and (min-width: 768px) {
  .is-showsp {
    display: none;
  }
}
/* ▼モバイルのみ付け足すデザイン */
@media screen and (max-width: 767.98px) {
  .is-showpc {
    display: none;
  }
  .top-title {
    margin-bottom: 24px;
    font-size: 1.6rem;
  }
  .top-title .en {
    padding-bottom: 22px;
    font-size: 4.4rem;
  }
  .top-card {
    width: 264px;
  }
  .swiper-controller {
    justify-content: center;
    margin-top: 24px;
    padding-left: 8px;
    padding-right: 6px;
  }
  .mv-wrap {
    padding-bottom: 6px;
  }
  .mv-slider {
    margin-left: 24px;
  }
  .mv-slider__item {
    height: 486px;
  }
  .mv-slider__item.--item01 {
    align-content: start;
  }
  .mv-title {
    font-size: 3rem;
    letter-spacing: 0.03em;
    line-height: 1.5;
  }
  .mv-subtitle {
    margin-top: 16px;
    font-size: 1.4rem;
    font-weight: 600;
  }
  #lottie01,
  #lottie02 {
    position: absolute;
    top: 80px !important;
    right: auto;
    left: -85vw;
    width: 220vw;
  }
  .service-wrap {
    margin: 0 8px 0;
  }
  .service-inner {
    grid-template-columns: minmax(0, 1fr);
  }
  .service-card {
    grid-template-rows: auto auto;
  }
  .service-card__image img {
    height: 181px;
  }
  .service-card__text {
    padding: 28px 24px 40px;
  }
  .service-card__btn .c-btn {
    display: grid;
    place-content: center;
    min-height: 48px;
  }
  .service-card__btn .c-btn.--default {
    min-width: 0;
    width: 100%;
  }
  .service-card__btn .c-btn.--stroke {
    min-width: 0;
    width: calc(50% - 4px);
  }
  .service-title {
    left: 0;
    bottom: -31px;
    padding: 12px 28px 0 22px;
  }
  .service-title::after {
    top: 25px;
  }
  .service-title .en {
    padding-bottom: 14px;
    font-size: 3rem;
  }
  .contact-wrap {
    margin-top: 56px;
  }
  .contact-inner {
    grid-template-columns: minmax(0, 1fr);
    padding: 48px 20px;
  }
  .contact-inner p {
    line-height: 1.4;
  }
  .contact-col {
    padding: 48px 0;
  }
  .contact-col:nth-child(n+2) {
    border-left: 0;
    position: relative;
  }
  .contact-col:nth-child(n+2):before {
    position: absolute;
    display: block;
    content: "";
    inset: 0 20px auto;
    height: 1px;
    background-color: #BFBFBF;
  }
  .contact-title {
    margin-bottom: 16px;
  }
  .contact-title .en {
    font-size: 4.4rem;
  }
  .contact-btnWrap .c-btn {
    font-size: 1.4rem;
  }
}
@media screen and (max-width: 430.98px) {
  .top-card {
    width: 73.3333333333vw;
  }
}