@charset "utf-8";
/* CSS Document */

/* =================================================================
 * 
 *  TOP
 * 
 * ================================================================= */

/* mv
 * ====================== */

.mv {
  position: relative;
  padding-top: 74px;
  background-image: url(../img/mv-02.jpg);
  background-size: cover;
  background-position: center bottom;
  height: 100vh;
}
@media screen and (min-width: 768px) {
  .mv {
    padding-top: 120px;
  }
}

.mv__title {
  position: absolute;
  transform: translate(-50%, -50%);
  left: 50%;
  top: 50%;
  top: calc(50% + 37.5px);
  width: 90%;
}
@media screen and (min-width: 768px) {
  .mv__title {
    width: clamp(700px, calc(334.6153846153846px + 32.05128205128205vw), 950px);
    top: calc(50% + 65px);
  }
}

/* message
 * ====================== */
.top-message {
  width: fit-content;
  margin-inline: auto;
  font-size: var(--fontSize-l);
  text-align: center;
}

.slideConts {
  opacity: 0;
}
.slide {
  animation: slideAnime 6s ease forwards;
}
@keyframes slideAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
.txt1 {
  animation-delay: 0.2s;
}
.txt2 {
  animation-delay: 1s;
}
.txt3 {
  animation-delay: 1.8s;
}
.txt4 {
  animation-delay: 2.6s;
}
.txt5 {
  animation-delay: 3.4s;
}

/* course
 * ====================== */
.card {
  position: relative;
  margin-bottom: 40px;
  padding: 4rem 2rem;
  border-radius: 1rem;
  box-shadow: 0 4px 6px 0 #00000008;
  color: var(--color-white);
  text-shadow: 1px 1px 1px #26156c52;
}
@media screen and (min-width: 768px) {
  .card {
    padding: 6rem;
  }
}

.card:last-of-type {
  margin-bottom: 0;
}

.top-course li.card {
  background-position: center;
  background-size: cover;
}

.top-course li.card:nth-of-type(1) {
  background-image: url(../img/course-01.png);
  background-position: right center;
  background-color: #ffffff38;
  background-blend-mode: overlay;
}
@media screen and (min-width: 768px) {
  .top-course li.card:nth-of-type(1) {
    background-position: center;
    background-size: cover;
  }
}
.top-course li.card:nth-of-type(2) {
  background-image: url(../img/course-02.png);
}
.top-course li.card:nth-of-type(3) {
  background-image: url(../img/course-03.png);
}
.top-course li.card:nth-of-type(4) {
  background-image: url(../img/course-04-sp.png);
}
@media screen and (min-width: 768px) {
  .top-course li.card:nth-of-type(4) {
    background-image: url(../img/course-04.png);
  }
}

.top-course li.card:nth-of-type(5) {
  background-image: url(../img/course-05.png);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  border-radius: 0%;
}
@media screen and (min-width: 768px) {
  .top-course li.card:nth-of-type(5) {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    border-radius: 1rem;
  }
}

.card__title2 {
  margin-bottom: 40px;
  margin-inline: auto;
  max-width: 700px;
  mix-blend-mode: color-dodge;
  text-align: center;
}

.card__title {
  margin-bottom: 20px;
  font-size: var(--fontSize-l);
  text-align: center;
  line-height: 1.2;
}

.card__discription {
  margin-bottom: 20px;
  width: fit-content;
  margin-inline: auto;
  font-size: var(--fontSize-m);
  line-height: 1.2;
}

.card__discription p :last-of-type {
  margin-bottom: 0;
}

.card__price {
  margin-bottom: 20px;
}

.card__price div {
  margin-bottom: 20px;
}

.card__price2 div {
  display: flex;
  gap: 20px;
  width: fit-content;
  margin-inline: auto;
}

.card__price dt,
.card__price dd {
  font-size: var(--fontSize-l);
  text-align: center;
  line-height: 1.2;
}

.card__price2 dt,
.card__price2 dd {
  font-size: var(--fontSize-ll);
}

.card__price dd span {
  font-size: var(--fontSize-s);
}

.card__price div:last-of-type {
  margin-bottom: 0;
}

.card__text {
  margin-bottom: 20px;
  width: fit-content;
  margin-inline: auto;
  max-width: 600px;
}

.card__text p,
.card__text dl {
  margin-bottom: 20px;
}

.card__text dl dt {
  margin-bottom: 5px;
  text-align: center;
  font-size: var(--fontSize-s);
}

.card__text dl dd {
  max-width: 450px;
  margin-inline: auto;
  font-size: var(--fontSize-s);
}

.card__text p:last-of-type {
  margin-bottom: 0;
}

.card__btn {
  display: block;
  width: 300px;
  margin-inline: auto;
  margin-top: 40px;
  padding: 10px 20px;
  background-color: var(--color-primary);
  border-radius: 30px;
  text-align: center;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.card__btn:hover,
.card__btn:focus {
  background-color: var(--color-white);
  color: var(--color-primary);
  opacity: 1;
  text-shadow: none;
}

/* cancel
 * ====================== */
.top-cancel {
  padding: 20px;
  border: solid 1px var(--color-primary);
  text-align: center;
  font-size: var(--fontSize-m);
}

.top-cancel__title {
  width: fit-content;
  margin-inline: auto;
  margin-bottom: 20px;
  padding: 0 0 5px;
  font-size: var(--fontSize-l);
  text-align: center;
  border-bottom: solid 1px var(--color-primary);
}

.top-cancel__discription {
  margin-bottom: 20px;
  width: fit-content;
  margin-inline: auto;
  text-align: left;
}

.top-cancel__price {
  margin-bottom: 20px;
  font-size: var(--fontSize-m);
}

.top-cancel__price > div {
  margin-bottom: 10px;
}

.top-cancel__text {
  margin-inline: auto;
  width: fit-content;
  text-align: left;
  max-width: 710px;
}

/* price
 * ====================== */

.top-price {
  border: solid 5px var(--color-table);
  text-align: center;
}

.top-price__title {
  padding: 20px;
  font-size: var(--fontSize-l);
  background-color: var(--color-table);
  text-align: center;
}

.top-price__title span {
  display: block;
}

.top-price__title span:nth-of-type(2) {
  margin-top: 5px;
  font-size: var(--fontSize-m);
}

.top-price__subtitle {
  padding: 40px 20px 20px;
  font-size: var(--fontSize-m);
}

/* テーブル */

table {
  width: 100%;
  margin-inline: auto;
  text-align: center;
  border-collapse: collapse;
}

table th {
  background-color: var(--color-table);
  font-size: var(--fontSize-s);
}
@media screen and (min-width: 768px) {
  table th {
    font-size: var(--fontSize-m);
  }
}

table th:first-of-type {
  width: 17%;
}

table th,
table td {
  border: solid 1px #d1d1d1;
  padding: 20px 5px;
}

table td {
  font-size: var(--fontSize-s);
}
@media screen and (min-width: 768px) {
  table td {
    font-size: var(--fontSize-m);
  }
}

table img {
  width: 150px;
}

/* ご予約
 * ====================== */
#calendarTitle {
  display: none;
}

/* Q＆A
 * ====================== */

/*アコーディオン*/
.accordion-area {
  list-style: none;
  margin: 0 auto;
}

.accordion-area > li {
  margin: 10px 0;
}

.accordion-area section {
  border: 1px solid var(--color-primary);
}

.accordion__title {
  position: relative;
  cursor: pointer;
  font-size: var(--fontSize-s);
  padding: 3% 50px 3% 2em;
  text-indent: -1.3em;
  transition: all 0.5s ease;
}

.accordion__title.close {
  border-bottom: solid 1px var(--color-primary);
}

.accordion__title::before,
.accordion__title::after {
  position: absolute;
  content: "";
  width: 15px;
  height: 3px;
  background-color: var(--color-table);
}

.accordion__title::before {
  top: 48%;
  right: 15px;
  transform: rotate(0deg);
}

.accordion__title::after {
  top: 48%;
  right: 15px;
  transform: rotate(90deg);
}

.accordion__title.close::before {
  transform: rotate(45deg);
}

.accordion__title.close::after {
  transform: rotate(-45deg);
}

.accordion__box {
  display: none;
  padding: 3%;
}

.accordion__itemBox {
  margin-top: 20px;
}

.accordion__itemBox h4 {
  padding-bottom: 10px;
  border-bottom: solid 1px var(--color-primary);
  font-size: var(--fontSize-s);
}

.accordion__itemBox ul {
  margin: 0.5em 0.5em 0 0.5em;
}

.accordion__itemBox li {
  margin-bottom: 0.5em;
}

/* instractor
 * ====================== */

.top-instractor .card {
  padding-top: 100px;
  padding-bottom: 100px;
  background-image: url(../img/instractor-01.png);
  background-size: cover;
  background-position: center;
}

.top-instractor .card__text {
  font-size: var(--fontSize-m);
  text-align: center;
}
