@charset "UTF-8";

/* index.html */

/* max-width: 800px で設計 */



/* 〇 CSS担当 Yokomichi Kazuha */

/* 〇 JS担当 Yokomichi Kazuha */

/* 〇 修正 Yokomichi Kazuha & Sakamaki Ryu */



/* ★ ローディング画面設定 */

.logo_fadein {
  background: #f2ffeb;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 99999;
}

.logo_fadein p {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: none;
  z-index: 9999;
  width: 250px;
}

@media (max-width: 1100px) {
  .logo_fadein p {
    width: 220px;
  }
}

@media (max-width: 800px) {
  .logo_fadein p {
    width: 200px;
  }
}

@media (max-width: 600px) {
  .logo_fadein p {
    width: 180px;
  }
}

@media (max-width: 400px) {
  .logo_fadein p {
    width: 160px;
  }
}



/* ★ メインビジュアル設定 */
.main-visual {
  background: url("../image/home/home_heroimg.png");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: contain;
  position: relative;
  max-width: 100vw;
  margin: 0;
  padding: 0 0;
}

.main-visual p {
  color: black;
  top: 50%;
  left: 20%;
}

#svg {
  position: relative;
  z-index: 3;
}



/* ★ 全体設定 */

a {
  color: #000;
}

a:hover {
  color: #15923b;
}

.container02 {
  background-color: #f7f5f2;
  overflow: hidden;
}



/* ★ 更新情報の設定 */

.news {
  display: flex;
  border: 1px solid #000;
  border-radius: 20px;
  position: absolute;
  background-color: #fff;
  z-index: 3;
  bottom: 6%;
  left: 50%;
  transform: translateX(-50%);
  padding: 8px 18px;
}

.news a {
  gap: 10px;
}



@media (max-width: 600px) {
  .news {
    bottom: 3%;
    width: 300px;
  }
}

@media (max-width: 550px) {
  .news {
    bottom: 1%;
    width: 300px;
  }
}


@media (max-width: 450px) {
  .news {
    bottom: -4%;
    width: 300px;
  }
}

@media (max-width: 400px) {
  .news {
    bottom: -5%;
    width: 300px;
  }
}

@media (max-width: 360px) {
  .news {
    bottom: -6%;
    width: 300px;
  }
}



.news-p {
  margin: 0 auto;
}

.news-title {
  margin-right: 10px;
  align-items: flex-end;
}

.news-flex a {
  display: flex;
}

.news-title {
  font-size: 1.5vw;
}

#updateDate {
  font-size: clamp(10px, 1.2vw, 20px);
}

.news-flex p {
  font-size: clamp(10px, 1.2vw, 20px);
}





/* ★ キャッチコピーの設定 */

.phrase {
  display: block;
  text-align: center;
  justify-content: center;
  width: 80%;
  margin: 0 auto;
}

.svg-top {
  display: block;
}

.catch-sub p {
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
  margin-bottom: 20px;
  font-size: 20px;
}

@media (max-width: 440px) {
  .catch-sub p {
    font-size: 18px;
  }
}

@media (max-width: 380px) {
  .catch-sub p {
    font-size: 16px;
  }
}

.catchcopy p {
  text-align: center;
  font-size: 40px;
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
  margin-top: 30px;
  margin-bottom: 40px;
}

@media (max-width: 1250px) {
  .catchcopy p {
    margin-top: 25px;
  }
}

@media (max-width: 1030px) {
  .catchcopy p {
    margin-top: 20px;
  }
}

@media (max-width: 840px) {
  .catchcopy p {
    margin-top: 15px;
  }
}

@media (max-width: 625px) {
  .catchcopy p {
    margin-top: 20px;
    margin-bottom: 30px;
  }
}

@media (max-width: 450px) {
  .catchcopy p {
    margin-top: 40px;
    margin-bottom: 25px;
  }
}

@media (max-width: 480px) {
  .catchcopy p {
    font-size: 34px;
  }
}

@media (max-width: 350px) {
  .catchcopy p {
    font-size: 30px;
  }
}



/* ★ メリットの設定 */

.merit {
  display: flex;
  margin: 50px auto 0 auto;
  justify-content: space-between;
  max-width: 65%;
}

@media (max-width: 1000px) {
  .merit {
    max-width: 80%;
    margin: 40px auto 0 auto;
  }
}

@media (max-width: 800px) {
  .merit {
    max-width: 90%;
    margin: 30px auto 0 auto;
  }
}

@media (max-width: 700px) {
  .merit {
    max-width: 100%;
  }
}

.merit-item {
  justify-content: center;
  text-align: center;
}

.merit img {
  text-align: center;
  justify-content: center;
  min-width: 125px;
}



/* ★ カリキュラム・コースの設定 */

.course {
  max-width: 64.5%;
  margin: 50px auto 10px auto;
  position: relative;
}

@media (max-width: 800px) {
  .course {
    max-width: 80%;
  }
}

.course-img {
  justify-content: center;
  text-align: center;
}

.course-btn {
  margin-top: 20px;
  gap: 10px;
  text-align: left;
  max-width: 1050px;
  margin: 0 auto;
  display: flex;
  justify-content: right;
}

.course-btn a {
  display: flex;
  align-items: center;
  justify-content: right;
  margin-bottom: 60px;
  gap: 10px;
  margin-top: 20px;
}

h3 {
  color: #000;
  font-size: 10px;
}

.course-type {
  border: 1px solid #000;
  font-size: clamp(15px, 1.3vw, 24px);
  box-shadow: #989898 0.8vw 0.6vw 0.3vw 0;
  padding: 0.8em 1.5em;
  white-space: nowrap;
  background-color: #fff;
  position: absolute;
  top: -5%;
  left: 15%;
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  margin-top: 7%;
  z-index: 10;
}

@media (max-width: 615px) {
  .course-type {
    left: 23%;
  }
}

@media (max-width: 420px) {
  .course-type {
    left: 27%;
  }

  .course-btn a {
    font-size: 13px;
  }
}

.entrance-type {
  border: 1px solid #000;
  padding: 0.8em 1.5em;
  box-shadow: #989898 13px 10px 4px 0;
  background-color: #fff;
  max-width: 70%;
  font-size: 1.5vw;
}




/* ★ 入校までの流れの設定 */

.attend-btn {
  gap: 10px;
  text-align: left;
  max-width: 1050px;
  margin: 0 auto;
  display: flex;
  justify-content: right;
}

.entrance {
  position: relative;
  max-width: 70%;
  margin: 0 auto;
}

@media (max-width: 600px) {
  .entrance {
    max-width: 85%;
  }
}

.entrance-type {
  position: absolute;
  border: 1px solid #000;
  background-color: #fff;
  color: #000;
  font-size: clamp(15px, 1.3vw, 24px);
  box-shadow: #989898 0.8vw 0.6vw 0.3vw 0;
  padding: 0.8em 1.5em;
  max-width: 300px;
  white-space: nowrap;
  top: -14%;
  left: 0%;
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  margin-top: 60px;
  margin-bottom: 30px;
}

@media (max-width: 615px) {
  .entrance-type {
    left: 10%;
  }

  .attend-btn a {
    font-size: 13px;
  }
}

@media (max-width: 510px) {
  .entrance-type {
    left: 15%;
  }
}

@media (max-width: 420px) {
  .entrance-type {
    left: 18%;
  }
}

.entrance-img {
  margin-top: 50px;
  margin-bottom: 20px;
}

@media (max-width: 420px) {
  .entrance-img {
    margin-top: 70px;
  }
}

.attend-btn a {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: right;
  margin-bottom: 60px;
}


@media (max-width: 800px) {
  .attend-btn a {
    margin-bottom: 40px;
  }
}

@media (max-width: 600px) {
  .attend-btn a {
    margin-bottom: 30px;
  }
}



/* ★ アニメーションの設定 */

/* ふわふわ (始点から右下へ) */
.ani_fuwari_migi_shita {
  animation: fuwari_migi_shita ease-in-out 1.0s infinite alternate;
  -webkit-animation: fuwari_migi_shita ease-in-out 1.0s infinite alternate;
  -moz-animation: fuwari_migi_shita ease-in-out 1.0s infinite alternate;
}

@keyframes fuwari_migi_shita {
  0% {
    transform: translate(0%, 0%);
  }

  100% {
    transform: translate(30px, 30px);
  }
}

@-webkit-keyframes fuwari_migi_shita {
  0% {
    -webkit-transform: translate(0%, 0%);
  }

  100% {
    -webkit-transform: translate(10px, 10px);
  }
}



/* ふわふわ (始点から左上へ) */

.ani_fuwari_hidari_ue {
  animation: fuwari_hidari_ue ease-in-out 2.0s infinite alternate;
  -webkit-animation: fuwari_hidari_ue ease-in-out 2.0s infinite alternate;
  -moz-animation: fuwari_hidari_ue ease-in-out 2.0s infinite alternate;
}

@keyframes fuwari_hidari_ue {
  0% {
    transform: translate(0%, 0%);
  }

  100% {
    transform: translate(-40px, 10px);
  }
}

@-webkit-keyframes fuwari_hidari_ue {
  0% {
    -webkit-transform: translate(0%, 0%);
  }

  100% {
    -webkit-transform: translate(-40px, 10px);
  }
}

.ani_fuwari_hidari_ue02 {
  animation: fuwari_hidari_ue ease-in-out 3.0s infinite alternate;
  -webkit-animation: fuwari_hidari_ue ease-in-out 3.0s infinite alternate;
  -moz-animation: fuwari_hidari_ue ease-in-out 3.0s infinite alternate;
}

@keyframes fuwari_hidari_ue {
  0% {
    transform: translate(0%, 0%);
  }

  100% {
    transform: translate(-30px, 15px);
  }
}

@-webkit-keyframes fuwari_hidari_ue {
  0% {
    -webkit-transform: translate(0%, 0%);
  }

  100% {
    -webkit-transform: translate(-30px, 15px);
  }
}



/* 振り子 (現在位置から右へ) */

.ani_furiko_migi {
  transform-origin: top;
  -webkit-transform-origin: top;
  -moz-transform-origin: top;
  animation: pendulum_migi ease-in-out 2.5s infinite alternate;
  -webkit-animation: pendulum_migi ease-in-out 2.5s infinite alternate;
  -moz-animation: pendulum_migi ease-in-out 2.5s infinite alternate;
}

@keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-5deg);
  }
}

@-webkit-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

@-moz-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

.ani_furiko_migi01 {
  transform-origin: top;
  -webkit-transform-origin: top;
  -moz-transform-origin: top;
  animation: pendulum_migi ease-in-out 5s infinite alternate;
  -webkit-animation: pendulum_migi ease-in-out 5s infinite alternate;
  -moz-animation: pendulum_migi ease-in-out 5s infinite alternate;
}

@keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-2deg);
  }
}

@-webkit-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-2deg);
  }
}

@-moz-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-2deg);
  }
}

.ani_furiko_migi02 {
  transform-origin: top;
  -webkit-transform-origin: top;
  -moz-transform-origin: top;
  animation: pendulum_migi ease-in-out 5s infinite alternate;
  -webkit-animation: pendulum_migi ease-in-out 5s infinite alternate;
  -moz-animation: pendulum_migi ease-in-out 5s infinite alternate;
}

@keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

@-webkit-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

@-moz-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

.ani_furiko_migi03 {
  transform-origin: top;
  -webkit-transform-origin: top;
  -moz-transform-origin: top;
  animation: pendulum_migi ease-in-out 1.5s infinite alternate;
  -webkit-animation: pendulum_migi ease-in-out 1.5s infinite alternate;
  -moz-animation: pendulum_migi ease-in-out 1.5s infinite alternate;
}

@keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

@-webkit-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}

@-moz-keyframes pendulum_migi {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(-3deg);
  }
}



/* 振り子 (現在位置から左へ) */

.ani_furiko_hidari {
  transform-origin: top;
  -webkit-transform-origin: top;
  -moz-transform-origin: top;
  animation: pendulum_hidari ease-in-out 3s infinite alternate;
  -webkit-animation: pendulum_hidari ease-in-out 3s infinite alternate;
  -moz-animation: pendulum_hidari ease-in-out 3s infinite alternate;
}

@keyframes pendulum_hidari {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(5deg);
  }
}

@-webkit-keyframes pendulum_hidari {
  0% {
    -webkit-transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(5deg);
  }
}

@-moz-keyframes pendulum_hidari {
  0% {
    -moz-transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(5deg);
  }
}



/* ぐらぐら */

.ani_guragura {
  animation: guragura 5s linear infinite;
  -webkit-animation: guragura 5s linear infinite;
  -moz-animation: guragura 5s linear infinite;
  transform-origin: calc(100% * 341.7/394.712) calc(100% * 55.7/293.169);
  /* ％でしか指定できない */
  /* ViewBoxに対して、回転させたい要素の中心座標を指定しないといけない */
}

@keyframes guragura {
  0% {
    transform: rotate(0deg);
  }

  25% {
    transform: rotate(5deg);
  }

  50% {
    transform: rotate(0deg);
  }

  75% {
    transform: rotate(-5deg);
  }

  100% {
    transform: rotate(0deg);
  }
}

@-webkit-keyframes spin {
  to {
    transform: rotate(1turn);
  }
}

@-moz-keyframes spin {
  to {
    transform: rotate(1turn);
  }
}



/* 回転 */

.ani_spin {
  animation: spin 5s linear infinite;
  -webkit-animation: spin 5s linear infinite;
  -moz-animation: spin 5s linear infinite;
  transform-origin: calc(100% * 246.3/394.712) calc(100% * 45.1/293.169);
  /* ％でしか指定できない */
  /* ViewBoxに対して、回転させたい要素の中心座標を指定しないといけない */
}

@keyframes spin {
  to {
    transform: rotate(1turn);
  }
}

@-webkit-keyframes spin {
  to {
    transform: rotate(1turn);
  }
}

@-moz-keyframes spin {
  to {
    transform: rotate(1turn);
  }
}



/* 順番にズーム */

.ani_zoomUp_1 {
  animation: zoomUp 2.5s infinite;
  animation-delay: 0s;
}

.ani_zoomUp_2 {
  animation: zoomUp 2.5s infinite;
  animation-delay: 0.8s;
}

.ani_zoomUp_3 {
  animation: zoomUp 2.5s infinite;
  animation-delay: 1.6s;
}

@keyframes zoomUp {
  0% {
    transform: scale(1);
    /* 元のサイズ */
  }

  38% {
    transform: scale(1);
    /* 元のサイズ */
  }

  44% {
    transform: scale(1.05);
    /* 拡大 */
  }

  50% {
    transform: scale(1);
    /* 元のサイズに戻る */
  }

  56% {
    transform: scale(1.05);
    /* 拡大 */
  }

  62% {
    transform: scale(1);
    /* 元のサイズ */
  }

  100% {
    transform: scale(1);
    /* 元のサイズ */
  }
}