@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Noto+Serif+JP:wght@300;600&display=swap');
.en { font-family: 'Libre Baskerville', serif; color: #1e2832; }
@media screen and (min-width: 781px) { h2 .en { font-size: 2.6rem; } }
@media screen and (max-width: 780px) { h2 .en { font-size: 1.5rem; font-weight: bold; } }

header { position: absolute; top: 0; left: 0; z-index: 10; }

/* メインビジュアル
----------------------------------------------------------------------------------------------- */
#mv { width: 100vw; height: 100vh; position: relative; }
#mv::before { content: ""; width: 100%; height: 40vh; display: block; position: absolute; top: 0; left: 0; background: rgb(0,0,0); background: linear-gradient(0deg, rgba(0,0,0,0) 20%, rgba(30,40,50,0.3) 95%); }
#mv #slider { width: 100vw; height: 100vh; position: absolute; top: 0; left: 0; overflow: hidden; }
#mv #slider * { height: 100%; z-index: -1; }
#mv #slider .sp-slide::before { content: ""; display: block; width: 100%; height: 100%; position: absolute; bottom: 0; right: 0; background: url("../img/top/img_mv_shadow.png") no-repeat right bottom; mix-blend-mode: multiply; z-index: 5; }
#mv #slider img { width: 100%; height: 100%; object-fit: cover; font-family: 'object-fit: cover;'; /* IE */ }
#mv #slider p { height: auto; position: absolute; bottom: 0; right: 0; z-index: 10; color: #FFF; letter-spacing: 0.1em; text-align: right; line-height: 1.6em; text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15); }
#mv #slider p span { display: block; padding-bottom: 0.75em; font-family: 'Noto Serif JP', serif; }
@media screen and (min-width: 781px) {
#mv #slider p { padding: 0 6vw 12vh 6vw; font-size: 0.9em; }
#mv #slider p span { font-size: 2.6rem; line-height: 1.25em; }
.slick-dots { bottom: 20px; right: 40px; }
}
@media screen and (max-width: 780px) {
#mv #slider p { padding: 0 6vw 11vh 6vw; font-size: 0.9em; }
#mv #slider p span { font-size: 1.75rem; line-height: 1.25em; }
.slick-dots { bottom: 5.25vh; right: 6vw; }
}
.slick-dots {	
	width: 100%;
	height: 28px!important;
  position: absolute;
	z-index: 5!important;
  display: block;
	text-align: right; 
}
.slick-dots li {
  position: relative;
  display: inline-block;
  width: 30px;
  height: 14px!important;
  margin: 0 2px;
  padding: 0;
  cursor: pointer;
	z-index: 5!important;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 30px;
  height: 2px!important;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: #FFF;
	opacity: 0.4;
	margin-top: 6px;
}
.slick-dots li.slick-active button { opacity: 1; }

/* 20250714 追加 */
#mv .bnr {
  position: absolute;
  width: 390px;
  left: 2.2vw;
  bottom: 2.2vw;
}
#mv .bnr img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
@media screen and (max-width: 850px) {
  #mv .bnr {
    width: 45%;
  }
}
@media screen and (max-width: 780px) {
  #mv #slider {
    position: relative;
    height: calc(100vh - 38vw);
  }
  #mv .bnr {
    position: static;
    width: 100%;
    overflow: hidden;
  }
  #f-naviBox2 {
    overflow: hidden;
  }
}
/* // */


/* 重要なお知らせ
----------------------------------------------------------------------------------------------- */
#at { border-top: solid 1px #FFF; }
#at h2 { font-size: 1.1em; color: #FFF; background-color: #9b3c5a; }
#at h2 img { display: inline-block; vertical-align: middle; margin-right: 7px; }
#at h3 { margin-bottom: 0.5em; font-weight: bold; font-size: 1.1em; line-height: 1.4em; }
#at p { line-height: 1.6em; text-align: justify; letter-spacing: 0; }
#at .wrapper {  background-color: #ebd8de; }
@media screen and (min-width: 781px) {
#at { display: flex; }
#at h2 { width: 20vw; display: flex; justify-content: center; align-items: center; }
#at .wrapper { width: 80vw; padding: 2.5em 3.5em; }
}
@media screen and (max-width: 780px) {	
	#at h2 { padding: 1em; text-align: center; }
	#at .wrapper { padding: 6vw; }
}

/* Topics
----------------------------------------------------------------------------------------------- */
#topics h2 { color: #8e9398; }
#topics h2 .link a { font-size: 0.9rem; color: #5a87b4; }
#topics h2 .link a::after { content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 0.5em; background: url("../img/icon_link_out.svg") no-repeat; }

#topics ul { display: flex; flex-wrap: wrap; }
#topics ul li { border-right: solid 1px #d2d4d6; }
#topics ul li a { display: block; }
#topics ul li img { width: 100%; height: 100%; object-fit:cover; font-family: 'object-fit: cover;'; /* IE */ }
#topics ul li .dat { display: inline-block; margin: 0.5em 1em 0.5em 0; }
#topics ul li .cat { display: inline-block; padding: 0.4em 1em; font-size: 0.9em; color: #FFF; }
#topics ul li .c-b { background-color: #5a87b4; }
#topics ul li .c-g { background-color: #5ab491; }
#topics ul li .c-p { background-color: #a596dc; }
#topics ul li .c-k { background-color: #b9a087; }
#topics ul li .tit { display: block; font-size: 1.1em; line-height: 1.4em; }
#topics ul li .tag { color: #8e9398; letter-spacing: 0; }
#topics ul li .tag::before { content: ""; display: inline-block; width: 14px; height: 10px; margin-right: 0.5em; background: url("../img/icon_tag.svg") no-repeat; }

@media screen and (min-width: 781px) {
#topics { padding-top: 110px; }
#topics h2 { display: flex; align-items: baseline; font-size: 1.1em; }
#topics h2 span { margin-right: 10px; }
#topics h2 .link a { margin-left: 3.5em; }
#topics ul { margin-top: 55px; margin-left: -2.25%; }
#topics ul li { width: 25%; padding: 0 2.25%; }
#topics ul li:last-of-type { border: none;}
#topics ul li .img { margin-bottom: 20px; }
#topics ul li img { height: 12vw; }
#topics ul li .tit { margin: 15px 0; }
#topics ul li .tag { font-size: 0.8em; }
}
@media screen and (max-width: 780px) {
#topics { display: flex; flex-direction: column;  padding: 80px 0 0 0; position: relative; }
#topics h2 { text-align: center; }
#topics h2 span { display: block; padding-bottom: 0.5em; }
#topics h2 .link { position: absolute; bottom: 0; left: 4vw; }
#topics h2 .link a { margin-right: 8vw; }
#topics ul { margin: 30px 0 50px 0; }
#topics ul li { width: 50%; }
#topics ul li:nth-of-type(2n) { border: none; }
#topics ul li .cont { padding: 3vw 4vw 0 4vw; }
#topics ul li img { height: 30vw; }
#topics ul li .tit { margin: 0.5em 0 4vw 0; }
#topics ul li .tag { font-size: 0.85em; margin: 0 4vw 4vw 4vw; }
#topics ul li:nth-of-type(3n) .tag, #topics ul li:nth-of-type(3n) .tag { margin-bottom: 1vw; }
}

/* Information
----------------------------------------------------------------------------------------------- */
#info h2 { color: #8e9398; }
#info .more a { font-size: 0.9rem; color: #5a87b4; }
#info .more a::after { content: ""; display: inline-block; vertical-align: text-bottom; width: 8px; height: 14px; margin-left: 0.5em; background: url("../img/icon_link.svg") no-repeat; }

#info ul.news li { border-bottom: solid 1px #d2d4d6; }
#info ul.news li a { display: block; padding: 1.5em 0; background: url("../img/icon_link.svg") no-repeat center right; }
#info ul.news li a span { display: block; }
#info ul.news li a span.dat { padding-bottom: 0.75em;}
#info ul.news li a span.tit { line-height: 1.4em; }

#info ul.link li { border-top: solid 1px #FFF; min-height: 100px; }
#info ul.link li a { display: flex; align-items: center; width: 100%; color: #FFF; font-weight: bold; font-size: 1.1em; }
#info ul.link li a.ks { background: url("../img/top/img_kesseki_bg.jpg") no-repeat; background-size: cover; }
#info ul.link li a.ig { line-height: 1.5em; background: url("../img/top/img_insta_bg.jpg") no-repeat center/cover; }
#info ul.link li a.sg { background: url("../img/top/img_syougaku_bg.jpg") no-repeat; background-size: cover; }
#info ul.link li a span::after { content: ""; display: inline-block; width: 8px; height: 12px; margin-left: 1em; background: url("../img/icon_link_wh30.svg") no-repeat; }
#info ul.link li a.ig span::after { width: 17px; height: 17px; vertical-align: middle; margin-left: .4em; background: url("../img/icon_insta.svg") no-repeat center/contain; }

@media screen and (min-width: 781px) {
#info { padding-top: 110px; }
#info h2 { width: 50vw; display: flex; align-items: baseline; font-size: 1.1em; }
#info h2 span { margin-right: 10px; }
#info h2 .more { margin-left: auto; }
#info .wrapper { display: flex; justify-content: space-between; margin-top: 40px; }
#info ul.news { width: 50vw; }
#info ul.link { width: 32vw; display: flex; flex-direction: column; }
#info ul.link li { flex: 1; display: flex; /*height: 50%; min-height: 138px;*/ } /* 20220221 add */
#info ul.link li a { justify-content: space-between; height: 100%; padding: 0 2vw 0 3vw; }	
}
@media screen and (max-width: 780px) {
#info { display: flex; flex-direction: column; padding-top: 80px; position: relative; }

#info h2 { text-align: center; }
#info h2 span { display: block; padding-bottom: 0.5em; }
#info .more { padding: 20px 0 30px 0; }
#info .wrapper { margin-top: 10px; }
#info ul.link li a { height: 100px; padding: 0 7vw; }
#info ul.link li a span { display: flex; justify-content: space-between; width: 100%; }
#info ul.link li a.ig span { display: block; }
}

/* 新校舎
----------------------------------------------------------------------------------------------- */
#building { display: flex; flex-direction: column; position: relative; }
#building .tit h2 { font-family: 'Noto Serif JP', serif; letter-spacing: 0.05em; }
#building .tit h2 span { display: block; }
#building ul.link li a { display: block; color: #FFF; background: url("../img/icon_link_wh.svg") no-repeat #5a87b4; }
#building ul.link li a:hover { opacity: 1; background-color: #7b9fc3; }
/*2023.2.21追加↓*/
#building a.wrapper { display: flex; flex-direction: column; position: relative; }
#building a.wrapper:hover .img img { transform: scale(1.05,1.05); transition: all 0.5s; opacity: 0.9; }
#building a.wrapper:hover { opacity: 1; }
#building .img { font-size: 0; overflow: hidden; z-index: -1; }
#building .img img { transition: all 0.5s; }
#building .tit h2 span { display: block; font-family: 'Noto Serif JP', serif; }
/*↑*/
@media screen and (min-width: 781px) {
#building { margin-top: 130px; }
#building .tit { text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15); }
#building .side { width: 25px; height: 245px; position: absolute; top: -30px; left: 30px; }
#building .tit { width: 100%; height: 100%; position: absolute; left: 0; right: 0; display: flex; flex-direction: column; justify-content: flex-end; color: #FFF; padding: 60px 5.8vw; }
#building .tit h2 { font-size: 3.3em; }
#building .tit h2 span { font-size: 1.75rem; }
#building .tit p { padding-top: 2em; line-height: 1.6em; }
#building ul.link li/*:first-of-type*/ { border-right: solid 1px #FFF; }
#building ul.link { position: absolute; bottom: -20px; right: 5.8vw; display: flex; }
#building ul.link li a { padding: 1.5em 3.5em 1.5em 2.5em; background-position: center right 25px; }
#building ul.link li:last-of-type { border-right: none; }
}
@media screen and (max-width: 780px) {
#building { margin-top: 70px; }
#building .img img { width: 100%; height: 65vw; object-fit: cover; }
#building .side { width: 20px; height: 245px; position: absolute; top: -6vw; left: 6vw; }
#building .tit { padding: 7vw 6vw; }
#building .tit h2 { font-size: 2.3em; font-weight: bold; }
#building .tit h2 span { font-size: 1.15rem; padding-bottom: 0.5em; }
#building .tit p { padding-top: 1em; line-height: 1.8em; text-align: justify; }
#building .tit p br { display: none; }
#building ul.link { padding: 0 6vw; }
#building ul.link li/*:first-of-type*/ { border-bottom: solid 1px #FFF; }
#building ul.link li a { padding: 1.5em 0 1.5em 4vw; background-position: center right 4vw; }
}

/* 中学受験・高校受験の皆様へ
----------------------------------------------------------------------------------------------- */
#target h2 { position: relative; margin: 0 auto; text-align: center; }
#target h2::after { content: ""; display: block; width: 100%; height: 80px; position: absolute; bottom: 0; left: 0; background-color: #e6edf4; z-index: -1; }
#target section { display: flex; position: relative; }
#target section .wrapper { width: 100%; display: flex; flex-direction: column; position: relative; background-color: #FFF; }
#target .test { display: inline-block; margin: -20px 0 0 auto; padding: 1.5em 3em 1.5em 2em; color: #FFF; background: url("../img/icon_link_wh.svg") no-repeat center right 20px #5a87b4; }
#target h3 span { display: block; padding-bottom: 1.75em; font-size: 0.5rem; color: #8e9398; }
#target .list ul li { border-bottom: solid 1px #d2d4d6; }
#target .list ul li a { display: block;  padding: 1em 0; background: url("../img/icon_link.svg") no-repeat center right; }
#target .list ul li a span { font-size: 0.7em; }
#target section img.bg { position: absolute; top: 0; left: 0; width: 100%; object-fit: cover; font-family: 'object-fit: cover;'; /* IE */ z-index: -1; }
#target a.test:hover { opacity: 1; background-color: #7b9fc3; }

@media screen and (min-width: 781px) {
#target { padding: 130px 0; }
#target h2 { width: 83vw; height: 6.5em; }
#target h2 + .wrapper { display: flex; }
#target section { width: 50%; }
#target section:first-of-type { padding: 280px 3vw 0 5.8vw; }
#target section:last-of-type { padding: 280px 5.8vw 0 3vw; }
#target section h3 { padding: 20px 8%; font-size: 1.6em; font-weight: bold; }
#target section .list { padding: 0 8%; }
#target section img.bg { height: 480px; }
}
@media screen and (min-width: 1024px) {
#target section .list { display: flex; justify-content: space-between; }
#target section .list ul { width: 47%; }
}
@media screen and (max-width: 780px) {
#target h2 { width: 84vw; height: 7em; line-height: 2em; letter-spacing: 0.05em; }
#target { padding: 80px 0; }
#target section { padding: 45vw 6vw 0 6vw; }
#target section:first-of-type { padding-bottom: 12vw; }
#target section h3 { padding: 20px 8%; font-size: 1.3em; font-weight: bold; }
#target section .list { padding: 0 8%; }
#target section img.bg { height: 65vw; }
}

/* 学校案内・クラブ活動
----------------------------------------------------------------------------------------------- */
#school a.wrapper, #club a.wrapper { display: flex; flex-direction: column; position: relative; }
#school a.wrapper:hover .img img, #club a.wrapper:hover .img img { transform: scale(1.05,1.05); transition: all 0.5s; opacity: 0.9; }
#school a.wrapper:hover, #club a.wrapper:hover { opacity: 1; }
#school .img, #club .img { font-size: 0; overflow: hidden; z-index: -1; }
#school .img img, #club .img img { transition: all 0.5s; }
#school .tit h2 span, #club .tit h2 span { display: block; font-family: 'Noto Serif JP', serif; }
#school .link, #club .link { display: flex; justify-content: center; align-items: center; background-color: #5a87b4; transition: all 0.2s; }
#school a.wrapper:hover .link, #club a.wrapper:hover .link { opacity: 1; background-color: #7b9fc3; }

@media screen and (min-width: 781px) {
#school, #club { border-top: solid 1px #FFF; position: relative;}
#school .tit, #club .tit { text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15); }
#school .side, #club .side { width: 25px; height: 245px; position: absolute; top: -30px; left: 30px; }
#school .tit, #club .tit { width: 100%; height: 100%; position: absolute; left: 0; right: 0; display: flex; flex-direction: column; justify-content: flex-end; color: #FFF; padding: 60px 5.8vw; }
#school .tit h2, #club .tit h2 { font-size: 2em; font-weight: bold; letter-spacing: 0.1em; }
#school .tit h2 span, #club .tit h2 span { font-size: 1.1rem; font-weight: normal; padding-bottom: 0.75em; }
#school .tit p, #club .tit p { padding-top: 2em; line-height: 1.6em; }
#school .link, #club .link { width: 70px; height: 70px; position: absolute; bottom: -20px; right: 5.8vw; z-index: 5; }
}
@media screen and (max-width: 780px) {
#club { margin-top: 40px; position: relative;}
#school .img img, #club .img img { width: 100%; height: 65vw; object-fit: cover; }
#school .side, #club .side { width: 20px; height: 245px; position: absolute; top: -6vw; left: 6vw; }
#school .tit, #club .tit { padding: 8vw 6vw; }
#school .tit h2, #club .tit h2 { font-size: 2em; font-weight: bold; letter-spacing: 0.05em; }
#school .tit h2 span, #club .tit h2 span { font-size: 0.85rem; padding-bottom: 0.75em; }
#school .tit p, #club .tit p { padding-top: 1em; line-height: 1.8em; text-align: justify; }
#school .tit p br, #club .tit p br { display: none; }
#school .link, #club .link { width: 50px; height: 50px; display: flex; justify-content: center; align-items: center; position: absolute; top: 60vw; right: 6vw; z-index: 5; }
}

/* 20230421 追加 セクションリンク(クラブ活動) */
.section_with_link li a { display: flex; align-items: center; color: #FFF; background: url("../img/icon_link_wh.svg") no-repeat #5a87b4; height: 100%;}
.section_with_link li a:hover { opacity: 1; background-color: #7b9fc3; }
.section_with_link li a .icon {display: inline-block; vertical-align: middle; margin-right: 9px;}
@media screen and (min-width: 781px) {
.section_with_link li/*:first-of-type*/ { border-right: solid 1px #FFF; }
.section_with_link { position: absolute; bottom: -20px; right: 5.8vw; display: flex; align-items: stretch;}
.section_with_link li a { padding: 1.5em 3.5em 1.5em 2.5em; background-position: center right 25px; }
.section_with_link li:last-of-type { border-right: none; }
}
@media screen and (max-width: 780px) {
.section_with_link { padding: 0 6vw; }
.section_with_link li/*:first-of-type*/ { border-bottom: solid 1px #FFF; }
.section_with_link li a { padding: 1.5em 0 1.5em 4vw; background-position: center right 4vw; }
}
/*END 20230421 追加 */

/* 下部リンク群
----------------------------------------------------------------------------------------------- */
#under-link ul.list-l li, #under-link ul.list-s li { border-bottom: solid 1px #d2d4d6; }
#under-link ul.list-l li a { display: flex; flex-direction: column; }
#under-link ul.list-s li a { display: flex; align-items: center; }
#under-link ul.list-s li a, #under-link ul.list-l li div { background: url("../img/icon_link.svg") no-repeat center right; }
#under-link ul.list-s li a.out, #under-link ul.list-l li div.out { background: url("../img/icon_link_out.svg") no-repeat center right; }

@media screen and (min-width: 781px) {
#under-link { padding-top: 130px; }
/*#under-link ul.list-l, #under-link ul.list-s { display: flex; flex-wrap: wrap; justify-content: space-between; }*/
#under-link ul.list-l, #under-link ul.list-s { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 3.5%; }
#under-link ul.list-l li, #under-link ul.list-s li { width: 31%; }
#under-link ul.list-l li div { display: flex; align-items: center; min-height: 5em; line-height: 1.4em; }
#under-link ul.list-s li a { padding: 1.5em 0; }
#under-link a span { font-size: 0.6em; }
}
@media screen and (max-width: 780px) {
#under-link { padding-top: 40px; }
#under-link ul.list-s li a, #under-link ul.list-l li div { padding: 1em 0; line-height: 1.4em; }
#under-link ul.list-l li:nth-of-type(1), #under-link ul.list-l li:nth-of-type(2) { border: none; }
}

/* WEB出願
----------------------------------------------------------------------------------------------- */
#app .wrapper { background-color: #eaecee; }
#app h2 { font-family: 'Noto Serif JP', serif; text-align: center; line-height: 1.5em; }
#app h2 + p { padding: 1.5em 0; text-align: center; line-height: 1.4em; }
#app .btnArea a { padding: 1em 2em; text-align: center; color: #FFF; font-family: 'Noto Serif JP', serif; letter-spacing: 0.1em; background: url(../img/icon_link_wh.svg) no-repeat center right 25px #5a87b4; }
#app .btnArea ul li { display: flex; align-items: top; color: #5a87b4; font-weight: bold; line-height: 1.5em; }
#app .btnArea ul li::before { content: ""; flex: none; margin: 0.25em 0.75em 0.25em 0; width: 16px; height: 12px; background: url("../img/top/icon_app_check.svg") no-repeat; }
@media screen and (min-width: 781px) {
#app { padding-top: 110px; }
#app .wrapper { padding: 55px 6vw; }
#app h2 { font-size: 1.6em; }
#app h2 span::before, #app h2 span::after { content: "-"; margin: 0 0.5em; }
#app .btnArea { display: flex; justify-content: center; align-items: center; }
#app .btnArea a { width: 23vw; min-width: 12em; font-size: 1.45em; }
#app .btnArea ul { margin: 0 3%; }
#app .btnArea ul li { padding: 0.1em 0; font-size: 0.9em; }
}
@media screen and (max-width: 780px) {
#app { padding-top: 80px; }
#app .wrapper { padding: 8vw 6vw; }
#app h2 { font-size: 1.4em; }
#app .btnArea a { display: block; width: 100%; font-size: 1.35em; }
#app .btnArea ul { margin: 3vw 0 0 0; }
#app .btnArea ul li { font-size: 0.95em; }
}