/*
Theme Name: pcschoolsite
Description: テーマの説明
*/

@charset "UTF-8";

:root {
  --text-color1: #ffffff;
  --text-color2: #424242;
  --main-color: #3B9691;
  --base-color: #F7F7EF;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal;
  color: var(--text-color1);
}

.img-sp {
  display: none;
}

.br {
  display: inline-block;
}

a {
  text-decoration: none;
  color: var(--text-color1);
}

a:hover {
  opacity: .6;
}


.wrapper {
  /* max-width: 95%; */
  margin: 0 auto;

}

.flex {
  display: flex;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* =================================================
header
=================================================*/


h1 {
  font-size: 40px;
  font-weight: 400;
  letter-spacing: .25rem;
  width: 160px;
  z-index: 1000 !important;
}

h1 img {
  vertical-align: middle;
  padding-bottom: 1rem;
}

.wrapper:has(.open) h1 img {
  /* filter: drop-shadow( 0, 0, 0, var( --main-color ) ); */
  display: none;
}

header {
  backdrop-filter: blur(6px);
  /* background-color: #00000009; */
  position: fixed;
  top: 0;
  z-index: 10;
  height: 90px;
  width: 100%;
}

header>.flex {
  justify-content: space-between;
  padding: 1rem;
  /* height: 5.5rem; */
  max-width: 1800px;
}

header nav ul {
  gap: 3rem;
  margin-top: 1rem;
}


header nav ul a {
  letter-spacing: .15rem;
}

.button {
  background: linear-gradient(70deg, #23969D, #BCCC99);
  border-radius: 100px;
  padding: 1rem 2rem;
  margin: 0 0 1rem 3rem;
}




.material-symbols-outlined {
  cursor: pointer;
  position: relative;
  z-index: 999;
  font-size: 60px;
  display: none;
  font-variation-settings:
    'FILL' 0,
    'wght' 100,
    'GRAD' 0,
    'opsz' 24
}

nav.open+.material-symbols-outlined {
  color: #23969D !important;
}



/* =================================================
body
=================================================*/

body {
  background-image: url(img/bg.jpg);
  background-size: cover;
  background-position: center center;
  height: 100vh;
  width: 100%;
  background-attachment: fixed;
  z-index: -1;
}

/* =================================================
main
=================================================*/


article.mv {
  background-image: url(img/wave.png);
  background-size: cover;
  background-position: bottom;
  background-position: left;
  margin-top: 6rem;
  min-height: calc(100vh - 90px);
}

.fast {
  height: 100vh;

}

/* .fast {
  height: 100vh;
  width: 100vh;
} */

.main_visual {
  padding: 0rem 2rem;
  height: 70%;
  align-items: center;
  /* max-width: 1200px; */
  max-width: 1200px;
  margin: 0 auto;
}

.mv1 {
  position: relative;
  top: 2rem;
  left: 1.5rem;
}

.mv2 {
  z-index: 5;
}

.mv3 {
  position: relative;
  top: 4rem;
  left: -1.5rem;
}

.main_text.flex {
  align-items: flex-end;
  position: relative;
  top: -3rem;
  padding: 0 1rem;
  max-height: 30%;
  margin: 0 auto;
  /* background-color: #23969D; */
  width: 90%;
  max-width: 1800px;
}

.main_text h2 {
  font-size: 3rem;
  font-weight: 500;
  color: var(--text-color1);
  opacity: .8;
  text-shadow: 1px 1px 20px #827b6994;
  letter-spacing: .5rem;
}

.main_text p {
  font-size: 1.5rem;
  font-weight: 500;
  margin-left: 1rem;
  color: var(--text-color1);
  opacity: .8;
  text-shadow: 1px 1px 20px #827b6994;
  letter-spacing: .15rem;
}


/* =================================================
about
=================================================*/

#about {
  margin: 10rem auto;
  /* background-color: #424242; */
  max-width: 1200px;
}

#about .wrapper {
  padding: 5rem 0;
}

.about_text h3 {
  font-size: 2rem;
  font-weight: 400;
  margin-bottom: 2rem;
  letter-spacing: .15rem;
  margin: 1rem;
}

.about_text p {
  width: 80%;
  letter-spacing: .05rem;
  font-weight: 300;
  line-height: 2;
  padding: 1rem;
}

.about_text {
  max-width: 50%;
  min-width: 300px;
}

.about_img {
  max-width: 40%;
  min-width: 400px;
  margin: 4rem 1rem 0 3rem;
}


/* =================================================
course
=================================================*/

#course {
  background: linear-gradient(to bottom, transparent 0%, transparent 0%, #F7F7EF 50%);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  margin-top: 10rem;
}

#course span,
#course p {
  color: var(--main-color);
}

#course .wrapper {
  padding-top: 8rem;
}

.title {
  margin-bottom: 3rem;
}


.title h2 {
  font-size: 6rem;
  font-weight: normal;
  text-align: center;
  background: linear-gradient(230deg, #BCCC99 0%, #23969D 70%);
  -webkit-background-clip: text;
  width: fit-content;
  margin: 0 auto;
  -webkit-text-fill-color: transparent;
}

.title span {
  font-size: 1.5rem;
  text-align: center;
  display: block;
  letter-spacing: .25rem;
  position: relative;
  top: -1rem;
  background: linear-gradient(230deg, #BCCC99 0%, #23969D 70%);
  -webkit-background-clip: text;
  width: fit-content;
  margin: 0 auto;
  -webkit-text-fill-color: transparent;
}

#course strong {
  font-size: 2rem;
  font-weight: normal;

}

.about_img {
  width: 220px;
}

/* スライダー */
.course_content {
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;

  /* background-color: #23969D; */
}



.course_box>.flex {
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}


#course .course_box {
  display: block;
  max-width: 343px;
  height: 464px;
  box-shadow: 1px 1px 20px #5858401f;
  background-color: var(--base-color);
  border-radius: 20px;
}





.course_box {
  padding: 1rem;
}

.course_box .flex span {
  font-size: 3rem;
  text-align: right;
  /* margin: 1rem 1rem 0 0; */
  font-family: "Numans", sans-serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: .5rem;
}



.course_img {
  /* width: 90%; */
  margin: 0 auto;
}

.course_content .course_box:nth-child(4) .course_img {
  width: 90%;
}



.course_box .flex p {
  font-size: 1.5rem;
  /* margin: 0 0 1rem 1rem; */
  margin-bottom: 1rem;
}



/* =================================================
voice
=================================================*/

.toumei {
  background-color: #ffffff40;

}

.round {
  position: relative;
  top: -2px;
}

#voice .wrapper {
  padding: 4rem 0;
}

#voice .wrapper .title h2,
#voice .wrapper .title span {
  background: linear-gradient(270deg, #ffffff 40%, #ffffff 80%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}


#voice>.wrapper>.flex {
  gap: 1.75rem;
  /* background-color: #23969D; */
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem;
}

.card {
  background-color: var(--base-color);
  padding: 3rem 1.875rem 1.25rem;
  /* max-width: 500px; */
  width: 90%;
  border-radius: 15px;

}

.card.flex {
  flex-direction: column;
  justify-content: space-between;
}

.card h4 {
  font-size: 1.25rem;
  color: var(--main-color);
  font-weight: 500;
  margin-bottom: 1rem;
}

.card p {
  font-size: .9375rem;
  text-align: justify;
  line-height: 1.8;
  color: var(--text-color2);
}

.card span {
  font-size: .8rem;
  color: var(--text-color2);
}

.card .flex {

  justify-content: flex-end;
  align-items: center;
  vertical-align: bottom;
}

.name {
  margin-bottom: 0;
}


.person {
  width: 85px;
}

.round2 {
  margin-top: 10rem;
  position: relative;
  top: 5px;
}


/* =================================================
news
=================================================*/

#news {
  background-color: var(--base-color);
}

#news .wrapper {
  padding: 4rem 0;
}

#news .news_content {
  /* background-color: #23969D; */
  max-width: 1200px;
  margin: 0 auto;
  justify-content: space-between;
  padding: 1rem;
  gap: 1rem;
}



#news .news_content h2 {
  font-size: 5rem;
}


.news1 a {
  color: var(--text-color2);
  letter-spacing: .05rem;
}

.news_frame {
  border-bottom: solid #C4C4C4 1px;
  padding: 1.5rem 1rem;
}

#news .news_frame>a.flex {
  align-items: center;
  gap: 3rem;
}

#news dd.flex {
  align-items: center;
}

.couse_tag {
  background-color: #E6E6D9;
  padding: .5rem 1.5rem;
  border-radius: 100px;
}

#news dd.flex p {
  margin-left: 1rem;
}

.morecontents {
  position: relative;
}

.news1 .more {
  display: inline;
  text-align: right;
  margin-top: 1rem;
  position: absolute;
  right: 0;
}

.b-text p {
  line-height: 2;
}

/* ニュース一覧ページーーーーーーーーーーーーーーーーーーーーーーーー */
.newspage {
  padding-top: 140px;
  padding-bottom: 400px;
}

.category {
  padding: 3rem 0rem 1rem;
}

.category ul {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.category ul li {
  border: #E6E6D9 1px solid;
  border-radius: 100px;
  padding: .5rem 1rem;
}

.category ul li a {
  color: var(--text-color2);
  font-size: 0.85rem;
}

/* news投稿ページーーーーーーーーーーーーーーーー */
.single_news {
  max-width: 1200px;
  padding: 2rem;
  margin: 5rem auto 0;
  color: var(--text-color2);

}

.single_news h3 {
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: .15rem;
}



.b-top {
  display: flex;
  letter-spacing: .15rem;
  font-size: .75rem;
  gap: 2rem;
  margin-bottom: 1rem;
}

.b-text {
  text-align: justify;
  margin: 6rem 0;
  letter-spacing: .1rem;
  line-height: 1.7;
}


/* =================================================
price
=================================================*/


.price_wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 4rem 0;
}



#price {
  background-color: var(--base-color);
}

#price .price_wrapper .plan {
  box-shadow: #424242;
  border-radius: 20px;
  box-shadow: 1px 1px 20px #5858401f;
  width: calc((100% - 2rem) / 3);
  height: auto;

}

.plan_card {
  gap: 1rem;
  padding: 0 1rem 15rem;
}



.blue {
  background-color: #3b9691c2;
  text-align: center;
  border-radius: 20px 20px 0 0;
  padding: 1rem 2rem;
  height: 30%;
}

.blue h4 {
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 1rem;
}

.blue p {
  font-size: 0.875rem;
}



/* ------- */

.white {
  background-color: var(--text-color1);
  text-align: center;
  padding: 2rem;
  border-radius: 0 0 20px 20px;
  height: calc(100% - 30%);
}

.white .flex {
  flex-direction: column;
}

.white span {
  color: var(--text-color2);
}

.white strong {
  font-size: 3rem;
  font-family: "ABeeZee", sans-serif;
  font-weight: 300;
  font-style: normal;
}

.plan:nth-child(3) .white strong {
  font-size: 2rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-style: normal;
  color: var(--text-color2);
  letter-spacing: .25rem;
}


.white .line {
  color: var(--main-color);
  margin: 2rem 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.line::before,
.line::after {
  content: "";
  flex-grow: 1;
  height: 1px;
  background: var(--main-color);
  margin: 0 1rem;
}

.white .course_plan {
  color: var(--text-color2);
}

.white .course_plan ul li {
  font-size: 0.875rem;
  width: calc(100% / 2);
  text-align: left;
}

.white .course_plan ul li::before {

  content: "⚫︎";
  color: var(--main-color);
}

.white .course_plan .flex {
  flex-direction: row;
  gap: 1rem 0;
  flex-wrap: wrap;
}


/* =================================================
information
=================================================*/

#information {
  color: var(--text-color2);
  background-image: url(img/information.png);
  background-size: 840px;
  background-position: 1rem 150px;
}

#information>.wrapper>.flex {
  max-width: 1200px;
  margin: 0 auto;

}


.information_card {
  background-color: var(--base-color);
  padding: 6rem 2rem;
  margin: 20rem 1rem;
  width: calc((100% - 4rem) / 2);
  border-radius: 30px;
}

.information_card h3 {
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: .15rem;
}



#information .content {
  flex-direction: column;
  align-items: center;
  gap: 3rem;
  justify-content: space-between;
  height: 100%;
}

#information .content>p {
  text-align: center;
  max-width: 360px;
  line-height: 2rem;
}

#information .button {
  max-width: 300px;
  justify-content: flex-end;
  gap: 2.5rem;
  margin: 0;
  padding: 1rem 5rem;

}


#information .button span {
  margin-left: 2rem;
}


/* =================================================
footer
=================================================*/

footer {
  border-top: solid var(--text-color1) 1px;
}


.footer_content.flex {
  padding: 3rem;
  /* background-color: #23969D; */
  margin: 0 auto;

  justify-content: space-between;
}

/* left */
footer .footer_left h2 {
  font-size: 40px;
  font-weight: 400;
  letter-spacing: .25rem;
  margin-bottom: 1rem;
  width: 150px;
}

footer .footer_left address p {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: 1.8rem;
  letter-spacing: .15rem;
  font-size: 0.875rem;
}

footer .footer_left address p:nth-child(2) {
  font-size: 1.25rem;
  margin-bottom: 2rem;
}

footer .sns a {
  display: inline-block;
  width: 30px;
}

footer .sns.flex {
  gap: 1rem;
}




/* right */
footer .footer_right.flex {
  flex-direction: column;
}

footer .footer_right p {
  font-size: 0.9rem;
  letter-spacing: .05rem;
}

footer .btn_conntent.flex {
  gap: 1rem;
}

footer .btn.flex {
  border: solid var(--text-color1) 1px;
  padding: .8rem;
  width: 11.625rem;
  border-radius: 100px;
  justify-content: center;
}

footer a:nth-child(2) .btn,
footer a:nth-child(3) .btn {
  width: 17.6875rem;
}


footer .guide_content.flex {
  margin-top: 1rem;
  gap: 1rem;
  justify-content: space-between;

}

footer .guide {
  padding: .5rem;
  border-bottom: solid var(--text-color1) 1px;
  flex-grow: 1;
}

footer .guide a p {
  margin-right: 3rem;
}


footer .copy {
  text-align: center;
  padding: 1rem 0;
}

footer small {
  font-weight: 200;
}


.pagetop {
  height: 60px;
  width: 60px;
  position: fixed;
  right: 1rem;
  bottom: 30px;
  background: #ffffff73;
  border: solid 1.5px var(--main-color);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  opacity: 0;
  transition: .3s;
}

.pagetop__arrow {
  height: 15px;
  width: 15px;
  border-top: 2px solid var(--main-color);
  border-right: 2px solid var(--main-color);
  transform: translateY(20%) rotate(-45deg);
}





@media screen and (max-width: 1180px) {

  html {
    font-size: 14px;
  }


  body::before {
    content: "";
    display: block;
    /*::beforeで書きだす擬似要素をブロックレベルにするのを忘れずに*/
    position: fixed;
    /*この場合body要素の親であるhtml要素へのpositionです*/
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    /*html要素に対して幅100％に*/
    height: 100vh;
    /*html要素に対して高さ100vhに*/
    background: url(img/bg.jpg) center/cover no-repeat
      /*fixedをトル！これやんなきゃ意味無い*/

  }



  .wrapper.flex {
    display: flex;
    flex-direction: row;
  }

  .wrapper h1 {
    max-width: 200px;
  }

  /* ハンバーガーメニュー */
  .material-symbols-outlined {
    display: flex;
  }


  /* main */

  .main_text.flex {
    flex-wrap: wrap;
  }

  .main_text h2 {
    font-size: 6vw;
  }

  .main_text p {
    font-size: 1.5rem;
  }

  /* header */

  header nav.flex {
    /* display: none; */
    background-color: var(--base-color);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* 固定配置 */
    position: fixed;
    /* 幅を再設定 */
    width: 100%;
    /* 高さをビューポートと同じサイズに指定 */
    height: 100vh;
    /* 左の位置指定 */
    right: -100vw;
    /* 上の位置指定（ビューポートの外に） */
    top: 0;
    /* 重なり順を上げる（2番目） */
    z-index: 99;
    /* 表示/非表示のアニメーション設定 */
    transition: right .25s ease-out;


  }

  header nav.open {
    /* 上の位置指定（ビューポート内に） */
    /* top: 0; */
    right: 0;
  }

  header nav ul li a {
    color: var(--main-color) !important;
  }

  .button {
    margin: 1rem;
  }


  header nav ul.flex {
    flex-direction: column;
    align-items: center;
  }



  header>.flex {
    display: block;
  }


  /* about */

  #about .wrapper.flex {
    flex-direction: column;
  }


  #about .about_img {
    margin-left: auto;
  }

  #about .about_img img {
    padding: 1rem;
  }


  .about_text {
    max-width: 100%;
  }

  .about_text p {
    width: 100%;
    max-width: 460px;
  }

  .about_img {
    max-width: 40%;
    min-width: 300px;
    margin: 0 1rem 0 0;
  }


  /* voice */

  #voice>.wrapper>.flex {
    flex-direction: column;
    align-items: center;
  }

  .card.flex {
    gap: 1rem;
    max-width: 520px;
  }

  /* news */
  .news_content.flex {
    flex-direction: column;
  }

  #news .news_frame>a.flex {
    align-items: flex-start;
  }

  #news .news_content h2 {
    font-size: 6rem;
  }


  #news dd.flex {
    flex-direction: column;
    align-items: start;
    gap: .5rem;
  }

  #news .news_content {
    /* background-color: #23969D; */
    max-width: 800px;
    margin: 0 auto;
  }

  /* #news .news_frame>a.flex {
    flex-direction: column;
    gap: 1rem;
  } */

  /* .news_frame {
    max-width: 800px;
    margin: 0 auto;
  } */
/* 
  .morecontents {
    max-width: 800px;
    position: relative;
  }

  .more {
    max-width: 800px;
    margin: 0 auto;
    
  } */

  /* news詳細ページーーーーーーーーーーーーーーーーーー */
  .category {
    max-width: 800px;
    margin: 0 auto;
  }


  .category ul {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .5rem;
  }




  /* plan */
  .plan_card {
    flex-direction: column;
    align-items: center;
    max-width: 600px;
    margin: 0 auto;
  }

  #price .price_wrapper .plan {
    width: 100%;
  }

  .white .course_plan ul {
    max-width: 320px;
    margin: 0 auto;
  }


  /* information */
  #information>.wrapper>.flex {
    flex-direction: column;
    margin: 5rem 0;
  }

  .information_card {
    padding: 4rem 2rem;
    margin: .5rem 1rem;
    width: calc((100% - 2rem) / 1);
    border-radius: 30px;
    max-width: 600px;
    margin: .5rem auto .5rem;
  }

  #information {
    background-image: none;
  }


  footer .footer_content.flex {
    flex-direction: column-reverse;
  }

  footer .btn_conntent,
  footer .guide_content {
    flex-direction: column;
    margin-bottom: 3rem;
  }

  footer .guide_content .guide .flex {
    justify-content: space-between;
  }

  .pagetop,
  .pagetop__arrow {
    display: none;

  }


}


@media screen and (max-width: 700px) {

  body {
    background: none;
  }

  body::before {
    content: "";
    display: block;
    /*::beforeで書きだす擬似要素をブロックレベルにするのを忘れずに*/
    position: fixed;
    /*この場合body要素の親であるhtml要素へのpositionです*/
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    /*html要素に対して幅100％に*/
    height: 100vh;
    /*html要素に対して高さ100vhに*/
    background: url(img/bg_sp.jpg) center/cover no-repeat
      /*fixedをトル！これやんなきゃ意味無い*/

  }



  .about_text h3 {
    font-size: 1.5rem;
  }



  .img-pc {
    display: none;
  }

  .img-sp {
    display: block;
    width: 100%;
  }

  .img-sp img {
    width: 100%;
  }

  .main_text h2 {
    font-size: 2.5rem;

  }

  .main_text.flex {

    padding: 0;
  }

  .main_text p {
    margin-left: 0;
  }


  /* news */
  #news .news_frame>a.flex {
    flex-direction: column;
    align-items: start;
    gap: 1rem;
  }

  #news .news_frame {
    padding-right: 0;
  }

  .couse_tag {
    font-size: .85rem;
  }

  #news dd.flex p {
    margin-left: 0;
    font-size: .95rem;
  }

  /* news詳細ページーーーーーーーーーーーーーーーーーーー */
  .category ul li a {
    font-size: 0.75rem;

  }

  .category ul li {
    padding: .2rem 1rem .5rem;
  }

  /* news投稿ページーーーーーーーーーーーーーーーー */
  .single_news {
    margin: 0 auto;

  }

  .newspage {
    padding-bottom: 200px;
  }

}

/* ===============================================
# slick
=============================================== */


.course_content.slick>.slick_box:not(:first-child) {
  display: none;
}


#course .wrapper {
  padding-bottom: 10rem;
}


.course_content.slick a {
  margin-right: 3vw;
}


.slick-prev,
.slick-next {
  top: -7vh;
  border: 1.5px solid var(--main-color);
  background: #ffffff73;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  right: 5%;
}

.slick-prev::before,
.slick-next::before {
  content: "";
  font-size: 20px;
  right: 80px;
  height: 15px;
  width: 15px;
  color: var(--main-color);
  border-top: 2px solid var(--main-color);
  border-right: 2px solid var(--main-color);
  transform: rotate(45deg);
}



.slick-prev::before {
  transform: rotate(225deg);
  position: relative;
  left: 2px;
}

.slick-next::before {
  position: relative;
  left: -2px;
}



.slick-prev {
  transform: translate(-80px, -30px);
}


.slick-track {
  display: flex;
}

.slick-track .slick-slide {
  height: auto;
}

#course .course_box {
  max-width: none;
  height: 95%;
}

.course_img img,
.course_img2 img {
  opacity: 0;
}



.course_box.slick-slide .course_img img,
.course_box.slick-slide .course_img2 img {
  opacity: 1;
}