html {
  font-size: min(0.875rem, 3.64vw);
}

@media print,screen and (min-width:1024px) {
  html {
    font-size: 0.875rem;
  }
}
@media print,screen and (min-width:1200px) {
  html {
    font-size: 1rem;
  }
}

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

:root{
  --color-black:#333333;
  --color-gray:#adadad;
  --color-white:#fefefe;
  --color-green:#00c554;
  --color-green2:#00cc92;
  --color-yg:#81ce5b;
  --color-purple:#a665ab;
  --color-dBlue:#1f97ab;
  --color-blue:#33b4e8;
  --color-yBlue:#1fc7ab;
  --bg-lGreen:#f7f7f7;
  --bg-gradation:linear-gradient(90deg,rgba(94, 229, 151, 0.8) 0%, rgba(144, 255, 86, 0.3) 25%, rgba(55, 236, 186, 0) 50%);
  --bg-gradation2:linear-gradient(90deg,rgba(0, 161, 86, 1) 0%, rgba(0, 209, 137, 1) 50%, rgba(159, 255, 124, 1) 100%);
  --bg-gradationTitle:linear-gradient(180deg,rgba(149, 255, 176, 1) 0%, rgba(0, 146, 0, 0.8) 50%, rgba(55, 236, 186, 0.5) 100%);
  --bg:linear-gradient(24deg,rgba(94, 224, 89, 0.1) 0%, rgba(209, 255, 216, 0.1) 65%, rgba(155, 243, 224, 0.1) 100%);
  --bg-graDg:linear-gradient(0deg,rgba(0, 168, 73, 1) 0%, rgba(0, 197, 84, 1) 100%);
  --bg-graLg:linear-gradient(90deg,rgba(94, 224, 89, 0.2) 0%, rgba(209, 255, 216, 0.2) 69%);
  --bg-padding:min(2rem,4vw);
  --link-gra:linear-gradient(90deg,rgba(114, 175, 211, 1) 0%, rgba(31, 199, 171, 1) 50%, rgba(0, 204, 146, 1) 100%);
  --b-radius:min(1rem,2vw);
  --b-dashed: dashed 1px currentColor;
  --hover-opacity:.6;
  --hover-scale:scale(.95);
  --opacity-black:rgba(12, 10, 10, 0.5);
  --transition:all .5s cubic-bezier(.43,.05,.17,1);
  --contents-width:min(1140px, 86%);
  --section-margin:min(12rem,20vw);
  --line-height:2;
  --flex-gap:min(4rem, 4vw);
  --scale:scale(1.1);
  --font-size:min(2rem,6vw);
  --font-size2:min(1.4rem);
  --font-size3:min(1.24rem);
}

body {
  font-family: "Poppins","Zen Kaku Gothic New",'YuGothic','Yu Gothic','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','メイリオ','Meiryo','ＭＳ ゴシック',sans-serif;
  line-height: 1.75;
  letter-spacing: .05em;
  font-weight: 500;
  color: var(--color-black);
  position: relative;
}

a {
  text-decoration: none;
  color: var(--color-black);
  transition: var(--transition);
  font-weight: 500;
}

li{
  list-style: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

h1,h2,h3,h4,h5,h6{
  font-weight: 500;
}

article,section{
  position: relative;
}

/*--table--*/
table {
  clear: both;
  border-collapse: collapse;
  width: 100%;
}

table.table-main{
  margin-top: min(1rem, 2vw);
  margin-bottom: min(1rem, 2vw);
}

table.table-main,
.table-main th,
.table-main td,
.table-main2 th,
.table-main2 td{
  border: solid 1px var(--color-gray);
  text-align: center;
  line-height: 1.5;
  background: var(--color-white);
}

table.table-main th,
table.table-main2 th{
  color: var(--color-white);
  background: var(--color-yg);
  border-bottom: solid 1px var(--color-white);
}

table.table-main td a{
  color: var(--color-blue);
  text-decoration: underline;
}

table.table-main .thead th:first-of-type{
  background: #eaf7e3;
  color: var(--color-black);
}

td.table-details{
  text-align: left;
  background: var(--color-white);
}
td.table-details p{
  padding-bottom: min(.5rem);
}
td.table-details p:last-of-type{
  padding-bottom: 0;
}

span.price{
  font-size: 140%;
}

.table-contents{
  margin-bottom: min(1.24rem);
}
.table-contents p.bgGray-title{
  color: var(--color-white);
  margin-bottom: .6rem;
}
.table-contents p.bgGray-title span{
  background: var(--color-black);
  padding: min(.2rem) min(1.2rem);
}
.table-contents:last-of-type{
  margin-bottom: 0;
}

.table-app{
  padding-top: min(1rem);
}

.table-app a.link{
  color: var(--color-white);
  background: var(--color-green);
  text-decoration: none;
  display: block;
  margin-top: min(.4rem);
}

p.tableWrap-text{
  display: none;
}

table ul.table-list{
  display: flex;
  flex-direction: column;
  gap: calc(var(--flex-gap) / 6);
  text-align: left;
}
table ul.table-list li{
  position: relative;
  padding-left: min(1rem, 3.4vw);
}
table ul.table-list li::before{
  position: absolute;
  content: "";
  background: var(--color-yg);
  width: .6rem;
  height: .6rem;
  top: min(8px, 1.6vw);
  left: 0;
  border-radius: 50%;
}

table ul.table-list span{
  display: block;
}

table .table-bgYg{
  background: #eaf7e3;
}

table.table-main2 .table-main2_bgGr{
  background: var(--color-yg);
  color: var(--color-white);
  font-size: var(--font-size3);
  text-align: center;
}

table.table-main2 .table-main2_bgBl{
  background: var(--color-blue);
  color: var(--color-white);
  text-align: center;
}

.title-tb{
  writing-mode: tb;
}

.table-sticky .sticky{
  position: -webkit-sticky;
  position: sticky;
  height: 40px;
  left: 0;
  z-index: 6;
  width: min(10rem, 27vw);
}

.table-sticky .sticky td{
  border: solid 1px var(--color-gray);
}

.table-sticky th{
border-left: solid 1px var(--color-gray);
}

td,th{
  padding:min(1.5rem, 3.4vw) min(1rem, 3.4vw);
}

ul.table-bottomNotes{
  padding-top: min(1.24rem, 3vw);
}

.contents{
  width: var(--contents-width);
  margin: 0 auto;
  position: relative;
}

.svg-circle{
  fill: var(--color-black);
}

.deco-human{
  position: absolute;
  z-index: 2;
}


/*---- list -----*/
ul.contents-list{
  display: flex;
  flex-direction: column;
  gap: calc(var(--flex-gap) / 6);
  text-align: left;
}
ul.contents-list li{
  position: relative;
  padding-left: min(1rem, 3.4vw);
}
ul.contents-list li::before{
  position: absolute;
  content: "";
  background: var(--color-yg);
  width: .6rem;
  height: .6rem;
  top: min(8px, 1.6vw);
  left: 0;
  border-radius: 50%;
}

ul.contents-list.-list_blue li::before{
  background: var(--color-blue);
}


/*---- animation ----*/
.a-circle{
  animation: 16s linear infinite rotation;
}

@keyframes rotation {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

.parallax-element{
  position: relative;
  will-change: transform;
  transform: translateY(0);
  transition: transform 1s ease-out;
}

.scroll-fadeIn{
  opacity: 0;
  -webkit-opacity: 0;
}
.scroll-fadeIn.is-active{
  -webkit-animation: fadeIn .8s ease-out .4s forwards;
  animation: fadeIn .8s ease-out .4s forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.top-fw_humanItem .top-fw_bubble.scroll-fadeIn.is-active,
.top-fw_humanItem .top-fw_humanImg.is-active{
  animation: fadeIn .6s ease-out calc(var(--delay) * .4s) forwards;
  -webkit-animation: fadeIn .6s ease-out calc(var(--delay) * .4s) forwards;
}

.a-fuwafuwa{
  animation: fuwafuwa 4.2s infinite ease-in-out .8s alternate;
  -webkit-animation: fuwafuwa 4.2s infinite ease-in-out .8s alternate;
}
.a-fuwafuwa2{
  animation: fuwafuwa 4.2s infinite ease-in-out 2s alternate;
  -webkit-animation: fuwafuwa 4.2s infinite ease-in-out 2s alternate;
}

@keyframes fuwafuwa {
  0% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(0, -10%);
  }
  100% {
    transform: translate(0, 0);
  }
}

/*---- thumbnail ----*/
.thumbnail{
  overflow: hidden;
  aspect-ratio: 2 / 1;
  display: block;
  border-radius: var(--b-radius);
}
.thumbnail img{
  transition: var(--transition);
  width: 100%;
  height: 100%;
  object-position: center;
  object-fit: cover;
}


/*---- Youtube movie ----*/
.movie-wrapper{
  position: relative;
  padding-bottom: 54.5%;
}
.movie-wrapper::before{
  position: absolute;
  content: "";
  background: #0000004f;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

.movie-thumbnail{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

button.movie-button{
  border: solid 1px var(--color-white);
  background: transparent;
  border-radius: 50%;
  display: flex;
  -webkit-display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: min(18vw, 8rem);
  height: min(18vw, 8rem);
  appearance: none;
  -webkit-appearance: none;
  color: inherit;
  cursor: pointer;
  transition: var(--transition);
}

button.movie-button .svg-arrow{
  width: min(6vw, 3rem);
  height: min(6vw, 3rem);
  fill: var(--color-white);
}

.googleMaps{
  position: relative;
  padding-bottom: 31.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
}

.googleMaps iframe, .googleMaps object, .googleMaps embed{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.youtube{
  position:relative;
  width:100%;
  padding-top:62.25%;
}

.youtube iframe{
  position:absolute;
  top:0;
  right:0;
  width:100%;
  height:100%;
}


/*---- not found ----*/
.notFound{
  text-align: center;
  margin: min(17svh) 0;
}

.notFont-wrapper{
  width: 90%;
  margin: 0 auto;
}
.notFont-wrapper>h2{
  font-size: min(5rem,16vw);
  line-height: 1.2;
}
.notFont-wrapper>h2 span{
  display: block;
  font-size: 50%;
}

.notFont-wrapper p{
  padding: min(2rem, 5vw) 0;
}


/*---- title ----*/
.contents-title{
  font-size: min(2.64rem, 6vw);
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: min(1rem, 2vw);
  position: relative;
}

.contents-title>.contents-title_deco{
  position: relative;
  padding-left: min(3rem, 6vw);
}
.contents-title>.contents-title_deco::before{
  position: absolute;
  content: "";
  background: url(img/title-deco.svg) no-repeat center;
  background-size: 100%;
  width: min(2.4rem, 5vw);
  height: min(4rem, 8vw);
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.contents-title>.contents-title_image{
  width: min(6rem, 12vw);
}
.contents-title>.contents-title_text span{
  display: block;
  text-transform: uppercase;
  font-size: min(55%);
}

.contents-title2{
  display: flex;
  align-items: center;
  gap: calc(var(--flex-gap) / 4);
  line-height: 1.5;
  padding-bottom: min(1rem, 2vw);
}
.contents-title2>img{
  width: min(3rem, 9vw);
}
.contents-title2>h3{
  font-size: min(1.5rem);
}
/*.contents-title2>h3>span{
  font-size: min(150%);
}*/

.contents-title2.--center{
  justify-content: center;
}

.contents-title_detailsText{
  font-size: var(--font-size3);
    padding-bottom: calc(min(1.4rem, 2vw) * 2);
}

.contents-title_detailsText.--center{
  text-align: center;
}

.contentsBg{
  background: var(--bg-gradation);
  padding: min(4rem, 8vw) min(3rem, 6vw);
}

.contentsBg>.contentsBg-titleArea{
  display: flex;
  flex-wrap: wrap;
  gap: var(--flex-gap);
  margin: 0 auto;
}

.contentsBg .title-container{
  position: relative;
}

.contentsBg .title-container p{
  font-size: min(1.14rem, 3.4vw);
  font-weight: 500;
}

.contentsBg .title-container.contents{
  width: min(1140px, 100%);
}

.obi-title{
  color: var(--color-white);
  background: var(--bg-gradation2);
  font-size: min(1.14rem, 3.24vw);
  padding: .4rem 0;
  font-weight: 500;
}

/*---- link ----*/
.linkBtn{
  border: solid min(2px,.6vw) #5b5b5b;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(.5rem);
  padding: min(.6rem);
  width: min(14rem,42vw);
  margin: 0 auto;
}

.linkBtn svg.svg-rm{
  fill: #5b5b5b;
  display: block;
}

.linkBtn>.linkBtn-text{
  width: min(7rem,24vw);
}
.linkBtn>.linkBtn-arrow{
  width: min(1.6rem,5vw);
  position: relative;
  transition: var(--transition);
}
.linkBtn>.linkBtn-arrow img{
  display: block;
}

.linkBtn.-white{
  border: solid 2px var(--color-white);
  background: rgb(96 132 190 / 52%);
}
.linkBtn.-white svg.svg-rm{
  fill: var(--color-white);
}

.linkBtn.-gradation{
  border-image: linear-gradient(to right, #72AFD3, #1FC7AB, #00CC92) 1;
}
/*.linkBtn.-gradation svg.svg-rm{
fill: linear-gradient(to right, #72AFD3, #1FC7AB, #00CC92);
}*/

.linkBox{
  color: var(--color-white);
  background: var(--bg-graDg);
  padding:min(.5rem) min(1.5rem,4vw);
  border-radius: .5rem;
}

.linkBox.-blue{
  background: linear-gradient(0deg, rgb(0 133 193) 0%, rgba(0, 156, 226, 1) 100%);
}

.linkBox.noLinks{
  opacity: .5;
}

.textLink{
  font-size: var(--font-size2);
}
.textLink span{
  position: relative;
  padding-right: min(3rem);
}
.textLink span::before{
  position: absolute;
  content: "";
  background: url(img/link-arrow2.webp) no-repeat center;
  background-size: 100%;
  width: min(2.6rem, 9vw);
  height: min(2.6rem, 9vw);
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.page-linkArea{
  text-align: center;
}

.svg-arrow{
  fill: #323232;
}

.breadcrumbs{
  text-align: left;
  width: 100%;
  padding: min(1rem) min(2rem, 4vw);
  font-size: min(.8rem);
}

.breadcrumbs a{
  text-decoration: underline;
  color: var(--color-green);
}

.br-sp{
  display: block;
}
.br-pc{
  display: none;
}


/*----- swiper -----*/
.swiper-wrapper{
  display: flex !important;
  transition-timing-function: linear!important;
}

.swiper-slide{
  padding: 0 2px;
}

.swiper-slide img {
  width: 100%;
  width: 100%;
}

.swiper-slide > div {
  height: 100%;
  width: 100%;
}

.swiper-controller .swiper-pagination-fraction{
  color: var(--kaisei-green);
  position: static;
  width: auto;
  margin: 0px min(16px, 3vw) 0 0;
}



/*--------------
  open campus
--------------*/
.openCampus a{
  display: block;
  position: relative;
  overflow: hidden;
  padding-bottom: 46.5%;
  color: var(--color-white);
}

.openCampus a::before,.openCampus a::after{
  position: absolute;
  content: "";
}
.openCampus a::before{
  width: 97%;
  height: 93%;
  border: solid 2px var(--color-white);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
.openCampus a::after{
  width:100%;
  height: 100%;
  top: 0%;
  left: 0%;
  background: #3333334f;
}

.openCampus a>img{
  position: absolute;
  top: 0;
  left: 0;
  object-position: center;
  object-fit: cover;
  transition: var(--transition);
  height: 100%;
  width: 100%;
}

.openCampus-wrapper{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  width: 80%;
  z-index: 2;
}

.openCampus-wrapper>h2{
  text-align: center;
  width: min(54rem, 100%);
  margin: 0 auto min(2rem, 2vw);
}

.openCampus-wrapper_text{
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: var(--font-size3);
  gap: min(1rem,2vw);
}

.openCampus-arrow{
  width: min(3rem, 7vw);
  height: min(3rem, 7vw);
  background: var(--color-white);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.openCampus-arrow>svg.svg-arrow{
  width: 55%;
}

.openCampus-exText{
  width: var(--contents-width);
  text-align: center;
  margin: var(--section-margin) auto calc(var(--section-margin) / 5);
}

.openCampus-exText p{
  padding-bottom: min(1.24rem);
}

.pc-br{
  display: block;
}
.sp-br{
  display: none;
}

.contents-slideLoop {
  display: flex;
  flex-shrink: 0;
  margin-top: 5.5rem;
  overflow: hidden;
}
.contents-slideLoop ul{
  display: flex;
  animation: scroll-left 50s linear infinite;
  width: max-content;
}

.contents-slideLoop ul li{
  width: min(26rem, 53vw);
}
.contents-slideLoop ul li img{
  width: 100%;
  height: 100%;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
      transform: translateX(-50%);
  }
}

/*--------------
  loading
--------------*/
.loading{
  bottom: 0;
  display: block;
  height: 100vh;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  transform: scaleY(1);
  transform-origin: center top;
  width: 100vw;
  z-index: 999;
}


/*--------------
loading
--------------*/
.loadingBg{
  width: 100%;
  height: 100vh;
  display: block;
  position: absolute;
  z-index: 4;
  top: 0;
  left: 0;
  background: url(img/bg.png) repeat center;
  background-size: 90%;
  opacity: 1;
  -webkit-transition: opacity 0.8s ease;
  transition: opacity 0.8s ease;
  animation: loadingBg-fadeIn .75s ease-in-out 5s normal forwards;
  filter: 0;
}

@keyframes loadingBg-fadeIn {
  0%{
    opacity: 1;
    visibility: visible;
    filter: blur(0px);
  }
  100%{
    opacity: 0;
    visibility: hidden;
    filter: var(--blur10px);
  }
}

@media screen and (min-width:1024px) {
  .contents-title{
    letter-spacing: .2em;
  }

  .contentsBg>.contentsBg-titleArea{
    width: min(74rem, 90%);
    justify-content: space-between;
  }
  .contentsBg>.contentsBg-titleArea>.title-container{
    width: min(30rem, 37vw);
  }
  .contentsBg>.contentsBg-titleArea>.top-corse_other__textArea{
    width: min(30rem, 37vw);
  }

  button.movie-button:hover{
    transform: translate(-50%, -50%) var(--hover-scale);
  }

  .openCampus a{
    padding-bottom: 36.5%;
  }

  .openCampus a:hover img.openCampus-bg{
    transform: scale(1.05);
  }

  .contents-slideLoop ul li{
    width: 30vw;
  }
}

@media screen and (max-width:1024px) {
  .tableWrap{
    overflow-x: scroll;
  }
  .tableWrap>table {
    width: 100%;
    min-width: 64rem;
  }

  .tableWrap>.tableWrap-image{
    width: 100%;
    min-width: 42rem;
  }

  p.tableWrap-text {
    font-size: min(1.2rem, 3vw);
    display: block;
  }
}

@media screen and (max-width:768px) {
  .table-main2_bgGr,.table-main2_bgBl,.table-main2 td,.table-main2 th{
    display: block;
    width: 100%;
  }

  .title-tb{
    writing-mode: unset;
  }
  .pc-br{
    display: none;
  }
  .sp-br{
    display: block;
  }
}


/*--------------
  header
--------------*/
header{
  padding: min(1.4rem, 4vw);
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 10;
  background: var(--color-white);
  box-shadow: 0 0 1rem var(--opacity-black);
  height: min(6rem, 16vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.header-wrapper{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
  gap: min(3rem, 2vw);
}

.header-contents{
  width: min(67rem,74vw);
  display: flex;
  justify-content: flex-end;
  gap: min(2.4rem,1vw);
}

.header-logo{
  width: min(17rem, 54vw);
  z-index: 10;
}

header h1 img{
  display: block;
}

.header-menuList{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: min(2rem);
}

.header-mainMenu,.header-menu,.header-sns{
  display: none;
}

.header-mainMenu .child_menu{
  visibility: hidden; /*非表示*/
  transform: scale(1,0); /*高さを0に*/
  transform-origin: top; /*上からアニメーション*/
  opacity: 0;
  transition: .4s;
  background: var(--color-green);
  color: var(--color-white);
  position: absolute;
  width: min(30rem);
  top: 2rem;
  padding: min(2rem);
  border-radius: var(--b-radius);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(var(--flex-gap) / 3) calc(var(--flex-gap) / 1);
}
 .child_menu a{
  color: var(--color-white);
 }

.header-mainMenu .child_menu li{
  width:calc((100% - calc(var(--flex-gap) / 1)) / 2);
}

.header-mainMenu .child_menu li a span{
  position: relative;
  padding-right: 2rem;
  display: block;
  line-height: 1.5;
}
.header-mainMenu .child_menu li a span::before{
  position: absolute;
  content: "";
  background: url(img/link-arrow_wh.svg) no-repeat center;
  background-size: 100%;
  width: 1.4rem;
  height: 1.4rem;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  transition: var(--transition);
}

.header-mainMenu li{
  position: relative;
}

.header-mainMenu li:hover .child_menu {
  visibility: visible; /*表示*/
  opacity: 1;
  transform: scale(1,1); /*高さを100%に*/
}

.header-wrapper .header-sns{
  width:min(5rem);
  gap: min(.5rem);
}

.header-sns li{
  width: 50%;
}

.header-sns a{
  display: block;
}

@media screen and (min-width:1240px) {
  nav.headerNav{
    display: flex;
    gap: 20px;
  }

  .header-wrapper{
    width: min(113rem, 100%);
  }

  .header-mainMenu{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: min(3rem, 1vw);
  }

  .header-menu,.header-sns{
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .01em;
    gap: min(2rem, 1vw);
  }

  .header-logo{
    width:min(17rem, 20vw);
  }

  .header-mainMenu a:hover{
    color: var(--color-green);
  }

  .header-mainMenu .child_menu li a:hover{
    color: var(--color-white);
    opacity: var(--hover-opacity);
  }
  .header-mainMenu .child_menu li a:hover span::before{
    transform: translateX(1%) translateY(-50%);
  }

  .header-menu .linkBox{
    display: block;
  }
  .header-menu .linkBox:hover,
  .header-sns a:hover{
    transform: scale(0.95);
  }

  body .linkBox.noLinks:hover{
    transform: scale(1);
  }
}

@media screen and (min-width:768px) {
  header h1 a:hover,
  .header-menuList li.header-sns a:hover{
    opacity: var(--hover-opacity);
  }

  .scroll{
    top: 20vw;
  }


  .linkBtn svg{
    transition: var(--transition);
  }

  .linkBtn:hover{
    border: solid 2px var(--color-green);
  }
  .linkBtn:hover svg{
    fill: var(--color-green);
  }

  .linkBtn:hover .linkBtn-arrow{
    transform: translate(12%, -4%);
  }

  .linkBtn.-white:hover{
    opacity: var(--hover-opacity);
    border: solid 2px var(--color-white);
  }

  .linkBtn:hover span::before{
    transform: translate(30%, -50%);
  }
}

/*----- hamburger -----*/
.openBtn{
  cursor: pointer;
  text-align: center;
  position: fixed;
  height: min(2.4rem, 7vw);
  width: min(3.6rem, 11vw);
  top: min(1.4rem, 3vw);
  right: min(4rem, 3vw);
  z-index: 200;
  transition: var(--transition);
}

.openBtn span{
  width: 100%;
  height: min(3px, .6vw);
  display: block;
  z-index: 1;
  position: absolute;
  margin: 0 auto;
  background: var(--color-green);
  border-radius: 9999px;
  transition: var(--transition);
}

.openBtn span:nth-of-type(1){
  top: 0;
  left: 50%;
  transform: translate(-50%, 0);
}
.openBtn span:nth-of-type(2){
  top: 43%;
}
.openBtn span:nth-of-type(3){
  top: 87%;
  left: 50%;
  transform: translate(-50%, 0);
}

.openBtn.active span:nth-of-type(1){
  width: 100%;
  top: 40%;
  left: 50%;
  transform: translate(-50%, 0) rotate(25deg);
  background: var(--color-white);
}
.openBtn.active span:nth-of-type(2){
  display: none;
}
.openBtn.active span:nth-of-type(3){
  width: 100%;
  top: 40%;
  left: 50%;
  transform: translate(-50%, 0) rotate(-25deg);
  background: var(--color-white);
}

.openBtn small{
  position: absolute;
  left: 50%;
  bottom: -54%;
  text-transform: uppercase;
  transform: translateX(-50%);
  line-height: 1.5;
  font-size: min(.8rem, 2.6vw);
  font-weight: 500;
  color: var(--color-green);
}

.openBtn.active small{
  color: var(--color-white);
}

.g-nav .pullDownMenu{
  width: min(120px, 25vw);
}

#js-g-nav{
  transition: var(--transition);
  -webkit-transition: var(--transition);
  opacity: 0;
  visibility: hidden;
  transform: translate(0, -2%);
}

#js-g-nav.panelactive{
  opacity: 1;
  visibility: inherit;
  transform: translateX(0);
}

.g-nav{
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  width: 100%;
  height: 100svh;
  color: var(--color-white);
  overflow: auto;
  visibility: hidden;
}

.g-nav a{
  color: var(--color-white);
}

.g-nav>.openBtn{
  position: fixed;
  top: min(2rem, 4vw);
  right: min(2rem, 4vw);
  height: min(4rem, 12vw);
  width: min(9rem, 27vw);
}

.g-nav_container{
  background: linear-gradient(0deg,rgba(0, 168, 73, 1) 0%, rgba(0, 197, 84, 1) 100%);
  margin: 0 0 0 auto;
}

.g-nav_menu{
  padding: min(8rem, 16vw) min(4rem, 5vw);
  overflow-y: auto;
  width: 100%;
  position: relative;
}

.g-nav_menu__wrapper{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(3rem, 6vw);
}

.g-nav_menu .g-nav_menu__major{
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--flex-gap) / 2);
  justify-content: center;
  margin-bottom: min(9vw, 4rem);
}

.g-nav_menu .g-nav_menu__major > .major-item{
  width: calc((100% - calc(var(--flex-gap) / 2) ) / 2);
}
.g-nav_menu .g-nav_menu__major > .major-item p.major-item_name{
  font-size: var(--font-size3);
  position: relative;
  padding-top: min(.5rem);
  transition: var(--transition);
}
p.major-item_name::before,p.major-item_name::after{
  position: absolute;
  content: "";
}
p.major-item_name::before{
  border: solid min(2px, .5vw) var(--color-white);
  border-radius: 50%;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: min(2rem, 7vw);
  height: min(2rem, 7vw);
}
p.major-item_name::after{
  background: url(img/link-arrow_wh.svg) no-repeat center;
  background-size: 100%;
  top: 54%;
  right: 4%;
  transform: translateY(-50%);
  width: min(1rem, 3vw);
  height: min(1rem, 3vw);
}

.major-item picture{
  display: block;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}
.major-item picture img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: var(--transition);
}

ul.menuLinks-inner{
  font-size: min(82%);
  display: flex;
  flex-direction: column;
  gap: min(.3rem);
  margin-top: min(.5rem);
}
ul.menuLinks-inner li{
  position: relative;
  padding-left: min(.6rem);
}
ul.menuLinks-inner li::before{
  position: absolute;
  content: "";
  background: var(--color-white);
  width: .3rem;
  height: .3rem;
  border-radius: 50%;
  top: .6rem;
  left: 0;
}

.g-nav_menuList__item{
  width: calc((100% - min(3rem, 6vw)) / 2);
}
.g-nav_menuList__item:last-of-type{
  width: min(100%, 27rem);
}

.g-nav_menuLinks{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(1.4rem);
}

li.g-nav_menuLinks__item{
  width: 100%;
}
.g-nav_menuList__item ul.g-nav_menuList li.menuLinks{
  padding-bottom: min(1.4rem, 4vw);
  font-size: min(1.14rem);
  line-height: 1.6;
}
li.menuLinks a.menuLinks-main{
  font-weight: 600;
}

.g-nav_menuLinks li.g-nav_menuLinks__item.__sns{
  width: min(3rem);
}

li.g-nav_menuLinks__item a.linkBox{
  background: var(--color-white);
  color: var(--color-green);
  display: block;
  text-align: center;
  font-size: var(--font-size3);
  letter-spacing: 0;
  padding: min(.5rem) min(0.5rem, 4vw);
}

@media screen and (min-width:768px) {
  .g-nav_container{
    width: 68.24vw;
  }

  #js-g-nav{
    transform: translateX(4%);
  }

  .g-nav_menuList a:hover{
    opacity: .6;
  }

  .g-nav_menu .g-nav_menu__major .major-item{
    width: calc((100% - calc(calc(var(--flex-gap) / 2) * 2)) / 3);
  }

  .g-nav_menu .g-nav_menu__major .major-item a:hover picture img{
    transform: scale(1.05);
  }

  .g-nav_menu .g-nav_menu__major .major-item a:hover p.major-item_name,
  li.g-nav_menuLinks__item a.linkBox:hover,
  li.g-nav_menuLinks__item.__sns a:hover{
    opacity: var(--hover-opacity);
  }

  .g-nav_menuList__item{
    width: calc((100% - min(3rem, 6vw)) / 2);
  }

}

@media screen and (min-width:1024px) {
  .openBtn small{
    bottom: -60%;
  }

  .g-nav_menuList__item,.g-nav_menuList__item:last-of-type{
    width: calc((100% - calc(min(3rem, 6vw) * 2)) / 3);
  }
}

@media screen and (min-width:1240px) {
  .openBtn{
    display: none;
  }
  .g-nav{
    display: none;
  }
}


/*--------------
footer
--------------*/
footer {
  z-index: 2;
  position: relative;
  background: url(img/footer-bgImage.webp) no-repeat center;
  background-size: cover;
  z-index: 1;
}
footer::before{
  position: absolute;
  content: "";
  background: url(img/footer-bg.webp) no-repeat center;
  background-size: cover;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
}

.footer-wrapper{
  margin: 0 auto;
  padding: 6vw 6vw 0;
}

.footer-contents{
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: calc(var(--flex-gap) * 2);
}

.footer-logo{
  background: var(--color-white);
  padding: min(1rem) min(8rem, 12vw);
}

.footer-address{
  display: flex;
  flex-direction: column;
  gap: min(2rem);
  font-size: min(.9rem);
  width: 100%;
}

.footer-menu{
  width: 100%;
}

.footer-schoolTitle{
  display: flex;
  align-items: center;
  gap: calc(var(--flex-gap) / 3);
  padding-bottom: min(1rem,3vw)
}

.footer-schoolTitle h3{
  font-weight: 500;
  font-size: min(1.6rem);
  line-height: 1;
}

ul.footer-linkList{
  width: min(5rem,20vw);
  display: flex;
  align-items: center;
  gap: min(.5rem);
}

ul.footer-linkList li{
  width: 50%;
}
ul.footer-linkList li img{
  display: block;
}

.footer-menu ul.footer-menu_mainMenu{
  font-size: min(1.14rem);
}

.footer-menu ul.footer-menu_mainMenu:first-of-type{
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--flex-gap) / 1.3);
  padding-bottom: min(1.4rem,3vw);
}

.footer-menu ul.footer-menu_mainMenu:nth-of-type(2) li{
  padding-bottom: min(1.4rem,3vw);
}


/*.footer-menu ul.footer-menu_mainMenu li{
  padding-bottom: min(1.4rem,3vw);
}*/

.footer-menu_mainMenu li a.footer-menuLink{
  position: relative;
  padding-left: min(1rem, 2.4vw);
}
.footer-menu_mainMenu li a.footer-menuLink::before{
  position: absolute;
  content: "";
  border-radius: 50%;
  width: min(.5rem, 1.4vw);
  height: min(.5rem, 1.4vw);
  background: var(--color-green);
  top: min(9px);
  left: 0;
}


.footer-menu ul.footer-menu_mainMenu ul.footer-menu_subMenu{
  display: flex;
  flex-wrap: wrap;
  font-size: min(81%);
  gap: min(0.5rem, .5vw) min(1rem, 4vw);
  padding-top: min(.24rem);
}
.footer-menu ul.footer-menu_mainMenu ul.footer-menu_subMenu li{
  padding-bottom: 0;
}

footer small{
  display: block;
  padding: min(5vw,2rem) 0 min(2rem, 14vw);
  font-size: min(.74rem, 2.4vw);
  text-align: right;
  letter-spacing: 0;
  text-align: center;
}

@media print,screen and (min-width:768px) {
  footer{
    display: flex;
  }

  .footer-wrapper{
    width: calc(100% - min(8rem));
    padding: min(5vw) min(6vw) 0;
  }

  .footer-contents{
    flex-wrap: nowrap;
    width: min(60rem, 100%);
    margin: 0 auto;
    gap: var(--flex-gap);
  }

  .footer-address{
    width: min(22rem,32vw);
  }

  .footer-menu{
    width: calc(100% - min(22rem,32vw));
  }

  .footer-menu ul.footer-menu_mainMenu ul.footer-menu_subMesnu a:hover,
  .footer-address a:hover,
  .footer-menu_mainMenu li a.footer-menuLink:hover,
  ul.footer-menu_subMenu li a:hover{
    color: var(--color-green);
  }

  .footer-schoolTitle .linkBox{
    display: block;
  }
  .footer-schoolTitle a.linkBox:hover{
    color: var(--color-white);
    transform: var(--hover-scale);
  }

  .footer-menu ul.footer-menu_mainMenu:first-of-type{
    gap: calc(var(--flex-gap) / 2);
  }

  .footer-logo{
    padding: min(2rem);
    width: min(8rem);
  }

  ul.footer-linkList li a:hover{
    opacity: var(--hover-opacity);
  }
}

@media print,screen and (min-width:1024px) {

  .footer-wrapper{
    width: calc(100% - min(8rem));
    padding: min(4rem) min(10vw) 0;
  }
}