@charset "UTF-8";
:root{
  --main-color: #00A0E9;
  --sub-color: #E7ECD5;
}

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

body{
  font-family: 'メイリオ', Meiryo,sans-serif;
  background-color: #F5F5F5;
}

.visible-pc{
  display: block;
}

.visible-sp{
  display: none;
}

/* ヘッダー
̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶ ̶  */

header{
  background-color: #FFF;
  box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.16);
  padding-bottom: 24px;
}

.header__column{
  width: 100%;
  height: 26px;
  background-color: var(--main-color);
}

.header__column__text{
  display: block;
  max-width: 1010px;
  font-size: 14px;
  color: #FFF;
  line-height: 26px;
  margin: 0 auto;
}

.header__ttl{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1300px;
  height: 98px;
  margin: 0 auto;
}

.header__ttl__logo{
  max-width: 300px;
}

.header__ttl__logo img{
  width: 100%;
}

.header__ttl__box{
  height: 98px;
  display: flex;
  align-items: center;
}

.header__ttl__tel{
  margin-right: 18px;
  max-width: 264px;
}

.header__ttl__tel img{
  max-width: 100%;
}

.header__ttl__reservation{
  opacity: 1;
  transition: 0.5s;
  max-width: 335px;
}

.header__ttl__reservation:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.header__ttl__reservation img{
  max-width: 100%;
}

.main-visual{
  border-top: 3px solid #EBECE7;
  border-bottom: 3px solid #EBECE7;
  text-align: center;
}

.main-visual__image img{
  width: 100%;
  max-width: 1300px;
  height: 346px;
  object-fit: cover;
}

.header__nav__list{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1010px;
  margin: 23px auto 0;
  text-align: center;
}

.header__nav__item{
  width: 144px;
  height: 48px;
  line-height: 48px;
  border-left: 1px solid #ccc;
  transition: 0.5s;
  font-size: 16px;
  font-weight: bold;
}

.header__nav__item:hover{
  opacity: 0.7;
  transition: 0.5s;
}

.header__nav__item:last-of-type{
  border-right: 1px solid #ccc;
}


.header__nav__item a{
  position: relative;
}

.header__nav__item a::after{
  display: block;
  content: "";
  width: 0;
  height: 2px;
  position: absolute;
  bottom: -2px;
  left: 0;
  background: #000000;
  transition: width 0.3s;
}

.header__nav__item a:hover::after{
  transition: width 0.3s;
  width: 100%;
}

.container{
  max-width: 1042px;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 40px 16px 0;
  margin-bottom: 140px;
}

main{
  max-width: 732px;
  margin-right: 20px;
}

.heading-ttl{
  background-color: var(--sub-color);
  max-width: 100%;
  height: 50px;
  line-height: 50px;
  font-size: 22px;
  font-weight: bold;
  padding-left: 27px;
  position: relative;
}

.heading-ttl::before{
  content: "";
  display: block;
  width: 7px;
  background-color: var(--main-color);
  height: 30px;
  position: absolute;
  top:50%;
  left: 10px;
  transform: translateY(-50%);
}

.news,.course,.voice{
  margin-bottom: 40px;
}

.news__item{
  padding-top: 5px;
  margin-bottom: 28px;
}

.news__item__date{
  font-size: 16px;
  color: #aaa;
  padding-top: 16px;
}

.news__item__text{
  font-size: 22px;
  font-weight: bold;
  color: var(--main-color);
  padding-top: 10px;
}

.news__item__btn{
  max-width: 190px;
  height: 36px;
  background-color: #F39800;
  border-radius: 6px;
  line-height: 36px;
  padding-left: 38px;
  color: #FFF;
  font-size: 14px;
  font-weight: bold;
  margin-left: auto;
  position: relative;
  opacity: 1;
  transition: 0.5s;
}

.news__item__btn:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.news__item__btn::after,.news__item__btn::before{
  display: block;
  content: "";
  width: 11px;
  border-bottom: 2px solid #FFF;
  position: absolute;
  right: 21px;
}

.news__item__btn::after{
  top: 40%;
  transform: rotate(30deg);
}

.news__item__btn::before{
  top: 55%;
  transform: rotate(-30deg);
}

.course__text{
  padding-top: 20px;
  line-height: 28px;
  color: #333;
}

.course__card{
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}

.course__card__img{
  max-width: 232px;
  opacity: 1;
  transition: 0.5s;
  margin-right: 18px;
}

.course__card__img:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.course__card__img:last-of-type{
  margin-right: 0;
}

.course__card__img img{
  width: 100%;
}

.voice__card{
  width: 100%;
  background-color: #FFF;
  border: 1px solid #CECEBF;
  display: flex;
  padding: 25px 21px 25px 25px;
  margin-bottom: 25px;
  align-items: center;
}

.voice__card:first-of-type{
  margin-top: 24px;
}

.voice__card__img{
  max-width: 178px;
}

.voice__card__img img{
  width: 100%;
  height: auto;
  display: block;
}

.voice__card__unit{
  padding-left: 25px;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
}

.voice__card__ttl{
  font-size: 22px;
  font-weight: bold;
  color: var(--main-color);
  line-height: 32px;
  padding-bottom: 5px;
}

.voice__card__text{
  font-size: 16px;
  line-height: 28px;
  padding-top: 20px;
  border-top: 1px solid #ccc;
}

.voice__card__note{
  line-height: 24px;
  text-align: right;
}

.access{
  width: 100%;
  border: 1px solid #CECEBF;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 35px 35px 35px 32px;
  background-color: #FFF;
}

.access__tel{
  max-width: 264px;
}

.access__tel img{
  max-width: 100%;
}

.access__reservation{
  padding-left: 35px;
  border-left: 1px solid #CECEBF;
  opacity: 1;
  transition: 0.5s;
  max-width: 335px;
}

.access__reservation:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.access__reservation img{
  max-width: 100%;
}

aside{
  max-width: 258px;
}

.reservation,.taiken,.shop-info,.blog,.bnr{
  margin-bottom: 29px;
}

.aside__ttl{
  font-size: 22px;
  font-weight: bold;
  color: #333;
  position: relative;
  padding-left: 17px;
  margin-bottom: 10px;
}

.aside__ttl::before{
  content: "";
  display: block;
  width: 7px;
  background-color: var(--main-color);
  height: 30px;
  position: absolute;
  top:50%;
  left: 0;
  transform: translateY(-50%);
}

.reservation{
  opacity: 1;
  transition: 0.5s;
}

.reservation:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.reservation img{
  width: 100%;
}

.shop-info img{
  width: 100%;
  margin-bottom: 10px;
}

.shop-info__text{
  font-size: 14px;
  color: #333;
  line-height: 24px;
  padding-bottom: 10px;
}

.shop-info__text:last-of-type{
  padding-bottom: 0;
}

.blog__date{
  font-size: 12px;
  color: var(--main-color);
  padding-bottom: 5px;
}

.blog__ttl{
  font-size: 16px;
  font-weight: bold;
  color: var(--main-color);
  padding-bottom: 15.5px;
  border-bottom: 1px dotted #AAA;
  line-height: 28px;
  margin-bottom: 15.5px;
  opacity: 1;
  transition: 0.5s;
}

.blog__ttl:hover{
  opacity: 0.8;
  transition: 0.5s;
}

.bnr{
  padding-top: 1.5px;
}

.bnr__item{
  padding-bottom: 10px;
  opacity: 1;
  transition: 0.5s;
}

.bnr__item:hover{
  opacity: 0.8;
  transition: 0.5s;
}


.bnr__item:last-of-type{
  padding-top: 20px;
}

.bnr__item img{
  width: 100%;
}

footer{
  background-color: #FFF;
}

.footer__nav{
  width: 100%;
  background-color: var(--main-color);
}

.footer__nav__list{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1010px;
  height: 60px;
  margin: 0 auto;
  text-align: center;
}

.footer__nav__item{
  width: 144px;
  height: 30px;
  line-height: 30px;
  border-left: 1px solid #fff;
  transition: 0.5s;
  font-size: 16px;
  font-weight: bold;
  color: #FFF;
}

.footer__nav__item:hover{
  opacity: 0.7;
  transition: 0.5s;
}

.footer__nav__item:last-of-type{
  border-right: 1px solid #fff;
}


.footer__nav__item a{
  position: relative;
}

.footer__nav__item a::after{
  display: block;
  content: "";
  width: 0;
  height: 2px;
  position: absolute;
  bottom: -2px;
  left: 0;
  background: #fff;
  transition: width 0.3s;
}

.footer__nav__item a:hover::after{
  transition: width 0.3s;
  width: 100%;
}

.footer__box{
  display: flex;
  padding-top: 44px;
  justify-content: center;
  align-items: center;
  margin-bottom: 42.5px;
}

.footer__logo{
  width: 300px;
}

.footer__logo img{
  width: 100%;
}

.footer__tel{
  width: 264px;
  margin-left: 65px;
}

.footer__tel img{
  width: 100%;
}

small{
  display: block;
  text-align: center;
  font-size: 14px;
  color: #333;
}


@media screen and (max-width: 640px){

  .visible-pc{
    display: none;
  }

  .visible-sp{
    display: block;
  }

  body{
    font-family: 'メイリオ', Meiryo,sans-serif;
    background-color: #FFF;
  }
  

  header{
    box-shadow: none;
    padding-bottom: 0;
  }

  .header__column{
    height: auto;
    padding: 1.33vw;
  }

  .header__column__text{
    width: 100%;
    font-size: 0.875rem;
    line-height: 1.375rem;
    margin: 0 ;
  }

  .header__ttl{
    flex-direction: column;
    width: 100%;
    height: auto;
    padding: 4.27vw 4.27vw 2.67vw;
  }

  .header__ttl__logo img{
    width: 46.94vw;
    margin-bottom: 4.08vw;
  }

  .header__ttl__box{
    width: 100%;
    height: auto;
    justify-content: space-between;
  }
  
  .header__ttl__tel{
    margin-right: 0;
  }
  
  .header__ttl__tel img{
    width: 44.27vw;
  }
  
  .header__ttl__reservation img{
    width: 44.27vw;
  }

  .header__humburger{
    width: 100%;
    background-color: var(--main-color);
    padding: 10px;
    position: relative;
    margin-top: 10px;
  }

  .humburger{
    margin-left: auto;
    width: 30px;
  }

  .humburger span{
    display: block;
    height: 5px;
    margin-bottom: 5px;
    background-color: #FFF;
    transition: 0.5s;
  }

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

  .humburger.open span:first-of-type{
    transform: rotate(45deg) translate(10px, 4px) scale(1.1);
    transition: 0.5s;
  }

  .humburger.open span:nth-of-type(2){
    transform: translateX(65px) scale(0);
    transition: 0.5s;
  }

  .humburger.open span:last-of-type{
    transform: rotate(-45deg) translate(10px, -4px) scale(1.1);
    transition: 0.5s;
  }


  .header__nav-sp{
    width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: 0.5s ease;
  }
  
  .header__nav-sp.active{
    max-height: max-content;
    transition: .5s ease;
    margin-top: 7.47vw;
  }

  .header__nav-sp__item{
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.75rem;
    margin-bottom: 4vw;
  }

  .header__nav-sp__item::before{
    display: block;
    content: "";
    width: 1.75rem;
    height: 1.75rem;
    background-image: url(../img/icon_hamburger_nav.svg);
    float: left;
    clear: both;
    margin-right: 10px;
  }

  .main-visual__image img{
    width: 100%;
  }

  .container{
    width: 100%;
    display: block;
    padding: 5.33vw 4.27vw 0;
    margin-bottom: 0;
  }
  
  main{
    width: 100%;
  }

  .news,.course,.voice{
    margin-bottom: 10.67vw;
  }
  
  .news__item{
    padding-top: 1.33vw;
    margin-bottom: 7.47vw;
  }

  .news__item__date{
    font-size: 1rem;
    padding-top: 4.27vw;
  }
  
  .news__item__text{
    font-size: 1.375rem;
    padding-top: 2.67vw;
  }
  
  .news__item__btn{
    width: 50.67vw;
    height: 9.6vw;
    background-color: #F39800;
    line-height: 2.25rem;
    padding-left: 10.13vw;
    color: #FFF;
    font-size: 0.875rem;
  }

  .course__text{
    padding-top: 5.33vw;
    line-height: 7.47vw;
  }

  .course__card{
    margin-top: 5.33vw;
  }

  .course__card__img{
    width: 29.07vw;
  }

  .voice__card{
    display: block;
    padding: 4.27vw;
    margin-bottom: 6.67vw;
    text-align: center;
  }
  
  .voice__card:first-of-type{
    margin-top: 6.4vw;
  }
  .voice__card__img{
    width: 47.47vw;
    margin: 0 auto 4.27vw;
    ;
  }

  .voice__card__unit{
    padding-left: 0;
    text-align: left;
  }

  .voice__card__ttl{
    font-size: 1.125rem;
    line-height: 2rem;
    padding-bottom: 1.33vw;
  }

  .voice__card__text{
    font-size: 1rem;
    line-height: rem;
    padding-top: 5.33vw;
    border-top: 1px solid #ccc;
    margin-bottom: 8vw;
  }

  aside{
    width: 100%;
  }

  .reservation,.taiken,.shop-info,.blog,.bnr{
    margin-bottom: 7.73vw;
  }
  
  .aside__ttl{
    font-size: 1.375rem;
    padding-left: 4.53vw;
    margin-bottom: 2.67vw;
  }

  .shop-info img{
    margin-bottom: 2.67vw;
  }
  
  .shop-info__text{
    font-size: 0.875rem;
    line-height: 1.5rem;
    padding-bottom: 2.67vw;
  }

  .blog__date{
    font-size: 0.75rem;
    padding-bottom: 1.33vw;
  }

  .blog__ttl{
    font-size: 1rem;
    padding-bottom: 4.13vw;
    line-height: 28px;
    margin-bottom: 4.13vw;
  }


  .bnr{
    padding-top: 0.4vw;
  }
  
  .bnr__item{
    padding-bottom: 2.67vw;
  }
  
  .bnr__item:last-of-type{
    padding-top: 5.33vw;
  }

  .access-sp{
    border: none;
    display: block;
    padding: 0;
    background-color: #FFF;
    text-align: center;
  }
  
  .access-sp__tel img{
    width: 70.4vw;
    margin-bottom: 5.33vw;
  }
  
  .access-sp__contact{
    padding-left: 0;
    border-left: none;
  }
  
  .access-sp__contact img{
    width: 89.33vw;
  }
  
  footer{
    padding: 0 4.27vw;
  }
  .footer__nav-sp{
    width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: 0.5s ease;
  }
  
  .footer__nav-sp.active{
    max-height: max-content;
    transition: .5s ease;
    margin-top: 7.47vw;
  }

  .footer__nav-sp__item{
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.75rem;
    margin-bottom: 4vw;
  }

  .footer__nav-sp__item::before{
    display: block;
    content: "";
    width: 1.75rem;
    height: 1.75rem;
    background-image: url(../img/icon_hamburger_nav.svg);
    float: left;
    clear: both;
    margin-right: 10px;
  }

  .footer__humburger{
    width: 100%;
    background-color: var(--main-color);
    padding: 10px;
    position: relative;
    margin-top: 5.33vw;
  }

  .footer__box{
    padding-top: 10.88vw;
    margin-bottom: 10.67vw;
    justify-content: space-between;
  }

  .footer__logo{
    width: 41.98vw;
  }
  
  .footer__tel{
    width: 43.73vw;
    margin-left: 0;
  }

  small{
    font-size: 0.875rem;
    margin-bottom: 10.67vw;
  }

}