@charset "UTF-8";

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%
}

body {
  margin: 0
}

main {
  display: block
}

h1 {
  font-size: 2em;
  margin: .67em 0
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible
}

pre {
  font-family: monospace, monospace;
  font-size: 1em
}

a {
  background-color: transparent
}

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted
}

b, strong {
  font-weight: bolder
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em
}

small {
  font-size: 80%
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}

sub {
  bottom: -.25em
}

sup {
  top: -.5em
}

img {
  border-style: none
}

button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0
}

button, input {
  overflow: visible
}

button, select {
  text-transform: none
}

button, [type=button], [type=reset], [type=submit] {
  -webkit-appearance: button
}

button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0
}

button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText
}

fieldset {
  padding: .35em .75em .625em
}

legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal
}

progress {
  vertical-align: baseline
}

textarea {
  overflow: auto
}

[type=checkbox], [type=radio] {
  box-sizing: border-box;
  padding: 0
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}

details {
  display: block
}

summary {
  display: list-item
}

template {
  display: none
}

[hidden] {
  display: none
}

*, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

html {
  font-size: 62.5%
}

body {
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif, sans-serif;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .03em;
  color: #000;
  background-color: #E6F4FD;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%
}

@media screen and (max-width:960px) {
  body {
    font-size: 1.5rem
  }
}

@media screen and (max-width:767px) {
  body {
    font-size: 1.4rem
  }
}

@media screen and (max-width:365px) {
  body {
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt"
  }
}

body[data-modal=show], body[data-menu=show] {
  overflow: hidden
}

body a {
  text-decoration: underline;
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
  text-underline-position: under;
  color: #000
}

body br[data-view=sp] {
  display: none
}

@media screen and (max-width:767px) {
  body br[data-view=sp] {
    display: block
  }
}

body br[data-view=tl] {
  display: none
}

@media screen and (max-width:960px) {
  body br[data-view=tl] {
    display: block
  }
}

@media screen and (max-width:767px) {
  body br[data-view=tl] {
    display: none
  }
}

@media screen and (max-width:767px) {
  body br[data-view=pc] {
    display: none
  }
}

body ul, body ol {
  list-style: none
}

body img {
  max-width: 100%;
  height: auto;
  vertical-align: middle
}

body em {
  font-style: normal
}

body input, body button, body textarea, body select {
  font-size: inherit;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  color: inherit;
  background: 0 0;
  border: none;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  -o-appearance: none;
  appearance: none
}

body input[type=submit], body button {
  cursor: pointer
}

body main {
  overflow: hidden
}

body .js-horizontal {
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition: -webkit-clip-path 1s .1s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path 1s .1s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path 1s .1s cubic-bezier(.37, 0, .63, 1), -webkit-clip-path 1s .1s cubic-bezier(.37, 0, .63, 1);
  transition-property: -webkit-clip-path;
  transition-property: clip-path;
  transition-property: clip-path, -webkit-clip-path
}

body .js-horizontal[data-view=true] {
  -webkit-clip-path: inset(0);
  clip-path: inset(0)
}

body .js-fade {
  opacity: 0;
  transition: opacity .6s .5s, -webkit-transform .6s .5s;
  transition: opacity .6s .5s, transform .6s .5s;
  transition: opacity .6s .5s, transform .6s .5s, -webkit-transform .6s .5s
}

body .js-fade[data-view=true] {
  opacity: 1
}

.c-about-link {
  margin: 105px 0 0;
  padding: 80px 30px 88px;
  text-align: center;
  color: #fff;
  background-color: #2A92B7;
}

@media screen and (max-width:960px) {
  .c-about-link {
    margin: 80px 0 0
  }
}

@media screen and (max-width:767px) {
  .c-about-link {
    margin: 50px 0 0;
    padding: 38px 35px 50px
  }
}

@media screen and (max-width:365px) {
  .c-about-link {
    padding: 38px 25px 50px
  }
}

.c-about-link__heading {
  overflow: hidden
}

.c-about-link__heading span {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  line-height: 1.7;
  letter-spacing: .07em
}

@media screen and (max-width:767px) {
  .c-about-link__heading span {
    font-size: 1.3rem
  }
}

.c-about-link__heading h2 {
  font-size: 4rem;
  letter-spacing: 0;
  opacity: 0;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  transition: all .5s .4s ease-out
}

@media screen and (max-width:960px) {
  .c-about-link__heading h2 {
    font-size: 3rem
  }
}

@media screen and (max-width:767px) {
  .c-about-link__heading h2 {
    font-size: 2.2rem
  }
}

.c-about-link__heading h2[data-view=true] {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0)
}

.c-about-link__image {
  display: flex;
  justify-content: center;
  align-items: center;
  --image-size: 427px;
  width: var(--image-size);
  height: var(--image-size);
  margin: 43px auto 0;
  background-color: #fff;
  border-radius: 50%
}

@media screen and (max-width:960px) {
  .c-about-link__image {
    --image-size: 280px
  }
}

@media screen and (max-width:767px) {
  .c-about-link__image {
    --image-size: 240px;
    margin: 27px auto 0
  }
}

@media screen and (max-width:365px) {
  .c-about-link__image {
    --image-size: 210px
  }
}

.c-about-link__image img {
  margin-bottom: 10px
}

@media screen and (max-width:960px) {
  .c-about-link__image img {
    width: 200px;
    height: auto
  }
}

@media screen and (max-width:767px) {
  .c-about-link__image img {
    width: 161px
  }
}

.c-about-link__wrap {
  display: flex;
  justify-content: center;
  margin-top: 55px
}

@media screen and (max-width:767px) {
  .c-about-link__wrap {
    display: block;
    margin-top: 35px
  }
}

.c-about-link__text {
  max-width: 350px
}

@media screen and (max-width:960px) {
  .c-about-link__text {
    margin: 0 auto
  }
}

.c-about-link__text h3 {
  font-size: 2.4rem;
  line-height: 1.6
}

@media screen and (max-width:960px) {
  .c-about-link__text h3 {
    font-size: 2rem
  }
}

@media screen and (max-width:767px) {
  .c-about-link__text h3 {
    font-size: 1.6rem;
    text-align: left
  }
}

.c-about-link__text p {
  margin-top: 20px;
  line-height: 2;
  text-align: left
}

@media screen and (max-width:960px) {
  .c-about-link__text p {
    font-size: 1.4rem
  }
}

@media screen and (max-width:767px) {
  .c-about-link__text p {
    margin-top: 15px;
    font-size: 1.3rem;
    line-height: 1.9
  }
}

.c-about-link__text+.c-about-link__text {
  margin-left: 84px
}

@media screen and (max-width:960px) {
  .c-about-link__text+.c-about-link__text {
    margin-left: 60px
  }
}

@media screen and (max-width:767px) {
  .c-about-link__text+.c-about-link__text {
    margin: 30px auto 0
  }
}

.c-about-link .c-button__large {
  margin-top: 59px
}

@media screen and (max-width:767px) {
  .c-about-link .c-button__large {
    margin-top: 35px
  }
}

.c-about-link .c-button__large a {
  margin: 0 auto
}

:is(.c-button, .c-button__border, .c-button__mini, .c-button__large) a {
  display: block;
  line-height: 1.5;
  text-align: center;
  text-decoration: none
}

.c-button a {
  position: relative;
  z-index: 0;
  width: 330px;
  padding: 23px 30px 28px;
  font-size: 1.8rem;
  color: #000;
  background-color: #fff;
  transition: background-color .5s
}

.c-button a:hover {
  background-color: #f1c012
}

@media screen and (max-width:960px) {
  .c-button a {
    width: 300px;
    padding: 20px 30px 25px;
    font-size: 1.7rem
  }
}

@media screen and (max-width:767px) {
  .c-button a {
    width: 100%;
    max-width: 300px;
    padding: 14px 30px 18px;
    font-size: 1.2rem
  }
  .c-button a:before, .c-button a:after {
    display: none
  }
}

.c-button[data-color=dark] a {
  color: #fff;
  background-color: #000;
  transition: background-color .5s, color .3s
}

.c-button[data-color=dark] a:hover {
  background-color: #f1c012;
  color: #000
}

@media screen and (max-width:767px) {
  .c-button[data-color=dark] a:hover {
    color: #fff
  }
}

.c-button__border a {
  position: relative;
  width: 100%;
  max-width: 360px;
  padding: 23px 30px 28px;
  font-size: 1.8rem;
  color: #000;
  border: 2px solid #000;
  transition: background-color .8s
}

.c-button__border a:hover {
  background-color: #f1c012
}

@media screen and (max-width:960px) {
  .c-button__border a {
    padding: 18px 25px 23px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .c-button__border a {
    padding: 6px 20px 9px;
    font-size: 1.4rem
  }
  .c-button__border a:before, .c-button__border a:after {
    display: none
  }
}

.c-button__mini a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 180px;
  padding: 15px 30px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 1.5rem;
  color: #000;
  border: 2px solid #000;
  transition: background-color .8s
}

.c-button__mini a:hover {
  background-color: #E85382;
  color: #FFF;
}

@media screen and (max-width:960px) {
  .c-button__mini a {
    width: 160px;
    padding: 12px 20px
  }
}

@media screen and (max-width:767px) {
  .c-button__mini a {
    width: 100%;
    max-width: 300px;
    padding: 6px 20px 7px;
    border: 1px solid #000
  }
  .c-button__mini a:before, .c-button__mini a:after {
    display: none
  }
}

.c-button__mini a img {
  margin-right: 10px
}

@media screen and (max-width:767px) {
  .c-button__mini a img {
    width: 24px;
    height: auto
  }
}

.c-button__input {
  text-align: center
}

.c-button__input input {
  width: 400px;
  padding: 32px 28px 37px;
  font-size: 1.8rem;
  font-weight: 500;
  color: #fff;
  background-color: #E85382;
  border: 2px solid #000;
  transition: all .4s
}

@media screen and (max-width:960px) {
  .c-button__input input {
    width: 300px;
    padding: 27px 28px 32px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .c-button__input input {
    width: 100%;
    max-width: 330px;
    padding: 23px 19px 28px;
    font-size: 1.4rem;
    border: 1px solid #000
  }
}

.c-button__input input:hover {
  color: #000;
  background-color: #fff
}

.c-button__large a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  width: 390px;
  padding: 24px 30px 29px;
  font-size: 1.8rem;
  color: #000;
  background-color: #fff;
  transition: background-color .5s
}
.c-button__large a img {
  margin-right: 10px;
}
.c-button__large a:hover {
  background-color: #E85382;
  color: #FFF;
}

@media screen and (max-width:960px) {
  .c-button__large a {
    width: 330px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .c-button__large a {
    width: 100%;
    max-width: 390px;
    padding: 13px 20px 16px;
    font-size: 1.4rem
  }
  .c-button__large a:before, .c-button__large a:after {
    display: none
  }
}

.c-contact-link {
  position: relative;
  margin-top: 250px;
  padding: 104px 0 130px;
  color: #fff;
  background-color: #000
}

@media screen and (max-width:960px) {
  .c-contact-link {
    padding: 80px 0 100px
  }
}

@media screen and (max-width:767px) {
  .c-contact-link {
    margin-top: 145px;
    padding: 55px 0 60px
  }
}

.c-contact-link:before {
  content: "";
  position: absolute;
  right: 242px;
  --contact-link-image-width: 203px;
  --contact-link-image-height: 234px;
  width: var(--contact-link-image-width);
  height: var(--contact-link-image-height);
  display: block;
  background-image: url(../images/about-man.svg);
  background-repeat: no-repeat;
  background-size: var(--contact-link-image-width) var(--contact-link-image-height);
  z-index: -1;
  top: -35px
}

@media screen and (max-width:960px) {
  .c-contact-link:before {
    right: 45px;
    --contact-link-image-width: 180px;
    --contact-link-image-height: 207px
  }
}

@media screen and (max-width:767px) {
  .c-contact-link:before {
    right: 30px;
    --contact-link-image-width: 115px;
    --contact-link-image-height: 132px
  }
}

.c-contact-link[data-view=true]:before {
  z-index: 0;
  top: -219px;
  transition: z-index .8s .8s ease-out, top .5s .6s ease-in-out
}

@media screen and (max-width:960px) {
  .c-contact-link[data-view=true]:before {
    top: -194px
  }
}

@media screen and (max-width:767px) {
  .c-contact-link[data-view=true]:before {
    top: -123px
  }
}

.c-contact-link__inner {
  width: 100%;
  max-width: 785px;
  margin: 0 auto;
  padding: 0 30px
}

@media screen and (max-width:960px) {
  .c-contact-link__inner {
    padding: 0 45px
  }
}

@media screen and (max-width:365px) {
  .c-contact-link__inner {
    padding: 0 30px
  }
}

.c-contact-link__heading {
  display: flex;
  align-items: flex-end
}

@media screen and (max-width:767px) {
  .c-contact-link__heading {
    display: block
  }
}

.c-contact-link__heading span {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 9.2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .04em
}

@media screen and (max-width:960px) {
  .c-contact-link__heading span {
    font-size: 7rem
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__heading span {
    font-size: 14.5vw;
    letter-spacing: 0
  }
}

.c-contact-link__heading h2 {
  margin-left: 22px;
  margin-bottom: 15px;
  font-size: 1.6rem
}

@media screen and (max-width:767px) {
  .c-contact-link__heading h2 {
    margin: 2px 0 0
  }
}

@media screen and (max-width:767px) {
  .c-modal .c-contact-link__heading span {
    font-size: 11.5vw
  }
}

.c-contact-link__content {
  display: flex;
  align-items: flex-end;
  margin-top: 50px
}

@media screen and (max-width:767px) {
  .c-contact-link__content {
    display: block
  }
}

.c-contact-link__list {
  margin-right: 70px
}

@media screen and (max-width:767px) {
  .c-contact-link__list {
    margin-right: 0
  }
}

.c-contact-link__list li+li {
  margin-top: 30px
}

@media screen and (max-width:960px) {
  .c-contact-link__list li+li {
    margin-top: 30px
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__list li+li {
    margin-top: 25px
  }
}

.c-contact-link__list li a {
  display: flex;
  align-items: center;
  text-decoration: none
}

.c-contact-link__list li a:hover img {
  -webkit-animation-name: wobble-vertical;
  animation-name: wobble-vertical;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1
}

.c-contact-link__list li a img {
  margin-right: 45px;
  transition: -webkit-transform .3s;
  transition: transform .3s;
  transition: transform .3s, -webkit-transform .3s
}

@media screen and (max-width:960px) {
  .c-contact-link__list li a img {
    width: auto;
    height: 40px;
    margin-right: 38px
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a img {
    width: 33px;
    margin-right: 50px
  }
}

.c-contact-link__list li a span {
  position: relative;
  font-size: 1.5rem;
  color: #fff
}

@media screen and (max-width:960px) {
  .c-contact-link__list li a span {
    font-size: 1.4rem
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a span {
    font-size: 1.3rem
  }
}

.c-contact-link__list li a span:before {
  content: "";
  position: absolute;
  left: -25px;
  top: 10px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg)
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a span:before {
    top: 8px;
    left: -30px
  }
}

.c-contact-link__list li a[data-link=tel] span {
  display: block;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 2rem
}

@media screen and (max-width:960px) {
  .c-contact-link__list li a[data-link=tel] span {
    font-size: 1.8rem
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a[data-link=tel] span {
    font-size: 1.6rem
  }
}

.c-contact-link__list li a[data-link=tel] span:before {
  top: 25px
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a[data-link=tel] span:before {
    top: 23px
  }
}

.c-contact-link__list li a[data-link=tel] small {
  display: block;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 1.4rem
}

@media screen and (max-width:960px) {
  .c-contact-link__list li a[data-link=tel] small {
    font-size: 1.3rem
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__list li a[data-link=tel] small {
    font-size: 1.2rem
  }
}

@-webkit-keyframes wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px)
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px)
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px)
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px)
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px)
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0)
  }
}

@keyframes wobble-vertical {
  16.65% {
    -webkit-transform: translateY(8px);
    transform: translateY(8px)
  }
  33.3% {
    -webkit-transform: translateY(-6px);
    transform: translateY(-6px)
  }
  49.95% {
    -webkit-transform: translateY(4px);
    transform: translateY(4px)
  }
  66.6% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px)
  }
  83.25% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px)
  }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0)
  }
}

.c-contact-link__text {
  font-size: 1.8rem;
  line-height: 2.1;
  letter-spacing: 0;
  -webkit-transform: translateY(-5px);
  transform: translateY(-5px)
}

@media screen and (max-width:960px) {
  .c-contact-link__text {
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .c-contact-link__text {
    margin-top: 40px;
    font-size: 1.2rem;
    line-height: 1.8
  }
}

@media screen and (max-width:960px) {
  .c-modal .c-contact-link__text {
    font-size: 1.3rem
  }
}

.c-flow {
  position: relative;
  margin-top: 60px;
  --flow-number-width: 80px;
  --flow-number-margin: 40px
}

@media screen and (max-width:960px) {
  .c-flow {
    --flow-number-width: 70px;
    --flow-number-margin: 30px
  }
}

@media screen and (max-width:767px) {
  .c-flow {
    --flow-number-width: 60px;
    --flow-number-margin: 18px;
    margin-top: 30px
  }
}

.c-flow:before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 20px;
  left: calc(var(--flow-number-width)/2 - 1px);
  width: 4px;
  height: calc(100% - 100px);
  background-color: #2A92B7
}

@media screen and (max-width:960px) {
  .c-flow:before {
    height: calc(100% - 110px)
  }
}

@media screen and (max-width:767px) {
  .c-flow:before {
    --flow-last-size: 70px;
    height: calc(100% - var(--flow-last-size))
  }
}

.c-flow li {
  position: relative;
  z-index: 1;
  display: flex
}

.c-flow li .c-flow__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--flow-number-width);
  height: var(--flow-number-width);
  margin-right: var(--flow-number-margin);
  background-color: #fff;
  border: 4px solid #2A92B7;
  border-radius: 50%;
  color: #2A92B7;
}

.c-flow li .c-flow__number span {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 2.6rem;
  line-height: 1
}

@media screen and (max-width:960px) {
  .c-flow li .c-flow__number span {
    font-size: 2.2rem
  }
}

@media screen and (max-width:767px) {
  .c-flow li .c-flow__number span {
    font-size: 2rem
  }
}

.c-flow li .c-flow__content {
  -webkit-transform: translateY(-8px);
  transform: translateY(-8px);
  width: calc(100% - var(--flow-number-width) - var(--flow-number-margin))
}

.c-flow li .c-flow__content h3 {
  margin-bottom: 8px;
  font-size: 3rem;
  font-weight: 700
}

@media screen and (max-width:960px) {
  .c-flow li .c-flow__content h3 {
    font-size: 2.6rem
  }
}

@media screen and (max-width:767px) {
  .c-flow li .c-flow__content h3 {
    margin-bottom: 5px;
    font-size: 2rem
  }
}

.c-flow li .c-flow__content p {
  font-size: 1.5rem;
  line-height: 1.8
}

@media screen and (max-width:960px) {
  .c-flow li .c-flow__content p {
    font-size: 1.4rem;
    letter-spacing: -.03em
  }
}

.c-flow li+li {
  margin-top: 52px
}

@media screen and (max-width:767px) {
  .c-flow li+li {
    margin-top: 45px
  }
}

@media screen and (max-width:767px) {
  .c-flow li:last-child .c-flow__number {
    position: relative
  }
}

.c-flow__button {
  display: flex;
  margin-top: 16px
}

@media screen and (max-width:767px) {
  .c-flow__button {
    display: block
  }
}

.c-flow__button>div {
  margin-right: 9px
}

@media screen and (max-width:767px) {
  .c-flow__button>div {
    margin: 10px 0 0
  }
}

.c-flow__button>div:last-child {
  margin-right: 0
}

.c-footer {
  position: relative;
  padding: 60px 30px 30px;
  text-align: center;
  background-color: #fff
}

@media screen and (max-width:960px) {
  .c-footer {
    padding: 45px 30px
  }
}

@media screen and (max-width:767px) {
  .c-footer {
    padding: 20px 30px 30px
  }
}

.c-footer__nav {
  display: flex;
  justify-content: center
}

@media screen and (max-width:767px) {
  .c-footer__nav {
    flex-wrap: wrap
  }
}

.c-footer__nav li {
  position: relative;
  margin: 0 25px 0 0
}

@media screen and (max-width:767px) {
  .c-footer__nav li {
    margin: 0 15px 0 0
  }
}

.c-footer__nav li:last-child {
  margin-right: 0
}

.c-footer__nav li:last-child:after {
  display: none
}

.c-footer__nav li:after {
  content: "|";
  margin-left: 25px
}

@media screen and (max-width:767px) {
  .c-footer__nav li:after {
    margin-left: 10px
  }
}

.c-footer__nav li a, .c-footer__nav li button {
  position: relative;
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 2.1;
  text-decoration: none
}

.c-footer__nav li a:before, .c-footer__nav li button:before {
  content: "";
  position: absolute;
  right: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: #000;
  transition: all .3s
}

.c-footer__nav li a:hover:before, .c-footer__nav li button:hover:before {
  right: initial;
  left: 0;
  width: 100%
}

@media screen and (max-width:960px) {
  .c-footer__nav li a, .c-footer__nav li button {
    font-size: 1.3rem
  }
}

@media screen and (max-width:767px) {
  .c-footer__nav li a, .c-footer__nav li button {
    font-size: 1.2rem
  }
}

.c-footer__logo {
  margin-top: 75px
}

@media screen and (max-width:960px) {
  .c-footer__logo {
    margin-top: 60px
  }
}

@media screen and (max-width:767px) {
  .c-footer__logo {
    margin-top: 50px
  }
}

  .c-footer__logo img {
    width: auto;
    height: 50px
  }

@media screen and (max-width:767px) {
  .c-footer__logo img {
    height: 50px
  }
}

.c-footer__text {
  margin-top: 30px;
  font-size: 1.1rem;
  line-height: 1.8;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif
}

@media screen and (max-width:960px) {
  .c-footer__text {
    font-size: 1rem
  }
}

@media screen and (max-width:767px) {
  .c-footer__text {
    letter-spacing: .02em;
    -webkit-transform: scale(.9);
    transform: scale(.9);
    -webkit-transform-origin: center top;
    transform-origin: center top
  }
}

.c-footer__company {
  display: flex;
  justify-content: center;
  margin-top: 59px;
  font-size: 1.4rem;
  line-height: 2
}

@media screen and (max-width:960px) {
  .c-footer__company {
    margin-top: 40px
  }
}

@media screen and (max-width:767px) {
  .c-footer__company {
    margin-top: 20px;
    font-size: 1.2rem
  }
}

.c-footer__company dt {
  position: relative
}

.c-footer__company dt:after {
  content: "："
}

.c-footer__copyright {
  position: absolute;
  right: 40px;
  bottom: 30px
}

@media screen and (max-width:767px) {
  .c-footer__copyright {
    position: static;
    margin-top: 3px
  }
}

.c-footer__copyright small {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.7
}

@media screen and (max-width:767px) {
  .c-footer__copyright small {
    display: block;
    -webkit-transform: scale(.9);
    transform: scale(.9);
    -webkit-transform-origin: center top;
    transform-origin: center top
  }
}

.c-header {
  padding: 60px 0 0 68px
}

.c-header[data-page=top] {
  padding: 73px 0 0 80px
}

@media screen and (max-width:1280px) {
  .c-header[data-page=top] {
    padding: 60px 0 0 30px
  }
}

@media screen and (max-width:960px) {
  .c-header[data-page=top] {
    padding: 45px 0 0 30px
  }
}

@media screen and (max-width:767px) {
  .c-header[data-page=top] {
    padding: 30px 0 30px 25px
  }
}

@media screen and (max-width:1280px) {
  .c-header {
    padding: 60px 0 0 30px
  }
}

@media screen and (max-width:960px) {
  .c-header {
    padding: 45px 0 0 30px
  }
}

@media screen and (max-width:767px) {
  .c-header {
    position: fixed;
    z-index: 2;
    top: 0;
    right: 0;
    left: 0;
    padding: 30px 0 30px 25px;
    background-color: #fff
  }
}

@media screen and (max-width:767px) {
  .c-header__logo h1[data-position=scroll] img {
    height: 20px;
    width: 158px
  }
}

.c-header__logo h1 {
  margin: 0;
  line-height: 1;
  font-size: 0
}

@media screen and (max-width:1280px) {
  .c-header__logo h1 img {
    width: auto;
    height: 70px
  }
}

@media screen and (max-width:960px) {
  .c-header__logo h1 img {
    height: 60px
  }
}

@media screen and (max-width:767px) {
  .c-header__logo h1 img {
    width: 237px;
    height: 30px;
    transition: height .3s .1s, width .3s .1s
  }
}

@media screen and (max-width:365px) {
  .c-header__logo h1 img {
    height: 27px
  }
}

@media screen and (max-width:767px) {
  .c-header__logo a img {
    width: 200px;
    height: auto
  }
}

.c-header__nav {
  position: fixed;
  z-index: 11;
  top: 0;
  width: 0;
  height: 100vh;
  /* --nav-min-height: 900px;
  min-height: var(--nav-min-height); */
  --nav-width: 700px;
  right: calc(-1*var(--nav-width));
  width: var(--nav-width);
  padding: 80px;
  background-color:#2A92B7;
  opacity: 0;
  visibility: hidden;
  overflow-y: scroll;
  transition: right .45s, opacity .3s, visibility .3s
}

@media screen and (max-width:767px) {
  .c-header__nav {
    min-height: auto;
    --nav-width: 100vw;
    max-width: 500px;
    padding: 75px 35px 75px 50px;
    transition: right .3s, opacity .1s, visibility .1s
  }
}

@media screen and (max-width:365px) {
  .c-header__nav {
    padding: 75px 35px
  }
}

.c-header__nav[aria-hidden=false] {
  visibility: visible;
  right: 0;
  opacity: 1
}

@media screen and (max-width:365px) {
  .c-header__nav[aria-hidden=false] {
    width: 100%
  }
}

.c-header__nav .c-header__nav-inner {
  min-height: var(--nav-min-height)
}

@media screen and (max-width:767px) {
  .c-header__nav .c-header__nav-inner {
    min-height: auto
  }
}

.c-header__nav-company {
  position: absolute;
  bottom: 0;
  color: #fff
}

@media screen and (max-width:767px) {
  .c-header__nav-company {
    position: static;
    margin-top: 50px;
    display: flex;
    justify-content: space-between;
  }
}

@media screen and (max-width:767px) {
  .c-header__nav-company img {
    width: auto;
    height: 40px
  }
}

.c-header__nav-company p {
  margin-top: 16px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  -webkit-transform: scale(.8);
  transform: scale(.8);
  -webkit-transform-origin: left top;
  transform-origin: left top
}

@media screen and (max-width:767px) {
  .c-header__nav-company p {
    margin-top: 14px
  }
}

.c-header__button {
  position: fixed;
  z-index: 12;
  top: 37px;
  right: 40px;
  padding: 40px;
  background-color: #2A92B7;
  border: 2px solid #fff;
  border-radius: 100%;
  transition: background-color .3s
}

@media screen and (max-width:960px) {
  .c-header__button {
    right: 20px;
    top: 20px;
    padding: 30px
  }
}

@media screen and (max-width:767px) {
  .c-header__button {
    top: 15px;
    right: 15px;
    padding: 23px
  }
}

.c-header__button:hover {
  /* background-color: rgba(0, 0, 0, .9) */
}

.c-header__button[aria-expanded=true] {
  background-color: #fff
}

.c-header__button[aria-expanded=true]:hover {
  background-color: rgba(255, 255, 255, .9)
}

.c-header__button[aria-expanded=true]:after, .c-header__button[aria-expanded=true]:before {
  top: 38px;
  background-color: #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg)
}

@media screen and (max-width:960px) {
  .c-header__button[aria-expanded=true]:after, .c-header__button[aria-expanded=true]:before {
    top: 28px
  }
}

@media screen and (max-width:767px) {
  .c-header__button[aria-expanded=true]:after, .c-header__button[aria-expanded=true]:before {
    top: 21px;
    width: 18px
  }
}

.c-header__button[aria-expanded=true]:before {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg)
}

.c-header__button:before, .c-header__button:after {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  display: block;
  content: "";
  width: 20px;
  height: 2px;
  background-color: #fff;
  transition: color .2s, -webkit-transform .3s;
  transition: transform .3s, color .2s;
  transition: transform .3s, color .2s, -webkit-transform .3s
}

@media screen and (max-width:767px) {
  .c-header__button:before, .c-header__button:after {
    width: 12px
  }
}

.c-header__button:before {
  top: 33px
}

@media screen and (max-width:960px) {
  .c-header__button:before {
    top: 23px
  }
}

@media screen and (max-width:767px) {
  .c-header__button:before {
    top: 18px
  }
}

.c-header__button:after {
  top: 46px
}

@media screen and (max-width:960px) {
  .c-header__button:after {
    top: 36px
  }
}

@media screen and (max-width:767px) {
  .c-header__button:after {
    top: 26px
  }
}

.c-header__button span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

body[data-modal=show] .c-header__button {
  display: none
}

.c-header__background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  transition: opacity .6s
}

.c-header__background[aria-hidden=false] {
  visibility: visible
}

.c-header__background[aria-hidden=true] {
  visibility: hidden;
  opacity: 0
}

.c-heading span {
  display: inline-block;
  margin-bottom: 17px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  letter-spacing: .07em;
  line-height: 1.7;
  color: #E85382
}

@media screen and (max-width:767px) {
  .c-heading span {
    margin-bottom: 10px
  }
}

.c-heading h2 {
  font-size: 4.4rem;
  line-height: 1.3;
  letter-spacing: .05em
}

@media screen and (max-width:960px) {
  .c-heading h2 {
    font-size: 3.6rem
  }
}

@media screen and (max-width:767px) {
  .c-heading h2 {
    font-size: 2.2rem
  }
}

.c-hero {
  padding: 82px 0 0
}

@media screen and (max-width:960px) {
  .c-hero {
    padding: 80px 0 0
  }
}

@media screen and (max-width:767px) {
  .c-hero {
    padding: 115px 0 0
  }
}

.c-hero h1 {
  margin: 0;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 9rem;
  line-height: 1.5;
  letter-spacing: .06em;
  color:#2A92B7
}

@media screen and (max-width:960px) {
  .c-hero h1 {
    font-size: 6rem
  }
}

@media screen and (max-width:767px) {
  .c-hero h1 {
    font-size: 4.2rem
  }
}

@media screen and (max-width:365px) {
  .c-hero h1 {
    font-size: 3.8rem
  }
}

.c-modal {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  z-index: 11;
  top: 0;
  right: 0;
  left: 0;
  --modal-padding: 80px;
  padding: var(--modal-padding);
  overflow-y: scroll;
  transition: all .2s
}

@media screen and (max-width:960px) {
  .c-modal {
    --modal-padding: 30px
  }
}

@media screen and (max-width:767px) {
  .c-modal {
    padding: 90px var(--modal-padding)
  }
}

@media screen and (max-width:365px) {
  .c-modal {
    --modal-padding: 15px;
    padding: 60px var(--modal-padding)
  }
}

.c-modal[aria-hidden=false] {
  opacity: 1;
  visibility: visible
}

.c-modal[aria-hidden=false] .c-modal__inner:before {
  -webkit-transform: scale(1);
  transform: scale(1)
}

.c-modal .c-modal__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1280px;
  height: calc(100vh - var(--modal-padding)*2);
  margin: 0 auto;
  color: #fff
}

@media screen and (max-width:767px) {
  .c-modal .c-modal__inner {
    height: 100%;
    padding: 58px 0 50px
  }
}

.c-modal .c-modal__inner:before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -1px;
  bottom: -1px;
  width: 100%;
  height: 100%;
  background-color: #2A92B7;
  border-radius: 10px;
  -webkit-transform: scale(.7);
  transform: scale(.7);
  transition: all .3s ease-out
}

.c-modal__button {
  position: absolute;
  z-index: 13;
  top: -37px;
  right: -40px;
  padding: 40px;
  background-color: #2A92B7;
  border: 2px solid #fff;
  border-radius: 100%;
  transition: background-color .3s
}

@media screen and (max-width:960px) {
  .c-modal__button {
    top: -15px;
    right: -20px;
    padding: 25px
  }
}

@media screen and (max-width:767px) {
  .c-modal__button {
    top: -10px;
    right: -10px
  }
}

.c-modal__button:before, .c-modal__button:after {
  position: absolute;
  top: 38px;
  left: 0;
  right: 0;
  margin: 0 auto;
  display: block;
  content: "";
  width: 20px;
  height: 2px;
  background-color: #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  transition: color .2s, -webkit-transform .3s;
  transition: transform .3s, color .2s;
  transition: transform .3s, color .2s, -webkit-transform .3s
}

@media screen and (max-width:960px) {
  .c-modal__button:before, .c-modal__button:after {
    top: 23px
  }
}

.c-modal__button:before {
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg)
}

.c-modal__button span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px)
}

.c-modal__background {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background-color: #fff
}

@media screen and (max-width:767px) {
  .c-modal__background {
    position: fixed
  }
}

.c-nav-global {
  color: #fff
}

.c-nav-global>li h2 {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 3.4rem;
  line-height: 1.5;
  letter-spacing: .06em
}

@media screen and (max-width:767px) {
  .c-nav-global>li h2 {
    font-size: 2.4rem
  }
}

.c-nav-global>li+li {
  margin-top: 20px
}

.c-nav-global a {
  text-decoration: none;
  color: #fff
}

.c-nav-global__list {
  margin-top: 5px
}

.c-nav-global__list li+li {
  margin-top: 3px
}

.c-nav-global__list li a {
  position: relative;
  padding-left: 25px;
  font-weight: 700;
  line-height: 2;
  transition: padding-left .3s ease-in-out
}

@media screen and (max-width:767px) {
  .c-nav-global__list li a {
    padding-left: 16px;
    letter-spacing: 0
  }
}

.c-nav-global__list li a:hover {
  padding-left: 35px
}

.c-nav-global__list li a:before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg)
}

@media screen and (max-width:767px) {
  .c-nav-global__list li a:before {
    top: 8px;
    width: 6px;
    height: 6px;
    border-right: 1px solid #fff;
    border-top: 1px solid #fff
  }
}

.c-nav-global__list li a img {
  margin-right: 11px
}

@media screen and (max-width:767px) {
  .c-nav-global__list li a img {
    width: 17px;
    height: auto;
    margin-right: 6px
  }
}

@media screen and (max-width:767px) {
  .c-nav-global__list li a span {
    display: inline-block;
    margin-left: 3px;
    letter-spacing: 0
  }
}

.c-trigger {
  position: fixed;
  z-index: 10;
  bottom: 40px;
  right: 40px;
  opacity: 0;
  -webkit-transform: scale(.9);
  transform: scale(.9);
  transition: .1s opacity .2s linear, .5s -webkit-transform .2s cubic-bezier(.175, .885, .32, 1.275);
  transition: .1s opacity .2s linear, .5s transform .2s cubic-bezier(.175, .885, .32, 1.275);
  transition: .1s opacity .2s linear, .5s transform .2s cubic-bezier(.175, .885, .32, 1.275), .5s -webkit-transform .2s cubic-bezier(.175, .885, .32, 1.275)
}

.c-trigger[data-position=scroll] {
  opacity: 1;
  -webkit-transform: scale(1);
  transform: scale(1)
}

@media screen and (max-width:960px) {
  .c-trigger {
    bottom: 20px;
    right: 20px
  }
}

@media screen and (max-width:767px) {
  .c-trigger {
    right: 0;
    left: 0;
    bottom: 17px
  }
}

.c-trigger button {
  display: block;
  width: 300px;
  padding: 21px 20px 27px;
  font-size: 1.8rem;
  font-weight: 500;
  text-align: center;
  color: #fff;
  background-color: #000;
  border: 1px solid #fff;
  border-radius: 80px;
  transition: background-color .3s;
  transition: background-color .3s, padding .3s;
  -webkit-animation-name: throb;
  animation-name: throb;
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
  -webkit-animation-duration: 6s;
  animation-duration: 6s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite
}

.c-trigger button:hover {
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
  padding: 26px 20px 32px;
  transition: background-color .3s, padding .3s;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
  background-color: rgba(0, 0, 0, .9)
}

@media screen and (max-width:960px) {
  .c-trigger button:hover {
    padding: 18px 20px 24px
  }
}

@media screen and (max-width:767px) {
  .c-trigger button:hover {
    padding: 9px 20px 13px
  }
}

@media screen and (max-width:960px) {
  .c-trigger button {
    width: 280px;
    padding: 18px 20px 24px;
    font-size: 1.7rem
  }
}

@media screen and (max-width:767px) {
  .c-trigger button {
    width: 100%;
    max-width: 327px;
    margin: 0 auto;
    padding: 9px 20px 13px;
    font-size: 1.5rem;
    -webkit-animation: none;
    animation: none
  }
}

@media screen and (max-width:365px) {
  .c-trigger button {
    max-width: 280px
  }
}

@-webkit-keyframes throb {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  45% {
    -webkit-transform: scale(.9);
    transform: scale(.9)
  }
  50% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1)
  }
  55% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

@keyframes throb {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  45% {
    -webkit-transform: scale(.9);
    transform: scale(.9)
  }
  50% {
    -webkit-transform: scale(1.1);
    transform: scale(1.1)
  }
  55% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  100% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

body[data-menu=show] .c-trigger {
  z-index: -1
}

.c-wrapper {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 30px
}

@media screen and (max-width:365px) {
  .c-wrapper {
    padding: 0 20px
  }
}

.c-wrapper__large {
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 30px
}

@media screen and (max-width:365px) {
  .c-wrapper__large {
    padding: 0 20px
  }
}

.c-wrapper__small {
  max-width: 830px;
  margin: 0 auto;
  padding: 0 30px
}

@media screen and (max-width:365px) {
  .c-wrapper__small {
    padding: 0
  }
}

@media screen and (max-width:767px) {
  .c-wrapper__small[data-view=pc] {
    padding: 0
  }
}

@media screen and (max-width:960px) {
  .p-service .c-wrapper__small {
    padding: 0
  }
}

.p-about__hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 30px
}

@media screen and (max-width:767px) {
  .p-about__hero {
    padding-top: 105px;
    display: block
  }
}

@media screen and (max-width:365px) {
  .p-about__hero {
    padding: 105px 20px 0
  }
}

.p-about__hero-heading {
  margin-bottom: 200px;
  -webkit-transform: translateX(5px);
  transform: translateX(5px)
}

@media screen and (max-width:960px) {
  .p-about__hero-heading {
    margin-bottom: 80px
  }
}

@media screen and (max-width:767px) {
  .p-about__hero-heading {
    margin-bottom: 35px
  }
}

.p-about__hero-heading h1 {
  margin: 0 0 57px;
  font-size: 2.5rem;
  letter-spacing: .06em;
  color: #f1c012
}

@media screen and (max-width:767px) {
  .p-about__hero-heading h1 {
    margin: 0 0 25px;
    font-size: 1.3rem
  }
}

.p-about__hero-heading span {
  display: inline-block;
  opacity: 0;
  -webkit-transform: translateY(60px);
  transform: translateY(60px);
  transition: opacity .3s .3s, -webkit-transform .6s .3s;
  transition: opacity .3s .3s, transform .6s .3s;
  transition: opacity .3s .3s, transform .6s .3s, -webkit-transform .6s .3s
}

.p-about__hero-heading span[data-view=true] {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0)
}

@media screen and (max-width:1280px) {
  .p-about__hero-heading span img {
    width: 43vw;
    height: auto
  }
}

@media screen and (max-width:767px) {
  .p-about__hero-heading span img {
    width: 315px
  }
}

.p-about__hero-detail {
  position: relative;
  padding-top: 490px;
  -webkit-transform: translateX(-32px);
  transform: translateX(-32px)
}

@media screen and (max-width:1280px) {
  .p-about__hero-detail {
    padding-top: 460px
  }
}

@media screen and (max-width:960px) {
  .p-about__hero-detail {
    padding-top: 380px;
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
}

@media screen and (max-width:767px) {
  .p-about__hero-detail {
    padding-top: 65vw
  }
}

.p-about__hero-detail:before {
  content: "";
  position: absolute;
  top: 50px;
  right: -60px;
  display: block;
  width: 600px;
  height: 370px;
  background-image: url(../images/about_hero.svg);
  background-repeat: no-repeat;
  background-size: cover
}

@media screen and (max-width:960px) {
  .p-about__hero-detail:before {
    width: 439px;
    height: 280px
  }
}

@media screen and (max-width:767px) {
  .p-about__hero-detail:before {
    top: 0;
    right: 0;
    width: calc(100vw - 60px);
    height: 0;
    padding-top: 63.7%
  }
}

.p-about__hero-detail span {
  display: inline-block;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 2;
  letter-spacing: .06em;
  transition: -webkit-clip-path 1s .8s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path 1s .8s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path 1s .8s cubic-bezier(.37, 0, .63, 1), -webkit-clip-path 1s .8s cubic-bezier(.37, 0, .63, 1)
}

@media screen and (max-width:960px) {
  .p-about__hero-detail span {
    font-size: 2.2rem
  }
}

@media screen and (max-width:767px) {
  .p-about__hero-detail span {
    letter-spacing: 0;
    line-height: 1.6
  }
}

@media screen and (max-width:365px) {
  .p-about__hero-detail span {
    font-size: 2rem
  }
}

.p-about__hero-detail-text {
  margin-top: 54px;
  letter-spacing: .02em;
  line-height: 2.3
}

@media screen and (max-width:767px) {
  .p-about__hero-detail-text {
    margin-top: 15px;
    font-size: 1.5rem;
    line-height: 1.9
  }
}

@media screen and (max-width:365px) {
  .p-about__hero-detail-text {
    font-size: 1.4rem
  }
}

.p-about__concept {
  margin: 120px 0 100px;
  padding: 90px 60px 100px;
  color: #fff;
  background-color: #2A92B7;
  border-radius: 10px
}

@media screen and (max-width:960px) {
  .p-about__concept {
    margin: 80px 0 100px;
    padding: 90px 30px 100px
  }
}

@media screen and (max-width:767px) {
  .p-about__concept {
    margin: 50px 0;
    padding: 35px 25px 40px
  }
}

@media screen and (max-width:365px) {
  .p-about__concept {
    padding: 35px 20px 40px
  }
}

.p-about__concept-heading {
  text-align: center;
  overflow: hidden
}

.p-about__concept-heading span {
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.7
}

@media screen and (max-width:767px) {
  .p-about__concept-heading span {
    font-size: 1.3rem
  }
}

.p-about__concept-heading h2 {
  font-size: 4.4rem;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  transition: -webkit-transform .5s .3s;
  transition: transform .5s .3s;
  transition: transform .5s .3s, -webkit-transform .5s .3s
}

.p-about__concept-heading h2[data-view=true] {
  -webkit-transform: translateY(0);
  transform: translateY(0)
}

@media screen and (max-width:960px) {
  .p-about__concept-heading h2 {
    font-size: 3rem
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-heading h2 {
    font-size: 2.2rem
  }
}

.p-about__concept-text {
  margin-top: 65px;
  font-size: 2rem;
  line-height: 2;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  gap: 6rem;
}
.p-about__concept-text strong{
  font-size: 2.4rem;
  letter-spacing: .3rem;
}
.p-about__concept-text > ul{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  justify-content: center;
}
.p-about__concept-text > ul > li{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

#concept .p-about__concept-text h3{
  font-size: 3rem;
}

@media screen and (max-width:960px) {
  .p-about__concept-text {
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-text {
    margin-top: 30px;
    font-size: 1.3rem;
    line-height: 1.9;
    text-align: left;
    gap: 3rem;
  }
  .p-about__concept-text strong{
    font-size: 1.8rem;
    letter-spacing: .2rem;
  }
  #concept .p-about__concept-text h3{
  font-size: initial; 
  }
  
}

.p-about__concept-text a {
  color: #fff;
  text-decoration: underline
}

.p-about__concept-text a:hover {
  text-decoration: none
}

.p-about__concept-content {
  position: relative;
  max-width: 840px;
  margin: 115px auto 0
}

@media screen and (max-width:960px) {
  .p-about__concept-content {
    margin: 80px auto 0
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-content {
    margin: 50px auto 0
  }
}

.p-about__concept-character {
  position: absolute;
  top: 0;
  left: -76px;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: .07em
}

@media screen and (max-width:960px) {
  .p-about__concept-character {
    left: 30px;
    font-size: 1.8rem
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-character {
    position: static;
    -webkit-writing-mode: initial;
    -ms-writing-mode: initial;
    writing-mode: initial;
    font-size: 1.3rem;
    text-align: center
  }
}

.p-about__concept-list {
  -webkit-transform: translateX(15px);
  transform: translateX(15px)
}

@media screen and (max-width:960px) {
  .p-about__concept-list {
    width: 75%;
    margin: 0 auto
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-list {
    width: 100%;
    margin-top: 35px;
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
}

.p-about__concept-list li {
  display: flex;
  align-items: center;
  padding: 45px 50px 55px 80px;
  color: #000;
  background-color: #fff;
  border-radius: 100px;
  opacity: 0;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  transition: all .5s .3s
}
.p-about__concept-list-text{
  flex-basis: fit-content;
}

.p-about__concept-list li[data-view=true] {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0)
}

@media screen and (max-width:960px) {
  .p-about__concept-list li {
    padding: 30px 30px 40px 45px
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-list li {
    position: relative;
    display: block;
    padding: 32px;
    border-radius: 20px
  }
}

@media screen and (max-width:365px) {
  .p-about__concept-list li {
    padding: 32px 20px
  }
}

.p-about__concept-list li+li {
  margin-top: 80px
}

@media screen and (max-width:960px) {
  .p-about__concept-list li+li {
    margin-top: 35px
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-list li+li {
    margin-top: 50px
  }
}

@media screen and (max-width:767px) {
  _::-webkit-full-page-media, _:future, :root .p-about__concept-list li {
    padding: 32px 30px
  }
}

.p-about__concept-list-num {
  display: block;
  margin-right: 40px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  line-height: 1.25;
  letter-spacing: .05em;
  color: #ffd706
}

@media screen and (max-width:960px) {
  .p-about__concept-list-num {
    margin-right: 30px
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-list-num {
    position: absolute;
    top: -30px;
    left: calc(50% - 15px);
    margin: 0
  }
}

@media screen and (max-width:960px) {
  .p-about__concept-list-num img {
    width: 30px;
    height: auto
  }
}

.p-about__concept-list-text h3 {
  font-size: 2.8rem;
  line-height: 1.5;
  color: #E85382;
}

@media screen and (max-width:960px) {
  .p-about__concept-list-text h3 {
    font-size: 2.2rem
  }
}

@media screen and (max-width:365px) {
  .p-about__concept-list-text h3 {
    font-size: 2rem
  }
}

.p-about__concept-list-text p {
  line-height: 1.8;
  margin-top: 1rem;
  letter-spacing: 0
}

@media screen and (max-width:960px) {
  .p-about__concept-list-text p {
    font-size: 1.4rem
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-list-text p {
    margin-top: 7px
  }
}

.p-about__concept-bottom {
  margin-top: 62px;
  font-size: 1.8rem;
  line-height: 2;
  text-align: center
}

@media screen and (max-width:960px) {
  .p-about__concept-bottom {
    margin-top: 40px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-about__concept-bottom {
    margin-top: 30px;
    font-size: 1.3rem;
    line-height: 1.8;
    letter-spacing: 0
  }
}

@media screen and (max-width:365px) {
  .p-about__concept-bottom {
    font-size: 1.2rem
  }
}

.p-about__runbretta {
  padding: 100px 0;
  background-color: #004986;
  margin: 155px 0 100px;
}

@media screen and (max-width:960px) {
  .p-about__runbretta {
    background-size: contain
  }
}

@media screen and (max-width:767px) {
  .p-about__runbretta {
    padding: 35px 0;
    background-size: cover
  }
}

.p-about__runbretta-box {
  padding: 94px 30px 85px;
  background-color: #fff
}

@media screen and (max-width:767px) {
  .p-about__runbretta-box {
    max-width: 450px;
    margin: 0 auto;
    padding: 30px 25px
  }
}

@media screen and (max-width:365px) {
  .p-about__runbretta-box {
    padding: 30px 20px
  }
}

.p-about__runbretta-box-inner {
  max-width: 776px;
  margin: 0 auto
}

.p-about__runbretta-heading {
  text-align: center
}

@media screen and (max-width:767px) {
  .p-about__runbretta-heading {
    text-align: left
  }
}

.p-about__runbretta-heading h2 {
  font-size: 2.6rem;
  line-height: 1.4
}

@media screen and (max-width:767px) {
  .p-about__runbretta-heading h2 {
    font-size: 2.2rem;
    line-height: 1.5
  }
}

.p-about__runbretta-detail {
  display: flex;
  align-items: center;
  margin-top: 70px
}

@media screen and (max-width:767px) {
  .p-about__runbretta-detail {
    display: block;
    margin-top: 25px
  }
}

.p-about__runbretta-detail-text {
}

@media screen and (max-width:960px) {
  .p-about__runbretta-detail-text {
    max-width: 400px
  }
}

@media screen and (max-width:767px) {
  .p-about__runbretta-detail-text {
    max-width: 100%;
    margin-right: 0
  }
}

.p-about__runbretta-detail-text h3 {
  font-size: 2.8rem;
  line-height: 1.5;
  color: #E85382;
}

@media screen and (max-width:767px) {
  .p-about__runbretta-detail-text h3 {
    position: relative;
    display: flex;
    align-items: center;
    font-size: 1.8rem
  }
}

.p-about__runbretta-detail-text p {
  margin-top: 20px;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0
}

@media screen and (max-width:767px) {
  .p-about__runbretta-detail-text p {
    margin-top: 15px;
    line-height: 1.9
  }
}

.p-about__runbretta-link {
  margin-top: 20px
}

@media screen and (max-width:767px) {
  .p-about__runbretta-link {
    margin-top: 15px
  }
}

.p-about__runbretta-link a {
  display: block;
  width: 300px;
  padding: 5px 30px 7px;
  font-size: 1.4rem;
  text-decoration: none;
  text-align: center;
  border: 2px solid #000;
  transition: background-color .5s
}

@media screen and (max-width:767px) {
  .p-about__runbretta-link a {
    width: 100%;
    max-width: 300px;
    padding: 10px 5px 12px;
    letter-spacing: 0
  }
}

.p-about__runbretta-link a:hover {
  background-color: #f1c012
}

.p-about__runbretta-link a img {
  margin-left: 5px;
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px)
}

@media screen and (max-width:767px) {
  .p-about__runbretta-link a img {
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px)
  }
}

@media screen and (max-width:365px) {
  .p-about__runbretta-link a img {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px)
  }
}

@media screen and (max-width:767px) {
  .p-about__runbretta-detail-image {
    display: none
  }
}

.p-about__runbretta-text {
  margin-top: 65px;
  text-align: center
}

@media screen and (max-width:767px) {
  .p-about__runbretta-text {
    margin-top: 22px
  }
}

.p-about__runbretta-text p {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2;
  letter-spacing: 0
}

@media screen and (max-width:960px) {
  .p-about__runbretta-text p {
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-about__runbretta-text p {
    font-size: 1.4rem;
    line-height: 1.8;
    text-align: left
  }
}

.p-about__recruit {
  margin-top: 100px;
  padding: 90px 30px 100px 110px;
  border: 5px solid #000;
  border-radius: 10px
}

@media screen and (max-width:960px) {
  .p-about__recruit {
    padding: 60px 30px
  }
}

@media screen and (max-width:767px) {
  .p-about__recruit {
    margin-top: 50px;
    padding: 35px 25px;
    border: 2px solid #000
  }
}

.p-about__recruit-heading {
  text-align: center
}

.p-about__recruit-heading h2 {
  font-size: 3.4rem;
  line-height: 1.8
}

@media screen and (max-width:960px) {
  .p-about__recruit-heading h2 {
    font-size: 3rem
  }
}

@media screen and (max-width:767px) {
  .p-about__recruit-heading h2 {
    font-size: 2rem;
    line-height: 1.5
  }
}

.p-about__recruit-content {
  display: flex;
  margin-top: 70px
}

@media screen and (max-width:767px) {
  .p-about__recruit-content {
    display: block;
    margin-top: 25px
  }
}

.p-about__recruit-image {
  margin-right: 58px
}

@media screen and (max-width:960px) {
  .p-about__recruit-image {
    margin-right: 45px
  }
}

@media screen and (max-width:767px) {
  .p-about__recruit-image {
    margin: 0 0 22px;
    text-align: center
  }
}

@media screen and (max-width:960px) {
  .p-about__recruit-image img {
    width: 360px;
    height: auto
  }
}

@media screen and (max-width:767px) {
  .p-about__recruit-image img {
    width: 190px
  }
}

.p-about__recruit-text p {
  margin-bottom: 34px;
  line-height: 2.1
}

@media screen and (max-width:767px) {
  .p-about__recruit-text p {
    margin-bottom: 25px;
    line-height: 1.9;
    letter-spacing: 0
  }
}

@media screen and (max-width:767px) {
  .p-about__recruit-text .c-button a {
    margin: 0 auto
  }
}

.p-contact {
  color: #000
}

.p-contact__title {
  font-size: 3.2rem;
  line-height: 1.6;
  text-align: center
}

@media screen and (max-width:960px) {
  .p-contact__title {
    font-size: 3rem
  }
}

@media screen and (max-width:767px) {
  .p-contact__title {
    font-size: 2.2rem
  }
}

.p-contact__lead {
  margin: 35px 0 0;
  text-align: center
}

@media screen and (max-width:767px) {
  .p-contact__lead {
    text-align: left
  }
}

.p-contact__lead p {
  font-weight: 400;
  line-height: 2
}

.p-contact__flow {
  display: flex;
  justify-content: center;
  margin-top: 80px
}

@media screen and (max-width:960px) {
  .p-contact__flow {
    margin-top: 45px
  }
}

@media screen and (max-width:767px) {
  .p-contact__flow {
    margin-top: 30px
  }
}

.p-contact__flow-item {
  position: relative;
  width: 160px;
  margin-right: 60px;
  padding: 13px 15px 15px;
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  background-color: #bbb;
  border-radius: 5px
}

@media screen and (max-width:960px) {
  .p-contact__flow-item {
    width: 140px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-contact__flow-item {
    width: 90px;
    margin-right: 30px;
    padding: 13px 10px 15px;
    font-size: 1.5rem
  }
}

.p-contact__flow-item:last-child {
  margin-right: 0
}

.p-contact__flow-item:last-child:after {
  display: none
}

.p-contact__flow-item[aria-current=step] {
  background-color: #2A92B7
}

.p-contact__flow-item:after {
  content: "";
  position: absolute;
  --icon-arrow-width: 7px;
  --icon-arrow-height: 12px;
  top: calc(50% - var(--icon-arrow-height)/2);
  right: calc(-1*var(--icon-arrow-width) - 28px);
  display: inline-block;
  width: var(--icon-arrow-width);
  height: var(--icon-arrow-height);
  background-image: url(../images/icon-arrow.svg);
  background-size: var(--icon-arrow-width) var(--icon-arrow-height)
}

@media screen and (max-width:767px) {
  .p-contact__flow-item:after {
    right: calc(-1*var(--icon-arrow-width) - 13px)
  }
}

.p-contact__form-lead {
  margin: 80px 0 95px
}

@media screen and (max-width:960px) {
  .p-contact__form-lead {
    margin: 60px 0
  }
}

@media screen and (max-width:767px) {
  .p-contact__form-lead {
    margin: 30px 0 45px
  }
}

.p-contact__form-lead p {
  font-weight: 400;
  line-height: 1.6
}

.p-contact__unit+.p-contact__unit {
  margin-top: 37px
}

@media screen and (max-width:767px) {
  .p-contact__unit+.p-contact__unit {
    margin-top: 30px
  }
}

.p-contact__unit-label {
  margin-bottom: 13px
}

@media screen and (max-width:767px) {
  .p-contact__unit-label {
    margin-bottom: 7px
  }
}

.p-contact__unit-label span, .p-contact__unit-label label {
  font-weight: 700
}

@media screen and (max-width:767px) {
  .p-contact__unit-label span, .p-contact__unit-label label {
    font-size: 1.5rem
  }
}

.p-contact__unit-label span.p-contact__unit-label-required {
  display: inline-block;
  margin: 0 0 0 17px;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  color: #e32727
}

@media screen and (max-width:767px) {
  .p-contact__unit-label span.p-contact__unit-label-required {
    margin: 0 0 0 10px;
    padding: 3px 5px 5px;
    font-size: 1.1rem
  }
}

.p-contact__unit-label span.p-contact__unit-label-note {
  display: inline-block;
  margin: 0 0 0 37px;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1;
  color: #848484
}

@media screen and (max-width:767px) {
  .p-contact__unit-label span.p-contact__unit-label-note {
    display: block;
    margin: 5px 0 0;
    padding: 3px 5px 5px;
    font-size: 1.1rem
  }
}

.p-contact__unit-label+small {
  display: inline-block;
  font-size: 1.2rem
}

.p-contact__unit-text input, .p-contact__unit-text textarea {
  width: 100%;
  padding: 14px 25px 16px;
  background-color: #fff;
  border: 1px solid #bbb;
  border-radius: 5px
}

@media screen and (max-width:767px) {
  .p-contact__unit-text input, .p-contact__unit-text textarea {
    padding: 15px 15px 18px;
    border-radius: 3px
  }
}

.p-contact__unit-text input::-webkit-input-placeholder, .p-contact__unit-text textarea::-webkit-input-placeholder {
  color: #bbb
}

.p-contact__unit-text input::-moz-placeholder, .p-contact__unit-text textarea::-moz-placeholder {
  color: #bbb
}

.p-contact__unit-text input:-ms-input-placeholder, .p-contact__unit-text textarea:-ms-input-placeholder {
  color: #bbb
}

.p-contact__unit-text input::placeholder, .p-contact__unit-text textarea::placeholder {
  color: #bbb
}

.p-contact__unit-text textarea {
  min-height: 100px;
  resize: vertical;
  line-height: 1.6
}

.p-contact__unit-text small {
  display: inline-block;
  margin-top: 10px;
  font-size: 1.2rem
}

.p-contact__unit-privacy {
  height: 180px;
  padding: 14px 25px 16px;
  font-size: 1.2rem;
  font-weight: 400;
  background-color: #fff;
  border: 1px solid #bbb;
  border-radius: 5px;
  overflow-y: scroll
}

@media screen and (max-width:767px) {
  .p-contact__unit-privacy {
    padding: 14px 20px 16px
  }
}

.p-contact__unit-privacy p+p {
  margin-top: 20px
}

@media screen and (max-width:767px) {
  .p-contact__unit-privacy p+p {
    margin-top: 15px
  }
}

.p-contact__unit-privacy ol {
  margin-bottom: 45px
}

.p-contact__unit-privacy ol li {
  margin-top: 20px
}

@media screen and (max-width:767px) {
  .p-contact__unit-privacy ol li {
    margin-top: 30px
  }
}

.p-contact__button {
  margin-top: 50px
}

@media screen and (max-width:767px) {
  .p-contact__button {
    margin-top: 40px
  }
}

.p-contact__button p {
  margin-bottom: 56px;
  font-size: 1.4rem;
  text-align: center
}

@media screen and (max-width:767px) {
  .p-contact__button p {
    margin-bottom: 20px;
    text-align: left
  }
}

.p-contact__confirm .p-contact__unit-label-required {
  display: none !important
}

.p-contact__confirm .p-contact__unit-label-note {
  display: none !important
}

.p-contact__confirm .p-contact__unit[data-unit=multiple] {
  display: block !important
}

.p-contact__confirm .p-contact__unit[data-unit=multiple] .p-contact__unit-inner+.p-contact__unit-inner {
  margin-top: 30px !important
}

.p-contact__confirm .p-contact__unit-label+p {
  display: none !important
}

.p-contact__confirm .p-contact__unit-text small {
  display: none !important
}

.p-contact__confirm .p-contact__button>p {
  display: none !important
}

.p-contact__confirm .p-contact__unit[data-unit=privacy] {
  display: none
}

.p-contact__confirm .c-button__input button {
  margin-top: 40px;
  text-decoration: underline;
  font-weight: 500
}

@media screen and (max-width:767px) {
  .p-contact__confirm .c-button__input button {
    margin-top: 30px
  }
}

.p-contact__confirm .c-button__input button:hover {
  text-decoration: none
}

.p-contact__complete {
  margin-top: 70px;
  text-align: center
}

.p-contact__complete span {
  font-size: 3.2rem;
  line-height: 1.8
}

@media screen and (max-width:960px) {
  .p-contact__complete span {
    font-size: 2.8rem
  }
}

@media screen and (max-width:767px) {
  .p-contact__complete span {
    font-size: 2rem
  }
}

.p-contact__complete p {
  margin-top: 45px;
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 2
}

@media screen and (max-width:960px) {
  .p-contact__complete p {
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-contact__complete p {
    font-size: 1.4rem;
    text-align: left
  }
}

.p-front {
  color: #000
}

.p-front__hero {
  --header-height: 158px;
  position: relative;
  height: calc(100vh - var(--header-height));
  max-height: 900px;
  min-height: 690px
}

@media screen and (max-width:1280px) {
  .p-front__hero {
    min-height: 520px
  }
}

@media screen and (max-width:960px) {
  .p-front__hero {
    --header-height: 108px;
    height: calc(80vh - var(--header-height));
    max-height: 400px;
    min-height: 320px
  }
}

@media screen and (max-width:767px) {
  .p-front__hero {
    --header-height: 0;
    height: calc(100vh - var(--header-height));
    max-height: 100%;
    min-height: 100%;
    margin-top: 95px
  }
}

.p-front__hero-message {
  display: flex;
  align-items: center;
  height: 100%;
  -webkit-transform: translate(10px, -40px);
  transform: translate(10px, -40px)
}

@media screen and (max-width:960px) {
  .p-front__hero-message {
    -webkit-transform: translate(0);
    transform: translate(0)
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-message {
    height: auto
  }
}

.p-front__hero-main {
  font-size: 3.4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .05em
}

@media screen and (max-width:960px) {
  .p-front__hero-main {
    font-size: 2.8rem
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-main {
    font-size: 6vw;
    text-align: center;
  }
}

.p-front__hero-main.js-fade {
  transition: opacity 1s 1s, -webkit-transform 1s 1s;
  transition: opacity 1s 1s, transform 1s 1s;
  transition: opacity 1s 1s, transform 1s 1s, -webkit-transform 1s 1s
}

@media screen and (max-width:767px) {
  .p-front__hero-main.js-fade {
    transition: opacity 1s .5s, -webkit-transform 1s .5s;
    transition: opacity 1s .5s, transform 1s .5s;
    transition: opacity 1s .5s, transform 1s .5s, -webkit-transform 1s .5s
  }
}

.p-front__hero-sub {
  margin-top: 35px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  /* font-size: 1.3rem; */
  line-height: 1.7
}

@media screen and (max-width:960px) {
  .p-front__hero-sub {
    /* font-size: 1.1rem */
    text-align: center;
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-sub {
    margin-top: 10px;
    /* font-size: 1rem; */
    letter-spacing: .02em;
    -webkit-transform: scale(.9);
    transform: scale(.9);
    -webkit-transform-origin: left top;
    transform-origin: left top
  }
}

.p-front__hero-sub.js-fade {
  transition: opacity .8s 1.5s, -webkit-transform .8s 1.5s;
  transition: opacity .8s 1.5s, transform .8s 1.5s;
  transition: opacity .8s 1.5s, transform .8s 1.5s, -webkit-transform .8s 1.5s
}

@media screen and (max-width:767px) {
  .p-front__hero-sub.js-fade {
    transition: opacity .8s 1s, -webkit-transform .8s 1s;
    transition: opacity .8s 1s, transform .8s 1s;
    transition: opacity .8s 1s, transform .8s 1s, -webkit-transform .8s 1s
  }
}

.p-front__hero-image {
  position: absolute;
  right: 20px;
  top: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .1s .1s
}

@media screen and (max-width:1280px) {
  .p-front__hero-image {
    width: 60vw
  }
}

@media screen and (max-width:960px) {
  .p-front__hero-image {
    width: 55vw;
    right: 0
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-image {
    position: static;
    width: calc(100vw + 20px);
    margin-top: 45px;
    -webkit-transform: translateX(-40px);
    transform: translateX(-40px)
  }
}

@media screen and (max-width:365px) {
  .p-front__hero-image {
    -webkit-transform: translateX(-25px);
    transform: translateX(-25px)
  }
}

.p-front__hero-image[data-view=true] {
  opacity: 1
}

.p-front__hero-image>div {
  margin-right: 20px
}

@media screen and (max-width:767px) {
  .p-front__hero-image>div {
    margin-right: 0
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-image>div:nth-child(2) {
    margin-right: 15px
  }
}

@media screen and (max-width:767px) {
  .p-front__hero-image>div:nth-child(3) img {
    width: 30vw
  }
}

.p-front__hero-image>div:last-child {
  margin-right: 0
}

.p-front__hero-image>div.js-horizontal {
  opacity: 0;
  -webkit-transform: scale(.9);
  transform: scale(.9);
  transition: .1s opacity 1.4s linear, .5s -webkit-transform 1.4s cubic-bezier(.175, .885, .32, 1.275);
  transition: .1s opacity 1.4s linear, .5s transform 1.4s cubic-bezier(.175, .885, .32, 1.275);
  transition: .1s opacity 1.4s linear, .5s transform 1.4s cubic-bezier(.175, .885, .32, 1.275), .5s -webkit-transform 1.4s cubic-bezier(.175, .885, .32, 1.275)
}

.p-front__hero-image>div[data-loading=delay] {
  transition-delay: .6s
}

.p-front__hero-image>div[data-loading=delay-02] {
  transition-delay: 1s
}

.p-front__hero-image>div[data-loading=soccer] {
  position: relative;
  right: -200px;
  -webkit-transform: rotate(270deg);
  transform: rotate(270deg);
  transition: right 1s 1.5s, -webkit-transform 1s 1.5s;
  transition: transform 1s 1.5s, right 1s 1.5s;
  transition: transform 1s 1.5s, right 1s 1.5s, -webkit-transform 1s 1.5s
}

.p-front__hero-image>div[data-loading=soccer][data-view=true] {
  -webkit-transform: rotate(0);
  transform: rotate(0);
  right: 0
}

.p-front__hero-image>div[data-view=true] {
  opacity: 1;
  -webkit-transform: scale(1);
  transform: scale(1)
}

@media screen and (max-width:767px) {
  .p-front__hero-image>div img {
    width: 90vw;
    height: auto;
    max-height: 300px
  }
}

.p-front__about {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 100px 0;
  padding: 50px 30px;
  color: #fff;
  background-color: #2A92B7;
  border-radius: 10px
}

@media screen and (max-width:960px) {
  .p-front__about {
    padding: 45px 20px
  }
}

@media screen and (max-width:767px) {
  .p-front__about {
    display: block;
    margin-top: 65px;
    padding: 40px 35px 45px
  }
}

@media screen and (max-width:365px) {
  .p-front__about {
    padding: 40px 20px 45px
  }
}

.p-front__about-image {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* --about-circle-height: 300px;
  --about-circle-width: 300px; */
  width: var(--about-circle-width);
  height: var(--about-circle-height);
  margin-right: 5.2777777778vw;
  background-color: #fff;
  border-radius: 100%
}

.p-front__about-image[data-view=true]:after {
  height: 0;
  top: 0
}

@media screen and (max-width:960px) {
  .p-front__about-image {
    --about-circle-height: 320px;
    --about-circle-width: 320px;
    margin-right: 30px
  }
}

@media screen and (max-width:767px) {
  .p-front__about-image {
    --about-circle-height: 140px;
    --about-circle-width: 140px;
    margin: 0 auto 26px
  }
}

@media screen and (max-width:365px) {
  .p-front__about-image {
    --about-circle-height: 130px;
    --about-circle-width: 130px
  }
}

.p-front__about-image:after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 10;
  height: 100%;
  background-color: #2A92B7;
  transition: all .6s .3s ease-in-out
}

.p-front__about-image > span {
  position: absolute;
  font-size: 3rem;
  top: -10%;
  left: -30%;
  z-index: 1;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-weight: 700;
  color: #E85382;
  text-shadow: 1px 1px 0 white, -1px 1px 0 white, 1px -1px 0 white, -1px -1px 0 white;
  transition: all .4s 1s
}

@media screen and (max-width:1280px) {
  .p-front__about-image>span {
    top: 100px;
    right: 60px
  }
}

@media screen and (max-width:960px) {
  .p-front__about-image>span {
    top: 70px;
    right: 30px;
    font-size: 1.2rem
  }
}

@media screen and (max-width:767px) {
  .p-front__about-image>span {
    top: -20px;
    left: -70px
  }
}

.p-front__about-image>div {
  position: relative;
  z-index: 1
}

.p-front__about-content {
  margin-right: 30px
}

@media screen and (max-width:1280px) {
  .p-front__about-content {
    max-width: 345px
  }
}

@media screen and (max-width:960px) {
  .p-front__about-content {
    flex: 1;
    margin-right: 0
  }
}

@media screen and (max-width:767px) {
  .p-front__about-content {
    max-width: 300px;
    margin: 0 auto
  }
}

.p-front__about-heading {
  font-size: 4rem;
  line-height: 1.7;
  letter-spacing: .05em
}
.p-front__about-heading > span {
  font-size: 1.8rem;
  line-height: 1.2;
  letter-spacing: .05em
}
.p-front__about-heading > span + span {
  display: block;
  font-size: 1.4rem;
  line-height: 1.2;
  letter-spacing: .05em
}

@media screen and (max-width:960px) {
  .p-front__about-heading {
    font-size: 3rem
  }
}

@media screen and (max-width:767px) {
  .p-front__about-heading {
    font-size: 2rem
  }
}

.p-front__about-text {
  margin: 17px 0 45px
}

@media screen and (max-width:960px) {
  .p-front__about-text {
    margin: 17px 0 30px
  }
}

.p-front__about-text p {
  line-height: 2.4
}

@media screen and (max-width:960px) {
  .p-front__about-text p {
    line-height: 2
  }
}

@media screen and (max-width:767px) {
  .p-front__about-text p {
    font-size: 1.3rem;
    -webkit-font-feature-settings: "palt";
    font-feature-settings: "palt"
  }
}

.p-front__service {
  margin: 155px 0 100px
}

@media screen and (max-width:960px) {
  .p-front__service {
    margin: 80px 0
  }
}

@media screen and (max-width:767px) {
  .p-front__service {
    margin: 60px 0 65px
  }
}

.p-front__service-section+.p-front__service-section {
  margin-top: 100px
}

.p-front__service-section+.p-front__service-section[data-section=service] {
  margin-top: 140px
}

@media screen and (max-width:960px) {
  .p-front__service-section+.p-front__service-section[data-section=service] {
    margin-top: 120px
  }
}

@media screen and (max-width:767px) {
  .p-front__service-section+.p-front__service-section[data-section=service] {
    margin-top: 65px
  }
}

.p-front__service-section-lead {
  margin-top: 23px
}

.p-front__service-section-lead p {
  line-height: 2.1
}

@media screen and (max-width:960px) {
  .p-front__service-section-lead p {
    line-height: 1.8
  }
}

@media screen and (max-width:767px) {
  .p-front__service-section-lead p {
    letter-spacing: 0
  }
}

.p-front__service-area {
  display: flex;
  align-items: center;
  margin-top: 90px
}

@media screen and (max-width:767px) {
  .p-front__service-area {
    display: block;
    max-width: 315px;
    margin: 40px auto 0
  }
}

@media screen and (max-width:374px) {
  .p-front__service-area {
    max-width: 260px
  }
}

.p-front__service-area-content {
  order: 1;
  margin: 72px 25px 0 0
}

@media screen and (max-width:767px) {
  .p-front__service-area-content {
    margin: 25px 0 0
  }
}

.p-front__service-area-item {
  position: relative;
  z-index: 1;
  width: 280px;
  --area-padding: 30px;
  text-align: center;
  border: 2px solid #000;
  border-radius: 5px
}

@media screen and (max-width:767px) {
  .p-front__service-area-item {
    width: 200px;
    margin-left: auto;
    --area-padding: 20px;
    letter-spacing: 0
  }
}

.p-front__service-area-item dt {
  padding: 7px var(--area-padding) 11px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  background-color: #000
}

@media screen and (max-width:767px) {
  .p-front__service-area-item dt {
    font-size: 1.4rem
  }
}

.p-front__service-area-item dd {
  padding: 14px var(--area-padding) 16px;
  background-color: #fff
}

@media screen and (max-width:767px) {
  .p-front__service-area-item dd {
    font-size: 1.2rem
  }
}

.p-front__service-area-item dd ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center
}

.p-front__service-area-item dd ul li {
  position: relative
}

.p-front__service-area-item dd ul li:after {
  content: "・"
}

.p-front__service-area-item dd ul li:last-child:after {
  display: none
}

.p-front__service-area-item+.p-front__service-area-item {
  margin-top: 50px
}

@media screen and (max-width:767px) {
  .p-front__service-area-item+.p-front__service-area-item {
    position: relative;
    margin-top: 15px
  }
  .p-front__service-area-item+.p-front__service-area-item:before {
    content: "";
    position: absolute;
    top: 22%;
    left: -64px;
    width: 72px;
    height: 1px;
    background-color: #000
  }
}

@media screen and (max-width:374px) {
  .p-front__service-area-item+.p-front__service-area-item:before {
    left: -36px
  }
}

.p-front__service-area-image {
  order: 2;
  position: relative;
  -webkit-transform: translateX(65px);
  transform: translateX(65px)
}

@media screen and (max-width:960px) {
  .p-front__service-area-image {
    -webkit-transform: translateX(45px);
    transform: translateX(45px)
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image {
    width: 197px;
    margin: 0 auto;
    -webkit-transform: translateX(5px);
    transform: translateX(5px)
  }
}

.p-front__service-area-image:before {
  content: "";
  position: absolute;
  top: 67.5%;
  left: -99px;
  width: 120px;
  height: 2px;
  background-color: #000
}

@media screen and (max-width:960px) {
  .p-front__service-area-image:before {
    top: 70.5%;
    left: -109px
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image:before {
    top: initial;
    bottom: -186px;
    left: -11px;
    width: 1px;
    height: 230px
  }
}

.p-front__service-area-image:after {
  content: "";
  position: absolute;
  top: 62%;
  left: 10px;
  width: 72px;
  height: 2px;
  background-color: #000;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg)
}

@media screen and (max-width:960px) {
  .p-front__service-area-image:after {
    top: 64%;
    left: 0
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image:after {
    top: 67%;
    left: -19px;
    width: 58px;
    height: 1px;
    -webkit-transform: rotate(-44deg);
    transform: rotate(-44deg)
  }
}

.p-front__service-area-image span {
  position: relative;
  display: block
}

.p-front__service-area-image span:before {
  content: "";
  position: absolute;
  top: 42.4%;
  left: -90px;
  width: 230px;
  height: 2px;
  background-color: #000
}

@media screen and (max-width:960px) {
  .p-front__service-area-image span:before {
    width: 200px
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image span:before {
    left: 67px;
    width: 80px;
    height: 1px
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image span:after {
    content: "";
    position: absolute;
    top: 42.4%;
    left: 146px;
    width: 1px;
    height: 137px;
    background-color: #000
  }
}

@media screen and (max-width:960px) {
  .p-front__service-area-image img {
    width: 380px;
    height: auto
  }
}

@media screen and (max-width:767px) {
  .p-front__service-area-image img {
    width: auto
  }
}

.p-front__service-section-label {
  position: relative;
  --sevice-label-width: 315px;
  margin-top: 65px
}

@media screen and (max-width:960px) {
  .p-front__service-section-label {
    --sevice-label-width: 330px
  }
}

@media screen and (max-width:767px) {
  .p-front__service-section-label {
    --sevice-label-width: 230px;
    margin-top: 35px;
    display: flex;
    justify-content: flex-end;
  }
}

.p-front__service-section-label:after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  width: calc(100% - var(--sevice-label-width) - var(--service-label-border-margin));
  height: 2px;
  --service-label-border-margin: 15px;
  margin-left: var(--service-label-border-margin);
  background-color: #2A92B7
}

@media screen and (max-width:767px) {
  .p-front__service-section-label:after {
    display: none;
  }
}

.--online::before {
  content: "";
  position: absolute;
  background-image: url(../images/icon-online.svg);
  background-repeat: no-repeat;
  height: 100px;
  width: 100px;
  right: 20rem;
}

@media screen and (max-width:767px) {
  .--online::before {
    right: 0;
    top: -5rem;
    width: 75px;
  }
}
.--oto_camp::before {
  content: "";
  position: absolute;
  background-image: url(../images/icon-oto.svg);
  background-repeat: no-repeat;
  height: 100px;
  width: 100px;
  left: 20rem;
}

@media screen and (max-width:767px) {
  .--oto_camp::before {
    left: unset;
    right: 0;
    top: -5rem;
    width: 75px;
  }
}
.--oto_flow::before {
  content: "";
  position: absolute;
  background-image: url(../images/icon-oto.svg);
  background-repeat: no-repeat;
  height: 100px;
  width: 100px;
  right: 5rem;
}

@media screen and (max-width:767px) {
  .--oto_flow::before {
    right: 0;
    top: -5rem;
    width: 75px;
  }
}

.p-front__service-section-label span {
  display: inline-block;
  width: var(--sevice-label-width);
  padding: 10px 20px 15px;
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  color: #fff;
  background-color:#2A92B7;
  border-radius: 60px
}

@media screen and (max-width:960px) {
  .p-front__service-section-label span {
    padding: 10px 15px 16px;
    font-size: 2rem
  }
}

@media screen and (max-width:767px) {
  .p-front__service-section-label span {
    padding: 6px 15px 8px;
    font-size: 1.5rem;
    letter-spacing: 0
  }
}

.p-front__service-wrap+.p-front__service-section-label {
  margin-top: 120px
}

@media screen and (max-width:767px) {
  .p-front__service-wrap+.p-front__service-section-label {
    margin-top: 80px
  }
}

.p-front__service-wrap {
  display: flex;
  justify-content: space-between;
  margin-top: 35px
}

@media screen and (max-width:767px) {
  .p-front__service-wrap {
    display: block
  }
}

.p-front__service-wrap[data-wrap=kojin] {
  margin-top: 50px
}

.p-front__service-card {
  width: calc(50% - 22px)
}

@media screen and (max-width:767px) {
  .p-front__service-card {
    width: 100%;
    max-width: 400px;
    margin: 0 auto
  }
}

@media screen and (max-width:767px) {
  .p-front__service-card+.p-front__service-card {
    margin-top: 50px
  }
}

.p-front__service-card-image {
  margin-bottom: 22px;
  text-align: center;
  overflow: hidden
}

@media screen and (max-width:767px) {
  .p-front__service-card-image {
    margin-bottom: 25px
  }
}

.p-front__service-card-image[data-loading=delay] img {
  transition: all .4s .7s ease-out
}

.p-front__service-card-image[data-view=true] img {
  -webkit-transform: translateY(0);
  transform: translateY(0);
  opacity: 1
}

.p-front__service-card-image img {
  -webkit-transform: translateY(50px);
  transform: translateY(50px);
  opacity: 0;
  transition: all .4s .4s ease-out
}

@media screen and (max-width:960px) {
  .p-front__service-card-image img {
    width: 200px;
    height: auto
  }
}

.p-front__service-card-heading h3 {
  font-size: 2.4rem;
  line-height: 1.6
}

@media screen and (max-width:960px) {
  .p-front__service-card-heading h3 {
    font-size: 2.2rem
  }
}

@media screen and (max-width:767px) {
  .p-front__service-card-heading h3 {
    font-size: 2rem
  }
}

.p-front__service-card-heading h3 small {
  font-size: 1.6rem;
  font-weight: 700
}

@media screen and (max-width:767px) {
  .p-front__service-card-heading h3 small {
    font-size: 1.3rem
  }
}

.p-front__service-card-heading h3 .p-front__service-card-list-num {
  margin-right: 10px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  line-height: 1.25;
  letter-spacing: .05em;
  color: #E85382;
}

@media screen and (max-width:767px) {
  .p-front__service-card-heading h3 .p-front__service-card-list-num {
    
  }
}

.p-front__service-card-lead {
  margin-top: 10px;
  line-height: 2
}

@media screen and (max-width:960px) {
  .p-front__service-card-lead {
    min-height: 81px;
    font-size: 1.4rem;
    letter-spacing: 0
  }
}

@media screen and (max-width:767px) {
  .p-front__service-card-lead {
    min-height: 100%
  }
}

_::-webkit-full-page-media, _:future, :root .p-front__service-card-lead {
  min-height: 81px
}

@media screen and (max-width:767px) {
  _::-webkit-full-page-media, _:future, :root .p-front__service-card-lead {
    min-height: 100%
  }
}

.p-front__service-card-price {
  display: flex;
  align-items: center;
  margin: 5px 0 15px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif
}

@media screen and (max-width:767px) {
  .p-front__service-card-price {
    margin: 5px 0 8px
  }
}

.p-front__service-card-price dt {
  margin-right: 6px;
  font-size: 1.3rem;
  line-height: 2.2
}

@media screen and (max-width:960px) {
  .p-front__service-card-price dt {
    margin-right: 8px
  }
}

.p-front__service-card-price dd {
  font-size: 2.8rem;
  line-height: 2.1;
  letter-spacing: 0
}

@media screen and (max-width:960px) {
  .p-front__service-card-price dd {
    font-size: 2.6rem;
    font-weight: 700
  }
}

.p-front__404 {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50vh;
  min-height: 450px;
  width: 100vw;
  text-align: center
}

@media screen and (max-width:767px) {
  .p-front__404 {
    height: 100vh
  }
}

.p-front__404>div {
  width: 100vw;
  position: relative
}

.p-front__404 h1 {
  margin: 0 0 30px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  font-size: 7rem;
  line-height: 1.4
}

.p-front__404 h2 {
  margin-bottom: 45px;
  font-size: 1.8rem
}

@media screen and (max-width:767px) {
  .p-front__404 h2 {
    font-size: 1.6rem
  }
}

.p-front__404 .c-button a {
  margin: 0 auto
}

.p-front__404 div[data-loading=soccer] {
  position: absolute;
  bottom: -80px;
  width: 100%;
  -webkit-animation: transflate-anime 4.2s linear infinite;
  animation: transflate-anime 4.2s linear infinite
}

@-webkit-keyframes transflate-anime {
  0% {
    -webkit-transform: translateX(100%);
    transform: translateX(100%)
  }
  100% {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%)
  }
}

@keyframes transflate-anime {
  0% {
    -webkit-transform: translateX(100%);
    transform: translateX(100%)
  }
  100% {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%)
  }
}

.p-front__404 div[data-loading=soccer] span {
  display: block;
  -webkit-animation: rotate-anime 3.2s linear infinite;
  animation: rotate-anime 3.2s linear infinite
}

@-webkit-keyframes rotate-anime {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0)
  }
  100% {
    -webkit-transform: rotate(-900deg);
    transform: rotate(-900deg)
  }
}

@keyframes rotate-anime {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0)
  }
  100% {
    -webkit-transform: rotate(-900deg);
    transform: rotate(-900deg)
  }
}

.p-front__404 div[data-loading=soccer] span img {
  width: 45px;
  height: auto
}

.p-service {
  position: relative;
  margin: 155px 0 100px;
  padding: 130px 30px 100px;
  border: 5px solid #2A92B7;
  border-radius: 10px
}

@media screen and (max-width:960px) {
  .p-service {
    padding: 80px 30px 100px
  }
}

@media screen and (max-width:767px) {
  .p-service {
    padding: 50px 30px;
    border: none;
    border-top: 3px solid #2A92B7;
    border-bottom: 3px solid #2A92B7;
    border-radius: 0;
    width: 100vw;
    -webkit-transform: translateX(-30px);
    transform: translateX(-30px)
  }
}

@media screen and (max-width:365px) {
  .p-service {
    padding: 50px 20px;
    -webkit-transform: translateX(-20px);
    transform: translateX(-20px)
  }
}

.p-service[data-view=true]:before {
  -webkit-clip-path: inset(0);
  clip-path: inset(0)
}

.p-service:before {
  content: "";
  position: absolute;
  background-repeat: no-repeat;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  transition: -webkit-clip-path .5s .5s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path .5s .5s cubic-bezier(.37, 0, .63, 1);
  transition: clip-path .5s .5s cubic-bezier(.37, 0, .63, 1), -webkit-clip-path .5s .5s cubic-bezier(.37, 0, .63, 1);
  transition-property: -webkit-clip-path;
  transition-property: clip-path;
  transition-property: clip-path, -webkit-clip-path
}

.p-service[data-page=entirety]:before {
  top: -314px;
  right: 138px;
  --service-illust-width: 355px;
  --service-illust-height: 355px;
  width: var(--service-illust-width);
  height: var(--service-illust-height);
  background-image: url(../images/course_01_img.svg);
  background-size: var(--service-illust-width) var(--service-illust-height)
}

@media screen and (max-width:960px) {
  .p-service[data-page=entirety]:before {
    top: -205px;
    right: 30px;
    --service-illust-width: 230px;
    --service-illust-height: 230px
  }
}

@media screen and (max-width:767px) {
  .p-service[data-page=entirety]:before {
    top: -128px;
    right: 25px;
    --service-illust-width: 154px;
    --service-illust-height: 141px
  }
}

@media screen and (max-width:365px) {
  .p-service[data-page=entirety]:before {
    right: 0
  }
}

.p-service__label {
  position: absolute;
  left: 52px;
  top: -58px;
  padding: 25px;
  background-color: #fff;
  color: #E85382;
}

@media screen and (max-width:960px) {
  .p-service__label {
    left: 30px;
    padding: 0 20px
  }
}

@media screen and (max-width:767px) {
  .p-service__label {
    top: -70px;
    padding: 0
  }
}

.p-service__label span {
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0
}

@media screen and (max-width:767px) {
  .p-service__label span {
  }
}

.p-service__title {
  font-size: 3.6rem;
  line-height: 1.6;
  text-align: center
}

@media screen and (max-width:960px) {
  .p-service__title {
    font-size: 3.2rem
  }
}

@media screen and (max-width:767px) {
  .p-service__title {
    font-size: 2.4rem;
    letter-spacing: 0
  }
}

.p-service__title br {
  display: none
}

@media screen and (max-width:371px) {
  .p-service__title br {
    display: block
  }
}

.p-service__lead {
  margin: 42px 0 120px;
  text-align: center
}

@media screen and (max-width:960px) {
  .p-service__lead {
    margin: 42px 0 80px;
    text-align: left
  }
}
.--text-left{
  text-align: left!important;
}
@media screen and (max-width:767px) {
  .p-service__lead {
    margin: 20px 0 55px
  }
}

.p-service__lead p {
  font-weight: 400;
  line-height: 2
}

.p-service__heading {
  margin-bottom: 70px;
  position: relative;
}

@media screen and (max-width:960px) {
  .p-service__heading {
    margin-bottom: 45px
  }
}

@media screen and (max-width:767px) {
  .p-service__heading {
    margin-bottom: 30px
  }
}

.p-service__heading span {
  display: inline-block;
  margin-bottom: 13px;
  font-family: "Montserrat", "Helvetica Neue", Helvetica, "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
  line-height: 1.7;
  letter-spacing: .07em;
  color: #E85382
}
.p-service[data-page=contact]:before {
  top: -301px;
  right: 162px;
  --service-illust-width: 274px;
  --service-illust-height: 317px;
  width: var(--service-illust-width);
  height: var(--service-illust-height);
  background-image: url(../images/contact_top_img.svg);
  background-size: var(--service-illust-width) var(--service-illust-height);
}
.p-service__heading h3 {
  font-size: 2.6rem;
  line-height: 1.4;
  letter-spacing: 0
}

@media screen and (max-width:960px) {
  .p-service__heading h3 {
    font-size: 2.4rem
  }
}

@media screen and (max-width:767px) {
  .p-service__heading h3 {
    font-size: 2.2rem
  }
  .p-service[data-page=contact]:before {
    top: -139px;
    right: 20px;
    --service-illust-width: 145px;
    --service-illust-height: 145px;
  }
}

.p-service__area {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 93px
}

@media screen and (max-width:960px) {
  .p-service__area {
    margin-bottom: 80px
  }
}

@media screen and (max-width:767px) {
  .p-service__area {
    margin-bottom: 40px
  }
}

.p-service__area-item {
  --area-item-padding: 128px;
  width: calc(25% - var(--area-item-padding)/4);
  margin-right: calc(var(--area-item-padding)/3);
  margin-bottom: 28px;
  text-align: center
}

@media screen and (max-width:960px) {
  .p-service__area-item {
    --area-item-padding: 90px
  }
}

@media screen and (max-width:767px) {
  .p-service__area-item {
    --area-item-padding: 30px;
    width: calc(33.3333333333% - var(--area-item-padding)/3);
    margin-right: calc(var(--area-item-padding)/2);
    margin-bottom: 18px
  }
}

.p-service__area-item:nth-child(4n) {
  margin-right: 0
}

@media screen and (max-width:767px) {
  .p-service__area-item:nth-child(4n) {
    margin-right: calc(var(--area-item-padding)/2)
  }
}

@media screen and (max-width:767px) {
  .p-service__area-item:nth-child(3n) {
    margin-right: 0
  }
}

.p-service__area-item>span {
  display: block;
  margin-top: 15px;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4
}

@media screen and (max-width:767px) {
  .p-service__area-item>span {
    font-size: 1.5rem
  }
}

.p-service__area-item small {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.4
}

@media screen and (max-width:767px) {
  .p-service__area-item small {
    margin-top: 4px;
    font-size: 1.1rem;
    letter-spacing: 0;
    white-space: nowrap
  }
}

.p-service__area-item-image {
  position: relative;
  --area-icon-height: 73px;
  --area-icon-width: 82px;
  padding-top: 100%;
  background-color: #2A92B7;
  border-radius: 100%
}

@media screen and (max-width:767px) {
  .p-service__area-item-image {
    --area-icon-height: 43px;
    --area-icon-width: 49px
  }
}

.p-service__area-item-image img {
  position: absolute;
  top: calc(50% - var(--area-icon-height)/2);
  left: calc(50% - var(--area-icon-width)/2)
}

@media screen and (max-width:767px) {
  .p-service__area-item-image img {
    width: var(--area-icon-width);
    height: var(--area-icon-height)
  }
}

.p-service__apartment dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 280px;
  font-weight: 700
}

@media screen and (max-width:960px) {
  .p-service__apartment dl dt {
    width: 200px
  }
}

@media screen and (max-width:767px) {
  .p-service__apartment dl dt {
    width: 100%
  }
}

.p-service__apartment-list dl {
  border-top: 2px solid #2A92B7;
  border-right: 2px solid #2A92B7;
  border-bottom: 2px solid #2A92B7;
  border-radius: 5px
}

.p-service__apartment-list dl>div {
  display: flex
}

.p-service__apartment-list dl>div+div dt {
  border-top: 2px solid #fff
}

.p-service__apartment-list dl>div+div dd {
  border-top: 2px solid #2A92B7
}

.p-service__apartment-list dl>div dt {
  font-size: 2rem;
  line-height: 1.4;
  color: #fff;
  background-color: #2A92B7
}

@media screen and (max-width:960px) {
  .p-service__apartment-list dl>div dt {
    font-size: 1.8rem
  }
  .p-service__apartment-list dl>div+div dd{
    border-top: none;
  }
}

@media screen and (max-width:767px) {
  .p-service__apartment-list dl>div{
    flex-direction: column;
    align-items: center;
  }
  .p-service__apartment-list dl{
    border-left: 2px solid #2A92B7;
  }
  
  .p-service__apartment-list dl>div dt {
    font-size: 1.4rem;
    padding: 12px 15px 18px;
  }
}

.p-service__apartment-list dl>div dd {
  flex: 1;
  padding: 24px 25px 29px 40px;
  font-size: 1.8rem;
  line-height: 1.4;
  letter-spacing: 0
}

@media screen and (max-width:960px) {
  .p-service__apartment-list dl>div dd {
    padding: 22px 20px 28px 25px
  }
}

@media screen and (max-width:767px) {
  .p-service__apartment-list dl>div dd {
    padding: 12px 15px 18px;
    font-size: 1.4rem
  }
}

.p-service__apartment-frequency {
  display: flex;
  margin-top: 42px;
  border: 2px solid #000;
  border-radius: 5px
}

@media screen and (max-width:767px) {
  .p-service__apartment-frequency {
    margin-top: 30px
  }
}

.p-service__apartment-frequency dt {
  font-size: 1.8rem
}

@media screen and (max-width:767px) {
  .p-service__apartment-frequency dt {
    font-size: 1.4rem
  }
}

.p-service__apartment-frequency dd {
  flex: 1;
  padding: 18px 25px 23px 40px;
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: 400;
  border-left: 2px solid #000
}

@media screen and (max-width:960px) {
  .p-service__apartment-frequency dd {
    padding: 20px 20px 26px 25px
  }
}

@media screen and (max-width:767px) {
  .p-service__apartment-frequency dd {
    padding: 12px 15px 18px
  }
}

.p-service__apartment-frequency dd em {
  margin-right: 5px;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .06em
}

@media screen and (max-width:767px) {
  .p-service__apartment-frequency dd em {
    font-size: 1.6rem
  }
}

.p-service__aircon-list-item {
  display: flex;
  align-items: center
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-item {
    display: block;
    max-width: 340px;
    margin: 0 auto
  }
}

.p-service__aircon-list-item+.p-service__aircon-list-item {
  margin-top: 80px
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-item+.p-service__aircon-list-item {
    margin-top: 60px
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-item+.p-service__aircon-list-item {
    margin: 60px auto 0
  }
}

.p-service__aircon-list-image {
  display: flex;
  align-items: center;
  justify-content: center;
  --aircon-icon-size: 160px;
  width: var(--aircon-icon-size);
  height: var(--aircon-icon-size);
  margin-right: 50px;
  background-color: #000;
  border-radius: 50%
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-image {
    --aircon-icon-size: 120px;
    margin-right: 30px
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-image {
    margin: 0 auto
  }
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-image img {
    width: 60px;
    height: auto
  }
}

.p-service__aircon-list-content {
  flex: 1
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-content {
    margin-top: 20px
  }
}

.p-service__aircon-list-content h4 {
  font-size: 2.2rem;
  line-height: 1.4
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-content h4 {
    font-size: 2rem
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-content h4 {
    font-size: 1.8rem;
    text-align: center
  }
}

.p-service__aircon-list-content p {
  margin-top: 20px;
  line-height: 1.4;
  font-weight: 400
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-content p {
    margin-top: 15px
  }
}

.p-service__aircon-list-content small {
  display: inline-block;
  margin-top: 5px;
  font-size: 1.3rem;
  font-weight: 400
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-content small {
    margin-top: 10px;
    font-size: 1.1rem
  }
}

.p-service__aircon-list-info {
  display: flex;
  align-items: center;
  margin-top: 17px
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-info {
    margin-top: 12px
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info {
    display: block
  }
}

.p-service__aircon-list-info>div {
  display: flex;
  align-items: center;
  font-weight: 700
}

.p-service__aircon-list-info>div+div {
  position: relative;
  margin-left: 12px
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info>div+div {
    margin: 5px 0 0
  }
}

.p-service__aircon-list-info>div+div:before {
  content: "|";
  margin-right: 18px;
  font-size: 1.4rem
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info>div+div:before {
    display: none
  }
}

.p-service__aircon-list-info>div dt {
  font-size: 1.4rem;
  line-height: 2
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-info>div dt {
    font-size: 1.4rem
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info>div dt {
    font-size: 1.2rem;
    line-height: 1.6
  }
}

.p-service__aircon-list-info>div dd {
  position: relative;
  font-size: 1.8rem;
  line-height: 2
}

@media screen and (max-width:960px) {
  .p-service__aircon-list-info>div dd {
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info>div dd {
    line-height: 1.6
  }
}

.p-service__aircon-list-info>div dd:before {
  content: "：";
  display: inline-block;
  margin: 0 3px;
  font-size: 1.4rem;
  -webkit-transform: translateY(-1px);
  transform: translateY(-1px)
}

.p-service__aircon-list-info>div dd span {
  font-size: 1.4rem;
  line-height: 2
}

@media screen and (max-width:767px) {
  .p-service__aircon-list-info>div dd span {
    font-size: 1.2rem;
    line-height: 1.6
  }
}

.p-service__aircon-note {
  margin-top: 70px;
  font-weight: 400
}

@media screen and (max-width:960px) {
  .p-service__aircon-note {
    margin-top: 45px
  }
}

.p-service__option {
  margin-bottom: 110px
}

@media screen and (max-width:767px) {
  .p-service__option {
    margin-bottom: 65px
  }
}
.c-wrapper__small > .p-service__option:last-child{
  margin-bottom: 0;
}

.p-service__option-item {
  display: flex;
  align-items: center
}

@media screen and (max-width:767px) {
  .p-service__option-item {
    position: relative;
    display: block
  }
}

.p-service__option-item+.p-service__option-item {
  margin-top: 50px
}

@media screen and (max-width:767px) {
  .p-service__option-item+.p-service__option-item {
    margin-top: 52px
  }
}

.p-service__option-item-image {
  display: flex;
  align-items: center;
  justify-content: center;
  --option-icon-size: 140px;
  width: var(--option-icon-size);
  height: var(--option-icon-size);
  margin-right: 33px;
  border: 4px solid #2A92B7;
  border-radius: 100%
}

@media screen and (max-width:960px) {
  .p-service__option-item-image {
    --option-icon-size: 120px;
    margin-right: 30px
  }
}

@media screen and (max-width:767px) {
  .p-service__option-item-image {
    --option-icon-size: 90px;
    margin-right: 20px
  }
}

@media screen and (max-width:767px) {
  .p-service__option-item-image img {
    width: 50px;
    height: auto
  }
}

.p-service__option-item-content {
  flex: 1
}

.p-service__option-item-content h4 {
  font-size: 2.2rem;
  line-height: 1.4
}

@media screen and (max-width:767px) {
  .p-service__option-item-content h4 {
    position: absolute;
    top: 0;
    left: 115px;
    display: flex;
    align-items: center;
    height: 90px;
    max-width: calc(100% - 115px);
    margin-left: auto;
    font-size: 1.8rem
  }
}

.p-service__option-item-content p {
  margin-top: 18px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0
}

@media screen and (max-width:767px) {
  .p-service__option-item-content p {
    line-height: 1.8
  }
}

.p-service__option-item-content ul {
  margin-top: 15px;
  font-weight: 400
}

.p-service__option-item-content ul li {
  line-height: 1.6
}

.p-service__option-item-content a, .p-service__option-item-content div.js-modal-trigger {
  display: inline-block;
  margin-top: 19px;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1
}

.p-service__option-item-content a button, .p-service__option-item-content div.js-modal-trigger button {
  text-decoration: underline
}

.p-service__option-item-content a button:hover, .p-service__option-item-content div.js-modal-trigger button:hover {
  text-decoration: none
}

.p-service__option-item-content a {
  text-decoration: underline
}

.p-service__option-item-content a:hover {
  text-decoration: none
}

.p-service__price-table-heding {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 10px
}

@media screen and (max-width:767px) {
  .p-service__price-table-heding {
    margin-bottom: 15px;
    flex-direction: column;
  }
}

.p-service__price-table-heding h4 {
  font-size: 2rem;
  line-height: 2
}

@media screen and (max-width:767px) {
  .p-service__price-table-heding h4 {
    line-height: 1.6
  }
}

.p-service__price-table-heding h4 span {
  display: inline-block;
  margin-left: 15px;
  font-size: 1.6rem;
  line-height: 2;
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px)
}

@media screen and (max-width:767px) {
  .p-service__price-table-heding h4 span {
    display: block;
    margin: 0;
    font-size: 1.2rem
  }
}

.p-service__price-table-heding small {
  font-size: 1.3rem;
  font-weight: 400
}

.p-service__price-table+.p-service__price-table {
  margin-top: 50px
}

.p-service__price-table table {
  width: 100%;
  text-align: center;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 5px
}

@media screen and (max-width:767px) {
  .p-service__price-table table thead {
    width: 50%;
    float: left;
    display: block
  }
  .p-service__price-table table thead tr {
    display: block
  }
  .p-service__price-table table thead tr th {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60px
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table tbody {
    width: 50%;
    float: left;
    display: block
  }
  .p-service__price-table table tbody tr {
    display: block
  }
  .p-service__price-table table tbody tr td {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60px
  }
}

.p-service__price-table table tr:first-child th:first-child {
  border-radius: 5px 0 0
}

.p-service__price-table table tr:first-child th:last-child {
  border-radius: 0 5px 0 0
}

@media screen and (max-width:767px) {
  .p-service__price-table table tr:first-child th:last-child {
    border-radius: 0 0 0 5px
  }
}

.p-service__price-table table tr:last-child td:first-child {
  border-radius: 0 0 0 5px
}

@media screen and (max-width:767px) {
  .p-service__price-table table tr:last-child td:first-child {
    border-top: 2px solid #000;
    border-radius: 0 5px 0 0
  }
}

.p-service__price-table table tr:last-child td:last-child {
  border-radius: 0 0 5px
}

.p-service__price-table table :is(th, td) {
  line-height: 2;
  letter-spacing: 0
}

.p-service__price-table table th {
  padding: 20px 10px;
  font-size: 1.5rem;
  color: #fff;
  background-color: #2A92B7;
  border-right: 2px solid #fff
}

@media screen and (max-width:960px) {
  .p-service__price-table table th {
    padding: 15px 5px
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table th {
    padding: 10px 5px;
    border-right: none;
    border-bottom: 2px solid #fff
  }
}

@media screen and (max-width:365px) {
  .p-service__price-table table th {
    font-size: 1.4rem
  }
}

.p-service__price-table table th:last-child {
  border-right: none
}

@media screen and (max-width:767px) {
  .p-service__price-table table th:last-child {
    border-bottom: none
  }
}

.p-service__price-table table td {
  padding: 17px 10px;
  font-size: 1.7rem;
  border-right: 2px solid #2A92B7;
  border-bottom: 2px solid #2A92B7
}

@media screen and (max-width:960px) {
  .p-service__price-table table td {
    padding: 15px 5px;
    font-size: 1.6rem
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table td {
    padding: 10px 5px
  }
}

@media screen and (max-width:365px) {
  .p-service__price-table table td {
    font-size: 1.4rem
  }
}

.p-service__price-table table td:first-child {
  border-left: 2px solid #2A92B7
}

@media screen and (max-width:767px) {
  .p-service__price-table table td:first-child {
    border-left: none
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table[data-table=option] tbody, .p-service__price-table table[data-table=multiple] tbody {
    width: 66.66%
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table[data-table=option] tbody tr, .p-service__price-table table[data-table=multiple] tbody tr {
    width: 50%;
    float: left
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table[data-table=option] tbody tr td:first-child, .p-service__price-table table[data-table=multiple] tbody tr td:first-child {
    font-size: 1.4rem;
    border-top: 2px solid #000
  }
}

@media screen and (max-width:365px) {
  .p-service__price-table table[data-table=option] tbody tr td:first-child, .p-service__price-table table[data-table=multiple] tbody tr td:first-child {
    font-size: 1.2rem
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table[data-table=option] thead, .p-service__price-table table[data-table=multiple] thead {
    width: 33.33%
  }
}

@media screen and (max-width:767px) {
  .p-service__price-table table[data-table=multiple] tr td:last-child {
    font-size: 1.2rem;
    white-space: nowrap
  }
}

.p-service__price-table table[data-table=option] tbody tr td:first-child {
  font-weight: 700
}

.p-service__price-note {
  margin-top: 47px;
  padding-left: 1em;
  text-indent: -1em;
  font-weight: 400
}

@media screen and (max-width:960px) {
  .p-service__price-note {
    margin-top: 30px
  }
}

@media screen and (max-width:767px) {
  .p-service__price-note {
    margin-top: 10px;
    font-size: 1.2rem;
    line-height: 1.6
  }
}

.p-service__price-wrap {
  display: flex
}

@media screen and (max-width:767px) {
  .p-service__price-wrap {
    display: block
  }
}

.p-service__price-wrap-single {
  width: 330px;
  margin-right: 60px;
  text-align: center;
  border: 2px solid #000;
  border-radius: 5px
}

@media screen and (max-width:960px) {
  .p-service__price-wrap-single {
    margin-right: 30px
  }
}

@media screen and (max-width:767px) {
  .p-service__price-wrap-single {
    width: 100%;
    max-width: 330px;
    margin-right: 0
  }
}

.p-service__price-wrap-single dt {
  width: 100%;
  padding: 13px;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2;
  color: #fff;
  background-color: #000
}

@media screen and (max-width:767px) {
  .p-service__price-wrap-single dt {
    padding: 6px 10px 10px;
    font-size: 1.6rem
  }
}

.p-service__price-wrap-single dt span {
  display: inline-block;
  margin-left: 2px;
  font-size: 1.6rem;
  line-height: 2
}

@media screen and (max-width:767px) {
  .p-service__price-wrap-single dt span {
    font-size: 1.4rem
  }
}

.p-service__price-wrap-single dd {
  padding: 4px 10px 7px;
  font-size: 2rem;
  line-height: 2
}

@media screen and (max-width:767px) {
  .p-service__price-wrap-single dd {
    font-size: 1.6rem
  }
}

.p-service__price-wrap-single+.p-service__price-wrap-single {
  margin-right: 0
}

@media screen and (max-width:767px) {
  .p-service__price-wrap-single+.p-service__price-wrap-single {
    margin-top: 15px
  }
}
.cf7-cf-turnstile{
  display: flex;
  justify-content: center;
  padding: 4rem 0 0;
}