/*--------------------------------------------------------------
# base-layout
--------------------------------------------------------------*/
:root {
  --bs-gutter-x : 1.5rem;
}
.inner{
  width: 100%;
  padding-right: var(--bs-gutter-x, 0.75rem);
  padding-left: var(--bs-gutter-x, 0.75rem);
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) {
  :root {
    --bs-gutter-x : 4.0rem;
  } 
}
@media (min-width: 992px) {
  :root {
    --bs-gutter-x : 0.75rem;
  }  
  .inner{
    max-width: 970px;
  }
}
@media (min-width: 1200px) {
  .inner{
    max-width: 1080px;
  }
}

@media (min-width: 1200px) {
  .page-container{
    padding-right:132px;
  }
}

/*--------------------------------------------------------------
# header
--------------------------------------------------------------*/
.header-wrapper{
  background-color:#FFFFFF;
}
.header-columns{
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  width: 100%;
  display:flex;
  justify-content: space-between;
  align-items:center;
  background:#6BE2DC;
  margin:0 auto;
  padding:5px 15px;
}
.header-brand{
  width:100%;
  height: 54px;
  margin-right:10px;
  display:flex;
  justify-content: space-between;
  align-items:center;
}
.header-logo{
  width:58.14%;
  line-height:1;
  margin:0 10px;
}
.header-logo img{
  width:300px;
}
#header .donation {
  display: flex;
  justify-content: center;
  align-items:center;
  width:26.61%;
  height:100%;
  color:#FFFFFF;
  background-color:#002F7C;
}
#header .donation a{
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: clamp(1.2rem , 2.1661vw , 1.6rem);
  color:#FFFFFF;
}
#header .donation a:before{
  content: "";
  display: block;
  margin: 0 auto;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 27px;
  height: 27px;
  background-size:22px 20px;
  background-image: url(../img/common/icon-donation.svg);
}
#header .gmenu{
  width:16.02%;
  height:100%;
  background-color:#49AAAB;
}
#header .gmenu .openbtn-title{
  font-size: clamp(1.2rem , 2.1661vw , 1.6rem);
}

.header-contact{
  max-width:500px;
  display:flex;
  justify-content: center;
  align-items:center;
}

.header-contact .title{
  font-size:clamp(1.2rem , 2vw ,1.4rem);
  font-weight:700;
  margin-right:10px;
}
.header-contact .phone{
  width:20px;
  height:20px;
  object-fit: cover;
  margin-right:5px;
}
.header-contact .number{
  font-size:clamp(1.6rem , 2vw, 3.2rem);
  font-weight:700;
  font-family:"Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  margin-right:10px;
}
.header-contact .icon{
  width:40px;
  height:40px;
}
@media (min-width: 992px) {
  #header{
    position:sticky;
    top:0;
    z-index:10;
  }
  .header-columns{
    position: relative;
  }
  .header-brand{
    height: 114px;
  }
  .header-logo{
    padding:0;
  }
  .header-logo img{
    width:auto;
    border:none;
    padding:0;
  }
  #header .donation {
    position:absolute;
    top:0;
    right:132px;
    width:220px;
    height:114px;
  }
  #header .donation a:before{
    width: 54px;
    height: 54px;
    background-size:44px 39px;
    background-image: url(../img/common/icon-donation.svg);
  }
  #header .gmenu{
    position:fixed;
    top:0;
    right:0;
    display: flex;
    justify-content: center;
    align-items:center;
    width:132px;
    height:114px;
    color:#FFFFFF;
    z-index:10;
  }
  
}
/*--------------------------------------------------------------
# footer
--------------------------------------------------------------*/
#footer .wrapper{
  color:#FFFFFF;
  background-color:#002F7C;
  padding:0 0 1em;
}
#footer .policy a{
  color:#FFFFFF;
  text-decoration:underline;
  text-underline-offset: 0.2em;
}
#footer .brand{
  max-width:275px;
  display: flex;
  justify-content: center;
  margin:auto;
}
#footer .brand img{
  padding:15px;
}
#footer .address .text{
  text-align:center;
}
#footer .copyright{
  text-align:center;
  color:#FFFFFF;
  background-color:#002F7C;
  padding:0.25em;
}
#footer .copyright .text{
  font-size: clamp(1.0rem , 1.8051vw , 1.6rem);
}

#footer .sns{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:10px 0;
}
#footer .sns img{
  width:40px;
  margin:0 10px;
}
@media (min-width: 1200px) {
  #footer .wrapper{
    padding:45px 132px 45px 0;
  }
  #footer .content-block{
    display:flex;
    justify-content:space-between;
  }
  #footer .content-item:last-child{
    width:215px;
  }
  #footer .brand{
    max-width:none;
    display:block;
    margin-bottom:1em;
  }
  #footer .brand img{
    padding:0;
  }
  #footer .address .text{
    text-align:left;
  }
  #footer .sns{
    justify-content:space-between;
    margin:0 0 10px;
  }
  #footer .sns img{
    width:45px;
    margin:0;
  }
  #footer .copyright{
    text-align:center;
    color:#002F7C;
    background-color:#FFFFFF;
    padding:0.5em 132px 0.5em 0;
  }
}

/*--------------------------------------------------------------
/* page-top
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# side
--------------------------------------------------------------*/
.submenu{
  display: flex;
  flex-direction: column-reverse;
  padding-bottom:62px;
}
.submenu .pagetop{
  position:relative;
  width:100%;
  height:100%;
  text-align:center;
}
.submenu .pagetop a{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items:center;
  width:100%;
  height:100%;
  font-size:1.8rem;
  font-weight:700;
  line-height:1.6;
}
.submenu .pagetop a::before{
  display:block;
  content:'▲'
}

.submenu-list{
  position:fixed;
  display:flex;
  border:1px solid #AFAFAF;
  background-color:#FFFFFF;
  bottom:0;
  width:100%;
  height:62px;
  z-index:100;
}
.submenu-item{
  flex:1;
  text-align:center;
}
.submenu-item:not(:last-child){
  border-right:1px solid #4D4D4D;
}
.submenu-item a{
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: clamp(1.2rem , 2.1661vw , 1.6rem);
}

.sidemenu-wrap{
  position:sticky;
  top:20px;
}
.submenu-item a:before{
  content: "";
  display: block;
  margin: 5px auto;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 25px;
  height: 25px;
}
.submenu-item:nth-child(1) a:before{
  background-image: url(../img/common/icon-document.svg);
}
.submenu-item:nth-child(2) a:before{
  background-image: url(../img/common/icon-line.svg);
}
.submenu-item:nth-child(3) a:before{
  background-image: url(../img/common/icon-access.svg);
}
.submenu-item:nth-child(4) a:before{
  background-image: url(../img/common/icon-mail.svg);
}

@media (min-width: 1200px) {
  .submenu{
    width:132px;
    height:calc(100vh - 114px);
    position:fixed;
    position: -webkit-sticky; /* Safari */  
    top:114px;
    right:0;
    display: flex;
    flex-direction: column;
    background-color:#FFFFFF;
    border-left:1px solid #AFAFAF;
    padding-bottom:0;
  }
  .submenu .pagetop .rotate-r{
    display:block;
    transform: rotate(90deg);
    margin:2.5em auto;
  }
  .submenu-item{
    border-bottom:1px solid #4D4D4D;
  }
  .submenu-item:not(:last-child){
    border-right:none;
  }
  .submenu-list{
    position:static;
    display:block;
    border:none;
    width:auto;
    height:auto;
  }
  .submenu-item{
    display: flex;
    justify-content: center;
    align-items:center;
    width:132px;
    height:132px;
    background-color:#FFFFFFAA;
  }
  .submenu-item:hover{
    background-color:#FFFFFF;
  }
  .submenu-item a:before{
    width: 40px;
    height: 40px;
    margin:5px auto 10px;
  }
}



.sidemenu > .nav-item{
  margin-bottom:10px;
}
.sidemenu > .nav-item > a{
  display: block;
  font-size:1.4rem;
  font-weight:700;
  color:#000000;
  background:#FFFFFF;
  padding:0.25em;
}
.sidemenu > .nav-item > .sub-menu{
  display:none;
  background:#FFFFFF66;
}
.sidemenu > .nav-item > .sub-menu > .nav-item a{
  display: block;
  font-size:1.0rem;
  font-weight:700;
  color:#000000;
  padding:0.25em 0;
}
.sidemenu > .nav-item > .sub-menu > .nav-item a::before{
  content:'・';
}

.sidemenu > .home-item{
  border:2px solid #FFFFFF;
}
.sidemenu > .home-item > a{
  background:none;
}
.sidemenu > .nav-item.current-item > a,
.sidemenu > .nav-item.current-parent > a{
  color:#FFF;
  background:#000000;
}
.sidemenu > .nav-item.current-item > .sub-menu,
.sidemenu > .nav-item.current-parent > .sub-menu{
  display:block;
}

.sidemenu > .link-item a,
.sidemenu > .link-item.current-item > a,
.sidemenu > .link-item.current-parent > a{
  font-size:1.2rem;
  color:#000000;
  background:none;
}
.sidemenu > .link-item a::before{
  content:'・';
}


/*--------------------------------------------------------------
# page
--------------------------------------------------------------*/
.page-breadcrumb{
  display:flex;
  align-items:center;
  width:100%;
  height:60px;
  background-color:#EAEAEA;
}
.page-breadcrumb > *{
  font-size:1.4rem;
  font-weight:700;
  color:#000000;
}
.page-breadcrumb .current-item{
  text-decoration: underline;
}
.page-contents > section{
  margin-bottom:50px;
}
@media (min-width: 992px) {
  .page-breadcrumb > *{
    font-size:1.6rem;
  }
  .page-contents > section{
    margin-bottom:100px;
  }
}



/*text*/
.lead{
  font-size:clamp(1.6rem , 2.0833vw , 1.8rem);
}
.text{
  font-size:clamp(1.4rem , 1.8229vw , 1.6rem);
}
.notes{
  font-size:clamp(1.2rem , 1.5625vw , 1.6rem);
}
.link{
  display: flex;
  justify-content: space-between;
  width:100%;
}
.link a{
  display: block;
  width:100%;
  font-size:clamp(1.8rem , 3.2491vw , 2.4rem);
  text-align:center;
  color:#333333;
  background-color:#CEC136;
  padding:1em 0;
}
.br-pc{
  display:none;
}
.br-sp{
  display:block;
}
.attention{
  font-weight:700;
  color:#961D22;
}
.marker{
  background:linear-gradient(transparent 60%, #F3E688 60%);
}
.bg-white{
  width: 100%;
  background: #FFFFFF;
  margin: 2.5% auto;
  padding: 15px;
}
.text-center{
  text-align:center;
}
.text-right{
  text-align:right;
}
.no-wrap{
  display:inline-block;
}
@media (min-width: 768px) {
  .br-pc{
    display:block;
  }
  .br-sp{
    display:none;
  }
}


.counter{
  counter-reset: number 0;
}
.number::before{
  font-size:clamp(2.4rem , 3.125vw , 5.2rem);
  font-weight:700;
  color:#002E7B;
  counter-increment: number 1;
  content: counter(number, decimal-leading-zero);
  margin-right:0.4em;
}
.gmap{
  position: relative;
  height: 100%;
  overflow: hidden;
  padding-bottom: 71.764%;
}
.gmap iframe{
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width:100%;
}


/*アコーディオンメニュー*/
.acd-check{
  display: none;
}
.acd-label{
  position: relative;
  display: flex;
  align-items:center;
  font-size:clamp(1.2rem , 2vw, 1.6rem);
  font-weight:700;
  background: #FFFFFF;
  color: #000000;
  border-radius:10px;
  padding: 10px 60px 10px 60px;
}
.acd-label:after{
  background: #FFFFFF;
  content: url("../img/common/icon-arrow.svg");
  display: flex;
  align-items:center;
  width:auto;
  height:100%;
  font-family: "Font Awesome 5 Free";
  border-radius:10px;
  position: absolute;
  right: 0;
  top: 0px;
  padding: 10px 20px;
}
.acd-content{
  background:#FFFFFF;
  border-radius:0 0 10px 10px;
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: .4s;
  margin-top:-4px;
  margin-bottom:18px;
  padding:0;
}

.acd-check:checked + .acd-label:after{
  transform:rotateX(180deg);
  transition-duration: .4s;

}
.acd-check:checked + .acd-label + .acd-content{
  height: auto;
  opacity: 1;
  padding: 10px 80px 10px 40px;
}


/*page*/
.page-visual{
  position:relative;
  margin-bottom:76px;
  padding-top: min(50vw , 324px);
}
.page-visual-inner{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.page-visual-inner{
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),url("../img/visual/visual.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.page-title{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width:100%;
  height:100%;
  font-size:clamp(2.4rem , 3.125vw , 3.2rem);
  text-align:center;
  letter-spacing:0.1em;
  color:#FFFFFF;
}
.page-title::after{
  display: block;
  content:attr(data-title-en);
  font-size:clamp(2.4rem , 3.125vw , 2.8rem);
  width:100%;
  max-width:450px;
  border-top:1px solid #FFFFFF;
}

.section-title{
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width:100%;
  height:100%;
  font-size:clamp(2.4rem , 3.125vw , 3.7rem);
  font-weight:400;
  text-align:center;
  letter-spacing:0.1em;
  margin-bottom:1.625em;
}
.section-title::after{
  display: block;
  content: "";
  width:100%;
  max-width:128px;
  border-top: 3px solid #49B1B2;
  margin-top:0.25em;
}
.news-category{
  width:7em;
  font-size:1.2rem;
  text-align:center;
  color:#49bbbc;
  border:2px solid #49bbbc;
  background: #FFFFFF;
  margin-bottom:10px;
  padding:0 0.15em;
}
.news-title{
  line-height:1.2;
}
.news-category a{
  text-decoration: none;
  color:#FFFFFF;
}
.news-category-event{
  color:#FFFFFF;
  background:#F4A01C;
  border:2px solid #F4A01C;
}
.news-category-info{
  color:#FFFFFF;
  background:#EC6A37;
  border:2px solid #EC6A37;
}
.news-category-media{
  color:#FFFFFF;
  background:#438600;
  border:2px solid #438600;
}
.news-category-admission{
  color:#FFFFFF;
  background:#13A9A9;
  border:2px solid #13A9A9;
}

.fadeup{
  animation-name:fadeUpAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  opacity:0;
}

@keyframes fadeUpAnime{
  from {
  opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}
