@charset "UTF-8";
/* top以外 */
.card-b {
  position: relative;
  display: grid;
  gap: 1em;
  grid-template-columns: 8em 1fr;
  grid-template-rows: auto 1fr;
}
@media only screen and (min-width: 768px), print {
  .card-b {
    grid-template-columns: 12.5em 1fr 2em;
  }
}
.card-b:hover .card-b__img.-blur {
  top: 0.5em;
  left: 0.5em;
  width: 100%;
  opacity: 0.5;
}
.card-b:hover .card-b__img {
  grid-column: 1/2;
}
.card-b:hover .card-b__img img {
  position: relative;
  top: 1px;
  left: 1px;
}
.card-b:hover .card-b__ttl {
  text-decoration: underline;
}
.card-b:hover .more:after {
  transform: translateX(0.125em);
}
.card-b__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.card-b__grid2 {
  display: grid;
  gap: 0.5em;
  grid-template-columns: auto 1fr;
  align-items: center;
}
.card-b__grid2 .dates {
  grid-column: 1/2;
}
.card-b__img {
  grid-column: 1/2;
  grid-row: 1/3;
  position: relative;
}
.card-b__img img {
  width: 100%;
  aspect-ratio: 342/192;
  -o-object-fit: cover;
     object-fit: cover;
}
.card-b__img.-blur {
  transition: ease-in-out 0.3s;
  top: 0.75em;
  left: 0.75em;
  position: absolute;
  filter: blur(0.75em) saturate(200%);
  width: 7.25em;
  max-width: none;
  opacity: 0.8;
}
@media only screen and (min-width: 768px), print {
  .card-b__img.-blur {
    width: 12.75em;
  }
}
.card-b__ttl {
  font-weight: 600;
  line-height: 1.4;
  grid-column: 2/3;
}
.card-b__ex {
  font-size: 0.875em;
  line-height: 1.6;
  margin-bottom: -0.5em;
}

.card-c {
  position: relative;
}
@media only screen and (max-width: 767px) {
  .card-c {
    display: flex;
    flex-direction: column;
    gap: 1em;
  }
}
@media only screen and (min-width: 768px), print {
  .card-c {
    align-items: center;
    display: grid;
    grid-template-columns: 32.9375em 1fr;
    grid-column: auto auto 1fr;
    gap: 1em 5em;
  }
  .card-c:nth-of-type(even) {
    grid-template-columns: 1fr 32.9375em;
  }
  .card-c:nth-of-type(even) .card-c__img {
    grid-column: 2/3;
  }
  .card-c:nth-of-type(even) .card-c__ttls {
    grid-column: 1/2;
  }
}
@media only screen and (min-width: 768px), print {
  .card-c:hover .card-c__img.-blur {
    top: 0.5em;
    left: 0.5em;
    width: 100%;
    opacity: 0.5;
  }
  .card-c:hover .card-c__img img {
    position: relative;
    top: 1px;
    left: 1px;
  }
  .card-c:hover .card-c__ttls,
  .card-c:hover .card-c__ex {
    opacity: 0.85;
  }
  .card-c:hover .more:after {
    transform: translateX(0.125em);
  }
}
.card-c__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.card-c__ttls {
  grid-column: 2/3;
  grid-row: 1/2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.card-c__en {
  background: linear-gradient(90deg, var(--blue1, #122a88) 0%, var(--blue2, #5fa9dd) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  font-style: normal;
  line-height: 100%; /* 2rem */
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 1.25em;
}
@media only screen and (min-width: 768px), print {
  .card-c__en {
    font-size: 2em;
  }
}
@media only screen and (max-width: 767px) {
  .card-c__imgwrap {
    display: block;
    margin: 0 auto;
    width: min(80%, 400px);
  }
}
.card-c__img {
  position: relative;
  grid-column: 1/2;
  grid-row: 1/4;
}
.card-c__img img {
  width: 100%;
  aspect-ratio: 342/192;
  -o-object-fit: cover;
     object-fit: cover;
}
@media only screen and (min-width: 768px), print {
  .card-c__img img {
    width: 32.9375em;
  }
}
.card-c__img.-blur {
  transition: ease-in-out 0.3s;
  top: 0.75em;
  left: 0.75em;
  position: absolute;
  filter: blur(0.75em) saturate(200%);
  width: calc(100% + 0.25em);
  max-width: none;
  opacity: 0.8;
}
@media only screen and (max-width: 767px) {
  .card-c__img.-blur {
    top: 0.25em;
    left: 0.25em;
  }
}
.card-c__ttl {
  font-weight: 600;
  line-height: 1;
  margin-top: 0.5em;
  font-size: 1.125em;
}
@media only screen and (min-width: 768px), print {
  .card-c__ttl {
    font-size: 1.25em;
  }
}
@media only screen and (min-width: 768px), print {
  .card-c__ex {
    line-height: 2;
  }
}
.card-c__wrap {
  display: flex;
  flex-direction: column;
  gap: 5em;
}

.p-contact {
  padding: 3em 0;
  display: flex;
  flex-direction: column;
  gap: 3em;
}
.p-contact label {
  display: grid;
}
@media only screen and (min-width: 768px), print {
  .p-contact label {
    gap: 1.5em;
    grid-template-columns: 1fr 38.75em;
  }
}
@media only screen and (max-width: 767px) {
  .p-contact label {
    gap: 0.5em;
  }
}
.p-contact label.-txtarea {
  align-items: flex-start;
}
@media only screen and (min-width: 768px), print {
  .p-contact__policy {
    text-align: center;
  }
}
.p-contact__policy a {
  text-decoration: underline;
  color: #f96c85;
  font-weight: 600;
}
.p-contact__txt {
  line-height: 1.5;
  font-weight: 600;
}
@media only screen and (min-width: 768px), print {
  .p-contact__txt {
    text-align: right;
    padding-top: 1em;
  }
}
.p-contact input[type=text],
.p-contact input[type=email],
.p-contact textarea {
  font-weight: normal;
  border-radius: 0.25em;
  padding: 1.25em;
  width: 100%;
  border: 1px solid #f96c85;
  outline: none;
}
@media only screen and (max-width: 767px) {
  .p-contact input[type=text],
  .p-contact input[type=email],
  .p-contact textarea {
    font-size: 16px;
  }
}
.p-contact input[type=text]:focus,
.p-contact input[type=email]:focus,
.p-contact textarea:focus {
  border: 1px solid #f96c85;
  outline: none;
}
.p-contact__submit {
  display: flex;
  justify-content: center;
}
.p-contact__submit > p {
  transition: 0.2s;
}
.p-contact__submit > p:after {
  position: absolute;
  top: 1.5em;
  right: 1em;
  transition: 0.1s;
  content: "";
  width: 1em;
  height: 1em;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2215%22%20height%3D%2217%22%20viewBox%3D%220%200%2015%2017%22%20fill%3D%22none%22%3E%20%3Cpath%20d%3D%22M7.107%200.957336L5.85715%202.20718L11.6159%207.96623H0V9.73376H11.6159L5.85715%2015.4928L7.107%2016.7427L15%208.85L7.107%200.957336Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E") 50%/100% auto no-repeat;
}
.p-contact__submit > p:hover {
  transform: translateX(0.125em);
}
.p-contact__submit > p:hover .wpcf7-submit {
  box-shadow: none;
}
.p-contact .wpcf7-submit {
  background: linear-gradient(93deg, #5fa9dd 3.75%, #122a88 97.55%);
  color: #fff;
  text-decoration: none;
  line-height: 1;
  display: inline-block;
  font-size: 0.9375em;
  display: flex;
  justify-content: space-between;
  border-radius: 3em;
  padding: 1.75em 1.5em;
  font-weight: 600;
  max-width: 20em;
  width: 20em;
  box-shadow: 0 0.5em 1em 0 rgba(18, 42, 136, 0.16);
  transition: 0.2s;
  border: none;
}
.p-contact .wpcf7-spinner {
  display: none !important;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  border-color: rgba(51, 51, 51, 0) !important;
  color: #d22832;
  background: rgba(210, 40, 50, 0.1);
  padding: 1em 2em;
  font-weight: 600 !important;
  text-align: center;
}

.wpcf7-not-valid-tip {
  font-size: 0.875em !important;
  background: rgba(210, 40, 50, 0.1);
  padding: 1em 2em;
  font-weight: 600 !important;
}

::-moz-placeholder {
  color: #999;
}

::placeholder {
  color: #999;
}

/* 旧Edge対応 */
::-ms-input-placeholder {
  color: #999;
}

/* IE対応 */
:-ms-input-placeholder {
  color: #999;
}

.pagination {
  padding-top: 3em;
  display: grid;
  grid-template-columns: 2em 1fr 2em;
  font-size: 1.25em;
}
@media only screen and (min-width: 768px), print {
  .pagination {
    font-size: 1.5em;
    padding-top: 5em;
  }
}
.pagination a {
  transition: opacity 0.2s;
}
.pagination a:hover {
  opacity: 0.85;
}
.pagination > .page-numbers {
  display: flex;
  justify-content: center;
  gap: 0.5em;
  grid-column: 2/3;
  flex-wrap: wrap;
}
.pagination > .page-numbers > li > .page-numbers {
  display: block;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #f96c85;
  text-decoration: none;
}
.pagination > .page-numbers > li > .page-numbers.current {
  color: gray;
}

.r-side {
  display: flex;
  flex-direction: column;
  gap: 6em;
}
.r-side__h2 {
  font-size: 1.125em;
  margin-bottom: 1.25em;
}
.r-side__cont {
  display: flex;
  flex-direction: column;
  gap: 1.75em;
  margin-bottom: 2em;
}
@media only screen and (min-width: 768px), print {
  .r-side__cont {
    margin-bottom: 4em;
  }
}

.s-cta {
  padding-top: 3em;
}
@media only screen and (min-width: 1169px), print {
  .s-cta {
    padding-top: 5em;
  }
}
.s-cta__grid {
  display: flex;
  gap: 1.5em;
}
@media only screen and (min-width: 1169px), print {
  .s-cta__grid {
    justify-content: space-between;
  }
}
@media only screen and (max-width: 1169px) {
  .s-cta__grid {
    flex-direction: column;
  }
}
.s-cta__btn .btn-a {
  min-width: 19em;
}
@media only screen and (max-width: 1169px) {
  .s-cta__btn {
    display: flex;
    justify-content: center;
  }
}

.s-faq__dl {
  line-height: 1.6;
  border-bottom: 1px solid rgba(18, 42, 136, 0.2);
}
.s-faq__dl dt,
.s-faq__dl dd {
  position: relative;
}
.s-faq__dl dt:before,
.s-faq__dl dd:before {
  position: absolute;
  top: 1.5em;
  left: 0;
  font-weight: 700;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  content: "Q.";
  font-size: 1.25em;
  color: #f96c85;
}
.s-faq__dl dt {
  font-size: 1.125em;
  font-weight: 600;
  padding: 2em;
}
.s-faq__dl dt:after {
  position: absolute;
  right: 0;
  top: 2em;
  content: "";
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%2224%22%20width%3D%2224%22%20height%3D%2224%22%20rx%3D%2212%22%20transform%3D%22rotate(90%2024%200)%22%20fill%3D%22%23122A88%22%2F%3E%3Cpath%20d%3D%22M18.3145%2011.6856L17.3146%2010.6857L12.7073%2015.2927V6H11.2933V15.2927L6.68608%2010.6857L5.6862%2011.6856L12.0003%2018L18.3145%2011.6856Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E") 50%/100% auto no-repeat;
  width: 1.5em;
  height: 1.5em;
  transition: 0.2s;
}
.s-faq__dl dt.-active:after {
  transform: rotate(180deg);
}
.s-faq__dl dd {
  display: none;
  padding: 0em 2em 1em;
}
@media only screen and (min-width: 768px), print {
  .s-faq__dl dd {
    line-height: 2;
  }
}
.s-faq__dl dd:before {
  top: 0em;
  color: #5fa9dd;
  content: "A.";
}
.s-faq__dl dd a {
  transition: opacity 0.2s;
}
.s-faq__dl dd a:hover {
  opacity: 0.85;
}

@media only screen and (min-width: 1169px), print {
  .s-features__grid {
    display: grid;
    grid-template-columns: 1fr 28.67188em;
    grid-template-rows: auto 1fr;
    gap: 0em 5em;
  }
}
@media only screen and (min-width: 1169px), print {
  .s-features .service__ttls {
    grid-column: 1/2;
  }
}
@media only screen and (min-width: 1169px), print {
  .s-features__img {
    grid-column: 2/3;
    grid-row: 1/3;
  }
}
@media only screen and (max-width: 1169px) {
  .s-features__img {
    margin-bottom: 1em;
  }
}

.s-flow__wrap {
  display: flex;
  flex-direction: column;
  gap: 2em;
}
.s-flow__grid {
  border: 1px solid rgba(18, 42, 136, 0.1);
  line-height: 150%;
}
@media only screen and (max-width: 767px) {
  .s-flow__grid {
    gap: 1em;
    padding: 1em;
    display: flex;
    flex-direction: column;
  }
}
@media only screen and (min-width: 768px), print {
  .s-flow__grid {
    display: grid;
    padding: 2em;
    align-items: center;
    grid-template-columns: auto 15em 1fr;
    gap: 1.75em;
    grid-template-rows: 1fr;
  }
}
@media only screen and (max-width: 767px) {
  .s-flow__img {
    width: 4em;
    display: block;
    margin: 0 auto;
  }
}
@media only screen and (min-width: 768px), print {
  .s-flow__img {
    grid-column: 1/2;
    grid-row: 1/2;
  }
}
@media only screen and (min-width: 768px), print {
  .s-flow__txt {
    grid-column: 3/4;
    grid-row: 1/2;
    line-height: 2;
    font-size: 15px;
    font-size: 0.9375em;
  }
}
.s-flow__txt a {
  transition: opacity 0.2s;
}
.s-flow__txt a:hover {
  opacity: 0.85;
}
.s-flow__ttl {
  display: flex;
  align-items: center;
}
@media only screen and (max-width: 767px) {
  .s-flow__ttl {
    justify-content: space-between;
    flex-direction: row-reverse;
  }
}
@media only screen and (min-width: 768px), print {
  .s-flow__ttl {
    grid-column: 2/3;
    grid-row: 1/2;
    gap: 1em;
  }
}
.s-flow__ttl .-no {
  font-weight: 700;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  color: #5fa9dd;
}
.s-flow__ttl .-h3 {
  font-size: 1.125em;
  font-weight: 600;
}

.s-price__price {
  font-weight: 600;
  font-size: 1.5em;
  margin-bottom: 1em;
  flex-basis: 40%;
}
@media only screen and (min-width: 768px), print {
  .s-price__txt {
    flex-basis: 60%;
  }
}
@media only screen and (min-width: 768px), print {
  .s-price__grid {
    display: flex;
    gap: 2em;
  }
}

.s-slide {
  padding-bottom: 5em !important;
}
@media only screen and (min-width: 1169px), print {
  .s-slide__container {
    width: calc(100vw - 9.13em - 6.56em);
  }
}
@media only screen and (max-width: 1169px) {
  .s-slide__container {
    width: 100%;
    padding-left: 16rem;
  }
}
.s-slide__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.s-slide__article {
  position: relative !important;
  display: grid !important;
  gap: 1em;
  grid-row: span 3 !important;
}
@media only screen and (min-width: 768px), print {
  .s-slide__article:hover .s-slide__img.-blur {
    top: 0.5em;
    left: 0.5em;
    width: 100%;
    opacity: 0.5;
  }
  .s-slide__article:hover .s-slide__img img {
    position: relative;
    top: 1px;
    left: 1px;
  }
  .s-slide__article:hover .s-slide__ttl {
    text-decoration: underline;
  }
  .s-slide__article:hover .more:after {
    transform: translateX(0.125em);
  }
}
.s-slide__img {
  position: relative;
}
.s-slide__img img {
  width: 100%;
  aspect-ratio: 342/192;
  -o-object-fit: cover;
     object-fit: cover;
}
.s-slide__img.-blur {
  transition: ease-in-out 0.3s;
  position: absolute;
  filter: blur(0.75em) saturate(200%);
  width: calc(100% + 0.25em);
  max-width: none;
  opacity: 0.8;
  top: 0.25em;
  left: 0.25em;
}
@media only screen and (min-width: 768px), print {
  .s-slide__img.-blur {
    top: 0.75em;
    left: 0.75em;
  }
}
.s-slide__ttl {
  text-decoration: none;
  color: #333333;
  font-weight: 600;
  line-height: 140%; /* 1.4rem */
  letter-spacing: 0.02em;
}
.s-slide .swiper-button {
  position: absolute !important;
  bottom: 0;
  top: auto;
  font-size: 0.75em !important;
  width: 3em;
  height: 3em;
}
@media only screen and (min-width: 768px), print {
  .s-slide .swiper-button {
    font-size: 1em !important;
  }
}
.s-slide .swiper-button:after {
  width: 3em;
  height: 3em;
  content: "";
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2248%22%20height%3D%2248%22%20viewBox%3D%220%200%2048%2048%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20x%3D%220.5%22%20y%3D%220.5%22%20width%3D%2247%22%20height%3D%2247%22%20rx%3D%2223.5%22%20fill%3D%22white%22%2F%3E%3Crect%20x%3D%220.5%22%20y%3D%220.5%22%20width%3D%2247%22%20height%3D%2247%22%20rx%3D%2223.5%22%20stroke%3D%22%23122A88%22%2F%3E%3Cpath%20d%3D%22M23.5016%2014L21.9181%2015.5836L29.2144%2022.8803H14.4971V25.1197H29.2144L21.9181%2032.4164L23.5016%2034L33.5021%2024L23.5016%2014Z%22%20fill%3D%22%23122A88%22%2F%3E%3C%2Fsvg%3E") 50%/100% auto no-repeat;
}
.s-slide .swiper-button.-next {
  right: 16rem;
}
@media only screen and (min-width: 1169px), print {
  .s-slide .swiper-button.-next {
    left: clamp(902px, 66.2251655629vw, 1122px);
  }
}
.s-slide .swiper-button.-prev {
  transform: rotate(180deg);
  right: calc(16rem + 4em);
  left: auto;
}
@media only screen and (min-width: 1169px), print {
  .s-slide .swiper-button.-prev {
    left: clamp(838px, 61.7283950617vw, 1058px);
  }
}

.swiper {
  padding-right: 5em !important; /* 好みで */
}

.s-sns {
  background: rgba(18, 42, 136, 0.08);
  padding: 1em;
  margin: 2.5em 0;
}
.s-sns__grid {
  display: flex;
  align-items: center;
  gap: 1em;
}
@media only screen and (max-width: 767px) {
  .s-sns__grid {
    justify-content: center;
  }
}
.s-sns__ttl {
  font-size: 0.875em;
  font-weight: 600;
}
.s-sns__link {
  display: flex;
  align-items: center;
  transition: 0.2s;
}
.s-sns__link:hover {
  transform: translate(1px, 1px);
}

.service__content {
  display: flex;
  flex-direction: column;
  gap: 5em;
}
@media only screen and (min-width: 1169px), print {
  .service__content {
    gap: 6.35em;
  }
}
.service__en {
  font-weight: 700;
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  font-size: 2em;
  line-height: 100%; /* 2rem */
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: linear-gradient(90deg, var(--blue1, #122a88) 0%, var(--blue2, #5fa9dd) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 0.125em;
  display: inline-block;
}
.service__ttls {
  margin-bottom: 2em;
}
.service__h2 {
  font-size: 1.25em;
  font-style: normal;
  font-weight: 700;
  line-height: 100%; /* 1.25rem */
}

.side-a {
  position: relative;
  display: flex;
  gap: 0.5em;
  flex-direction: column;
}
.side-a:hover .side-a__ttl {
  text-decoration: underline;
}
.side-a__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.side-a__grid2 {
  display: flex;
  gap: 0.5em;
  flex-wrap: wrap;
  align-items: center;
}
.side-a__ttl {
  transition: 0.2s;
  font-weight: 600;
  line-height: 1.4;
  font-size: 0.875em;
}
.side-a__ex {
  font-size: 0.875em;
  line-height: 1.6;
  margin-bottom: -0.5em;
}

.side-b {
  position: relative;
  display: flex;
  gap: 0.5em;
  flex-direction: column;
}
@media only screen and (min-width: 768px), print {
  .side-b:hover .side-b__img.-blur {
    top: 0.5em;
    left: 0.5em;
    width: 100%;
    opacity: 0.5;
    width: 7.5em;
  }
  .side-b:hover .side-b__img img {
    position: relative;
    top: 1px;
    left: 1px;
  }
  .side-b:hover .side-b__ttl {
    text-decoration: underline;
  }
}
.side-b__link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.side-b__grid2 {
  display: flex;
  gap: 0.5em;
  flex-wrap: wrap;
  align-items: center;
}
.side-b__ttl {
  transition: 0.2s;
  font-weight: 600;
  line-height: 1.4;
  font-size: 0.85em;
}
.side-b__grid {
  position: relative;
  display: grid;
  grid-template-columns: 7.5em 1fr;
  gap: 1em;
}
.side-b__img {
  position: relative;
}
.side-b__img img {
  width: 100%;
  aspect-ratio: 342/192;
  -o-object-fit: cover;
     object-fit: cover;
}
.side-b__img.-blur {
  transition: ease-in-out 0.3s;
  top: 0.25em;
  left: 0.25em;
  position: absolute;
  filter: blur(0.75em) saturate(200%);
  width: calc(100% + 0.25em);
  max-width: none;
  opacity: 0.8;
}
@media only screen and (min-width: 768px), print {
  .side-b__img.-blur {
    top: 0.45em;
    left: 0.45em;
  }
}
.side-b .-blur {
  width: 7.75em;
}