/* -------------------------------------------------- */
/* global */

html {
  font-size: 62.5%;
}
body {
  color: var(--black);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  letter-spacing: .1em;
  line-height: 1.4;
}
section {
  padding-block: 100px;
}
p {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 1em;
}
strong {
  font-weight: 900;
}
.container {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 100vh;
  position: relative;
}
.wrapper {
  margin: auto;
  max-width: 1000px;
}

/* component */

.d-f {
  align-items: flex-start;
  display: flex;
  justify-content: flex-start;
}
.d-f.ai-s {
  align-items: stretch;
}
.d-f.ai-c {
  align-items: center;
}
.d-f.ai-fe {
  align-items: flex-end;
}
.d-f.fd-c {
  flex-direction: column;
}
.d-f.fw-w {
  flex-wrap: wrap;
}
.d-f.jc-c {
  justify-content: center;
}
.d-f.jc-sb {
  justify-content: space-between;
}
.d-f.jc-fe {
  justify-content: flex-end;
}
.en {
  font-family: bahnschrift, sans-serif;
}
.hover {
  cursor: pointer;
  transition: opacity .2s;
}
.hover:hover {
  opacity: .66;
}
.pc {
  display: block;
}
.sp {
  display: none;
}

/* -------------------------------------------------- */
/* header */

.header {
  background: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .25);
  height: 60px;
  position: fixed;
  width: 100%;
  z-index: 100;
}
.header .wrapper {
  height: 100%;
}
.header-logo a {
  display: block;
}
.header-logo a img {
  height: 54px;
  width: auto;
}
.header-nav {
  flex-grow: 1;
}
.header-nav ul li {
  font-size: 14px;
  font-weight: 600;
  padding-inline: .75em;
}
.header-nav ul li a {
  color: #1e1e1e;
}
.header-contact a {
  background: #E99000;
  border-radius: 7px;
  height: 44px;
  transition: opacity .2s;
  width: 228px;
}
.header-contact a:hover {
  opacity: .8;
}
.header-contact a img {
  height: 24px;
  width: 24px;
}
.header-contact a div {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  padding-inline: .75em;
}
.header-contact a span {
  background: #fff;
  border-radius: 50%;
  color: #E99000;
  font-size: 10px;
  font-weight: 700;
  height: 34px;
  line-height: 1.2;
  width: 34px;
}

/* -------------------------------------------------- */
/* main */

.main {
  flex-grow: 1;
  padding-top: 60px;
}

/* mv */

.mv {
  background: #f0ebe7 url(../images/mv.webp) no-repeat top right / contain;
  height: 736px;
  position: relative;
}
.mv::before {
  background: linear-gradient(180deg, #77EBFF, var(--blue));
  content: '';
  display: block;
  height: 100%;
  left: 0;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  width: 54.68%;
}
.mv .wrapper {
  height: 100%;
}
.mv-body {
  height: 100%;
  position: relative;
  z-index: 2;
}
.mv-head {
  font-weight: 900;
}
.mv-copy1 {
  animation-timing-function: ease-out;
  animation-delay: 1s;
  animation-duration: .8s;
  background: #fff;
  color: #4FC2E0;
  font-size: 34px;
  transform-origin: bottom left;
}
.mv-copy2 {
  animation-delay: 2s;
  animation-duration: .6s;
  color: #fff;
  font-size: 64px;
  margin-bottom: .75em;
}
.mv-body ul {
  animation-delay: 2.6s;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
}
.mv-body ul li {
  line-height: 1.6;
  margin-block: .25em;
}
.mv-body ul li::before {
  background: url(../images/mv-li.svg) no-repeat 0 0 / 100%;
  content: '';
  display: block;
  height: 24px;
  margin-right: .25em;
  width: 24px;
}
.mv-body ul li em {
  background: linear-gradient(180deg, transparent 85%, var(--yellow) 85%);
  padding-bottom: .1em;
}

/* feature */

.feature-head {
  color: var(--blue);
  font-size: 32px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: 1em;
  text-align: center;
}
.feature-head strong {
  font-size: 48px;
  font-weight: 900;
  display: block;
  margin-top: .1em;
}
.feature-body {
  padding-top: 3em;
}
.feature-body table {
  letter-spacing: .05em;
  line-height: 1.2;
  text-align: center;
  width: 100%;
}
.feature-body table tr th {
  color: #fff;
  font-size: 20px;
  font-weight: 700;
}
.feature-body table thead tr th {
  background: #A1A1A1;
  border: 2px solid transparent;
  border-bottom-color: #fff;
  border-right-color: #fff;
  padding-block: .5em;
  position: relative;
}
.feature-body table thead tr th span {
  background: var(--blue);
  bottom: 0;
  font-size: 36px;
  height: 175%;
  left: 0;
  position: absolute;
  width: 100%;
}
.feature-body table tbody tr th {
  background: var(--blue);
  border: 2px solid transparent;
  border-bottom-color: #fff;
  border-right-color: #fff;
}
.feature-body table tbody tr td {
  border: 2px solid transparent;
  border-bottom-color: #A1A1A1;
  border-right-color: #A1A1A1;
  font-size: 14px;
  font-weight: 400;
  padding-bottom: .25em;
}
.feature-body table tbody tr td:first-of-type {
  border-bottom-color: var(--blue);
  border-right-color: var(--blue);
  font-size: 15px;
}
.feature-body table tbody tr td i {
  color: #A1A1A1;
  display: block;
  font-size: 36px;
  font-weight: 400;
}
.feature-body table tbody tr td:first-of-type i {
  color: #E99000;
  font-size: 45px;
  font-weight: 900;
}
.feature-body table tbody tr:nth-child(6) td:first-of-type i {
  font-size: 24px;
  padding-top: .25em;
}
.feature-body table tbody tr:nth-child(6) td:first-of-type i small {
  display: block;
  font-size: 16px;
}

/* method */

.method {
  padding-block: 0;
}
.method-head {
  background: var(--blue);
  color: #fff;
  font-weight: 900;
  line-height: 1.2;
  padding-top: 50px;
}
.method-head span {
  background: var(--yellow);
  border-radius: 50%;
  color: var(--blue);
  font-size: 36px;
  height: 158px;
  margin-right: 1em;
  position: relative;
  width: 158px;
}
.method-head span::after {
  border: 13px solid transparent;
  border-left-color: var(--yellow);
  border-left-width: 20.5px;
  content: '';
  display: block;
  position: absolute;
  right: -28px;
  top: calc(50% - 13px);
}
.method-head h2 {
  font-size: 36px;
  font-weight: 900;
}
.method-head h2 strong {
  display: block;
  font-size: 56px;
  font-weight: 900;
}
.method-body {
  background: linear-gradient(180deg, var(--blue), #77EBFF);
  padding-top: 70px;
  position: relative;
}
.method-body:last-child {
  padding-bottom: 100px;
}
.method-title {
  color: #fff;
  font-size: 36px;
  font-weight: 900;
  padding-block: 280px 60px;
  position: sticky;
  top: 0;
}
.method-title span {
  color: var(--yellow);
  display: block;
  font-size: 32px;
  font-weight: 700;
}
.method-title span strong {
  font-size: 48px;
}
.method-content {
  background: #fff;
  width: 600px;
}
.method-outer {
  padding: 60px 30px;
}
.method-outer p {
  font-size: 18px;
  letter-spacing: 0;
  line-height: 1.6;
}
.method-outer h4 {
  color: var(--blue);
  font-size: 28px;
  font-weight: 900;
  line-height: 1.2;
  margin-block: 60px .5em;
  text-align: center;
}
.method-inner {
  border: 2px solid var(--blue);
  padding: 20px 30px;
}
.method-inner h5 {
  color: var(--blue);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: .5em;
}
.method-inner h5 span {
  background: var(--blue);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  margin-right: .75em;
  padding: .5em .75em;
}
.method-inner h5 span strong {
  font-size: 20px;
  font-weight: 700;
}
.method-inner img {
  display: block;
  margin-bottom: 15px;
}
.method-inner p {
  line-height: 1.4;
  margin-bottom: 1.5em;
}
.method-inner p + h5 {
  margin-top: 2.5em;
}
.method-body.even .method-title {
  order: 1;
}
.method-body.even .method-content {
  order: 0;
}

/* coach */

.coach-body {
  margin-bottom: 80px;
  position: relative;
}
.coach-head {
  margin-bottom: 150px;
}
.coach-head h2 {
  color: var(--blue);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.2;
  position: relative;
  text-align: center;
  z-index: 2;
}
.coach-head h2 strong {
  font-size: 48px;
  font-weight: 900;
  display: block;
  margin-top: .25em;
}
.coach-head span {
  color: #E2FBFF;
  font-size: 128px;
  font-weight: 700;
  left: 0;
  line-height: 1;
  position: absolute;
  text-align: center;
  top: .3em;
  width: 100%;
  z-index: 1;
}
.coach-body ul {
  position: relative;
  z-index: 2;
}
.coach-body ul li {
  margin-block: 20px;
  text-align: center;
  width: 27.7%;
}
.coach-image {
  margin: auto;
  width: 76.5%;
}
.coach-title {
  color: var(--blue);
  font-size: 36px;
  font-weight: 900;
  line-height: 1;
  margin-block: .5em;
}
.coach-title.fs-30 {
  font-size: 30px;
}
.coach-title.fs-32 {
  font-size: 32px;
}
.coach-title small {
  font-size: 24px;
}
.coach-name {
  background: var(--blue);
  color: #fff;
  font-size: 24px;
  font-weight: 700;
  margin: .25em auto;
  width: 82.3%;
}
.coach-name small {
  font-size: 16px;
}
.coach-body p {
  letter-spacing: .05em;
}
.coach-body p strong {
  color: var(--blue);
  font-weight: 900;
}
.coach-body:nth-child(2) ul li:nth-child(1),
.coach-body:nth-child(2) ul li:nth-child(6) {
  margin-left: 18%;
}
.coach-body:nth-child(2) ul li:nth-child(2),
.coach-body:nth-child(2) ul li:nth-child(7) {
  margin-right: 18%;
}
.coach-message {
  border: 2px solid var(--blue);
  padding: 20px 30px;
}
.coach-message h3 {
  color: var(--blue);
  font-size: 24px;
  font-weight: 900;
  margin-bottom: 1em;
  text-align: center;
}
.coach-photo {
  margin-right: 30px;
  min-width: 260px;
}
.coach-text p {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0;
}
.coach-sign {
  color: var(--blue);
  font-size: 15px;
  font-weight: 800;
  text-align: right;
}

/* voice */

.voice {
  background: url(../images/voice.png) repeat 0 0 / 24px, linear-gradient(180deg, var(--blue), #77EBFF);
}
.voice-head {
  color: #fff;
  font-size: 36px;
  font-weight: 900;
  margin-bottom: 40px;
  text-align: center;
}
.voice-body ul li {
  background: #fff;
  padding: 24px 32px;
}
.voice-body ul li + li {
  margin-top: 32px;
}
.voice-image {
  margin-right: 32px;
  min-width: 143px;
  width: 143px;
}
.voice-name {
  color: var(--blue);
  font-size: 32px;
  font-weight: 900;
}
.voice-name small {
  font-size: 24px;
  margin-right: .75em;
}
.voice-name span {
  background: var(--yellow);
  border-radius: 5px;
  display: inline-block;
  font-size: 20px;
  margin-inline: 8px;
  padding: .18em .65em;
}
.voice-content p {
  letter-spacing: .05em;
  margin-block: .75em .5em;
}

/* faq */

.faq-head {
  color: var(--blue);
  font-size: 36px;
  font-weight: 900;
  margin-bottom: 60px;
  text-align: center;
}
.faq-body dl + dl {
  margin-top: 30px;
}
.faq-body dl dt {
  align-items: flex-start;
  background: var(--blue);
  color: #fff;
  cursor: pointer;
  display: flex;
  justify-content: flex-start;
  position: relative;
}
.faq-body dl dd {
  align-items: flex-start;
  display: flex;
  justify-content: flex-start;
}
.faq-body dl dt span,
.faq-body dl dd span {
  font-family: bahnschrift, sans-serif;
  font-size: 48px;
  font-weight: 700;
  margin-right: 5px;
  min-width: 75px;
  text-align: center;
  position: relative;
}
.faq-body dl dt span {
  color: var(--yellow);
  content: 'Q';
}
.faq-body dl dd span {
  color: var(--blue);
  content: 'A';
  top: 5px;
}
.faq-body dl dt p {
  font-size: 20px;
  line-height: 1.2;
  margin-block: 1.25em;
}
.faq-body dl dd p {
  line-height: 1.6;
  margin-block: 1em 1.5em;
}
.faq-body dl dt::before,
.faq-body dl dt::after {
  background: #fff;
  content: '';
  display: block;
  height: 5px;
  margin-top: -2.5px;
  position: absolute;
  right: 20px;
  top: 50%;
  transition: transform .3s;
  width: 20px;
}
.faq-body dl dt::before {
  transform: rotate(90deg);
}
.faq-body dl dt.show::before {
  transform: rotate(0deg);
}

/* access */

.access {
  background: #F0F3F4 url(../images/access.png) repeat 0 0 / 24px;
}
.access-head {
  color: var(--blue);
  font-size: 36px;
  font-weight: 900;
  margin-bottom: 70px;
  text-align: center;
}
.access-content {
  letter-spacing: .05em;
  margin-inline: 32px;
  width: 43%;
}
.access-name span {
  background: var(--yellow);
  color: var(--blue);
  display: inline-block;
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 1em;
  padding: .4em .6em;
}
.access-map iframe {
  height: 290px;
  width: 100%;
}

/* cta */

.cta {
  background: var(--blue);
  padding-block: 36px 48px;
  position: relative;
}
.cta-head {
  color: #fff;
  font-size: 30px;
  font-weight: 700;
  margin-bottom: .25em;
}
.cta-head span {
  color: var(--blue);
  display: inline-block;
  font-size: 36px;
  padding-inline: .25em .2em;
  position: relative;
  z-index: 1;
}
.cta-head span i {
  animation-duration: .5s;
  background: var(--yellow);
  content: '';
  display: block;
  height: 90%;
  left: 0;
  position: absolute;
  top: 5%;
  width: 100%;
  z-index: -1;
}
.cta-circle {
  background: var(--yellow);
  border-radius: 50%;
  color: var(--blue);
  font-size: 32px;
  height: 110px;
  line-height: 1;
  margin-right: 20px;
  width: 110px;
}
.cta p {
  color: #fff;
  line-height: 1.2;
  margin-bottom: 2em;
  text-align: center;
}
.cta-image {
  margin-bottom: 55px;
  text-align: center;
}
.cta-image img {
  width: 640px;
}
.cta-button {
  align-items: center;
  display: flex;
  justify-content: center;
}
.cta-button a {
  background: #3A3A3A;
  border-radius: 9999px;
  color: #fff;
  font-size: 17.73px;
  font-weight: 900;
  padding-block: .775em;
  padding-inline: 3.25em 4.25em;
  position: relative;
  text-align: center;
  transition: background-color .2s, color .2s, filter .2s;
}
.cta-button a img {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 34px;
}
.cta-button a:hover {
  background-color: #fff;
  color: var(--blue);
}
.cta-button a:hover img {
  filter: invert(56%) sepia(76%) saturate(4924%) hue-rotate(171deg) brightness(101%) contrast(101%);
}

/* contact */

.contact {
  background: #F0F3F4 url(../images/contact.png) repeat 0 0 / 24px;
  padding-block: 50px 90px;
}
.contact-body {
  background: #fff;
  border: 2px solid var(--blue);
  padding-block: 55px;
}
.contact-head {
  color: var(--blue);
  font-size: 36px;
  font-weight: 900;
  margin-bottom: 75px;
  text-align: center;
}
.contact-item {
  font-size: 16px;
  font-weight: 600;
}
.contact-item + .contact-item {
  margin-top: 1.25em;
}
.contact-label {
  margin-right: 28px;
  text-align: right;
  width: 200px;
}
.contact-label span,
.contact-agree span {
  background: #cfcfcf;
  border-radius: 3.54px;
  color: #fff;
  font-size: 12.4px;
  height: 20px;
  line-height: 19px;
  margin-left: 12px;
  min-width: 42px;
  text-align: center;
  width: 42px;
}
.contact-label span.required,
.contact-agree span.required {
  background: #DF2143;
}
.contact-input {
  font-weight: 400;
  width: 500px;
}
.contact-input label {
  cursor: pointer;
}
.contact-item input[type='text'],
.contact-item input[type='email'],
.contact-item input[type='tel'],
.contact-item textarea {
  background: #fff;
  border: .89px solid #a1a1a1;
  border-radius: 4.43px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  padding: .4em .6em;
  width: 100%;
}
.contact-item input[type='text'].half {
  width: 49%;
}
.contact-item textarea {
  height: 135px;
}
.contact-item input::placeholder {
  color: #DBDBDB;
  font-weight: 400;
}
.contact-checkbox {
  margin-bottom: .25em;
}
.contact-checkbox:last-child {
  margin-bottom: 2em;
}
.contact-item input[type='checkbox'] {
  appearance: checkbox;
  height: 13.29px;
  margin-right: .5em;
  width: 13.29px;
}
.contact-radio {
  font-size: 17.72px;
  margin-right: 2.5em;
}
.contact-item input[type='radio'] {
  appearance: checkbox;
  height: 13.29px;
  margin-right: .25em;
  width: 13.29px;
}
.contact-agree {
  margin-top: 3em;
}
.contact-item p {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .05em;
  margin-block: 1em 3em;
  text-align: center;
}
.contact-item p a {
  color: var(--black);
  text-decoration: underline;
}
.contact-item p a:hover {
  text-decoration: none;
}
.contact-privacy {
  position: relative;
}
.contact-privacy dt {
  display: none;
}
.contact-item .contact-submit {
  margin-block: .25em 0;
  text-align: center;
}
.contact-item input[type='button'] {
  background: #3A3A3A url(../images/button.svg) no-repeat center right 25px / 8.87px auto;
  border-radius: 9999px;
  color: #fff;
  cursor: pointer;
  font-size: 21.26px;
  font-weight: 700;
  padding-block: .725em;
  padding-inline: 2.25em 3em;
  position: relative;
  text-align: center;
  transition: background-color .2s, color .2s, filter .2s;
}
.contact-item input[type='button']:hover {
  background-color: var(--blue);
}
.contact-item .error_blank {
  color: #DF2143;
}
.contact-privacy .error_blank {
  bottom: -1.5em;
  position: absolute;
  text-align: center;
  width: 100%;
}

/* thanks */

.thanks {
  padding-block: 120px;
}
.thanks-head {
  color: var(--blue);
  font-size: 36px;
  font-weight: 900;
  margin-bottom: 60px;
  text-align: center;
}
.thanks-body {
  margin: auto;
  max-width: 780px;
}
.thanks-body p {
  font-weight: 400;
  letter-spacing: .05em;
  margin-bottom: 1.5em;
}
.thanks-body p:nth-child(-n+2) {
  margin-bottom: 3em;
}
.thanks-link {
  margin-top: 70px;
  text-align: center;
}
.thanks-body a {
  color: var(--black);
  font-size: 16px;
  font-weight: 400;
  text-decoration: underline;
}
.thanks-body a:hover {
  text-decoration: none;
}

/* -------------------------------------------------- */
/* footer */

.footer {
  background: var(--blue);
  height: 100px;
}
.footer .wrapper {
  height: 100%;
}
.footer-small small {
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}

/* -------------------------------------------------- */
/* aside */

.aside {
  display: none;
}
