@charset "UTF-8";
:root {
  /*ヘッダーの高さ*/
  --header-height: 87px;
  /*色管理*/
  --body-base: #FFF;
  --base_font-color: #000;
  --border-color_gray: #999;
  --key-color: #035580;
  --key-color2: #3EB135;
  --main-color: #0066B5;
  --hover-color: #FF9900;
  --footer-color: #CAD1D8;
  --header-bgcolor: #c2e8fb;
  /*ナビカラー管理*/
  --menu-link_color: #000;
  --menu-link_hober-color: var(--key-color);
  --menubg-link_hober-color: rgba(var(--key-color),0.6);
  /*スマホナビカラー管理*/
  --headerCL: var(--body-base);
  --nav1hoverCL: var(--key-color);
  --nav1hoverCL2: var(--key-color);
  --sp_navCL: transparent;
  --sp_maskCL: var(--key-color);
  --sp_hanCL: var(--key-color);
  --sp_barCL: #FFF;
  --sp_achanCL: #000;
  --sp_acbarCL: #FFF;
  --sp_navliCL: #FFF;
  --sp_navlibCL: #CCC;
  --sp_navaCL: #3D3A39;
  --sp_navli2CL: #999;
  --sp_navli2bCL:#CCC;
  --sp_gnavCL: var(--key-color);
  --sp_gnavbarCL: #FFF; }

/*基本*/
html {
  width: 100%;
  height: 100%; }

body {
  width: 100%;
  height: 100%;
  font-size: 1rem;
  line-height: 175%;
  font-family: "游ゴシック", YuGothic, メイリオ, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif;
  font-weight: 500;
  font-style: normal;
  word-wrap: break-word;
  background-color: var(--body-base);
  color: var(--base_font-color);
  /* プロポーショナルメトリクスを有効にする指定 */
  font-feature-settings: "palt" 1;
  /* スマホ横画面で文字サイズが大きくなる場合、自動補正を無効化 */
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

@media (min-width: 768px) {
  body {
    font-size: 1rem;
    /* font-size: clamp(1rem, 0.778rem + 0.46vw, 1.125rem); 18～16px とすることで文字列としてプリプロセッサに伝える。scss側のアップデート待ち */
    font-size: clamp(0.875rem, 0.431rem + 0.93vw, 1.125rem);
    /*18～14px*/ } }
@media (max-width: 767px) {
  body {
    font-size: 0.875rem;
    /*14px*/ } }
:root {
  scroll-behavior: auto !important; }

/* support iOS */
html {
  height: -webkit-fill-available; }

body {
  min-height: 100vh;
  min-height: -webkit-fill-available; }

a {
  color: var(--key-color);
  text-decoration: none; }
  a:hover {
    color: var(--hover-color); }

/*全体ラッパーの高さ制御*/
.body-div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 100%; }
  .body-div footer {
    margin-top: auto; }

/*ヘッダー*/
header h1 {
  font-size: 1rem;
  line-height: 100%; }

main h1, footer h1 {
  font-size: clamp(1rem, 0.778rem + 0.46vw, 1.125rem);
  line-height: 120%;
  margin: 0px;
  font-weight: bold; }
main h2, footer h2 {
  font-size: clamp(2.188rem, 1.077rem + 2.31vw, 2.813rem);
  line-height: 120%;
  margin: 0px;
  font-weight: bold; }
main h3, footer h3 {
  font-size: clamp(1.875rem, 1.761rem + 0.57vw, 2.188rem);
  /*30-35*/
  line-height: 120%;
  margin: 0px;
  font-weight: bold; }
main h4, footer h4 {
  font-size: clamp(1.5rem, 1.364rem + 0.68vw, 1.875rem);
  /*24-30*/
  line-height: 120%;
  margin: 0px;
  font-weight: bold; }
main h5, footer h5 {
  font-size: clamp(1.375rem, 1.307rem + 0.34vw, 1.563rem);
  /*22-25*/
  line-height: 120%;
  margin: 0px;
  font-weight: bold; }
main h6, footer h6 {
  font-size: clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);
  /*18-20*/
  line-height: 145%;
  margin: 0px;
  font-weight: bold; }

/*-----------------------*/
/*containerエリアをはみ出す */
/*-----------------------*/
@media (max-width: 1199px) {
  .over-container-area {
    position: relative;
    overflow: hidden;
    margin-left: -12px;
    margin-right: -12px; } }
@media (min-width: 1200px) {
  .over-container-area {
    position: relative;
    margin: 0 calc(50% - 50vw);
    width: 100vw; } }
/*---------------------------------------------*/
/* position設定                                */
/*---------------------------------------------*/
/*---------------------------------------------*/
/*bootstrap5追加                               */
/*---------------------------------------------*/
.col-xs-15,
.col-sm-15,
.col-md-15,
.col-lg-15 {
  position: relative;
  min-height: 1px; }

.col-xs-15 {
  -ms-flex: 0 0 20%;
  flex: 0 0 20%;
  max-width: 20%; }

@media (min-width: 768px) {
  .col-sm-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
@media (min-width: 992px) {
  .col-md-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
@media (min-width: 1200px) {
  .col-lg-15 {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%;
    max-width: 20%; } }
/*---------------------------------------*/
/*比率を保って拡大・縮小処理                 */
/*---------------------------------------*/
.ratio-1_1:before {
  content: "";
  display: block;
  padding-top: 100%;
  /* 1:1 */ }

.ratio-7_3:before {
  content: "";
  display: block;
  padding-top: 30%;
  /* 7:3 */ }

.ratio-8_2:before {
  content: "";
  display: block;
  padding-top: 20%;
  /* 8:2 */ }

.ratio-1_2:before {
  content: "";
  display: block;
  padding-top: 200%;
  /* 1:2 */ }

.ratio-2_1:before {
  content: "";
  display: block;
  padding-top: 50%;
  /* 2:1 */ }

.ratio-4_3:before {
  content: "";
  display: block;
  padding-top: 75%;
  /* 4:3 */ }

.ratio-16_9:before {
  content: "";
  display: block;
  padding-top: 56.25%;
  /* 16:9 */ }

.ratio-8_5:before {
  content: "";
  display: block;
  padding-top: 62.5%;
  /* 8:5 ≒ 黄金比 */ }

.ratio-1_1,
.ratio-7_3,
.ratio-8_2,
.ratio-1_2,
.ratio-2_1,
.ratio-4_3,
.ratio-16_9,
.ratio-8_5 {
  position: relative;
  overflow: hidden; }

.ratio-1_1 > img,
.ratio-7_3 > img,
.ratio-8_2 > img,
.ratio-1_2 > img,
.ratio-2_1 > img,
.ratio-4_3 > img,
.ratio-16_9 > img,
.ratio-8_5 > img {
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover; }

/*----------------------------------------*/
/*写真マスク                                */
/*----------------------------------------*/
.photo-area,
.photo-area_v {
  overflow: hidden;
  position: relative;
  margin: 0px; }
  .photo-area img,
  .photo-area_v img {
    width: 100%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }

.photo-area_v img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%); }

@media (min-width: 992px) {
  .photo-area_pc-v {
    overflow: hidden;
    position: relative; }
    .photo-area_pc-v img {
      width: auto;
      height: 100%;
      z-index: -1;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
      -moz-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      -o-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); } }
@media (max-width: 991px) {
  .photo-area_pc-v img {
    width: 100%;
    height: auto; } }
/*---------------------------------------*/
/*gmapとyoutube                          */
/*---------------------------------------*/
.gmap {
  position: relative;
  width: 100%;
  overflow: hidden; }

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

.gmap iframe,
.youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.max-img {
  width: 100%;
  height: auto; }

/*---------------------------------------*/
/*電話リンク                               */
/*---------------------------------------*/
@media (min-width: 992px) {
  a[href^="tel:"] {
    pointer-events: none; } }
/*---------------------------------------*/
/*スペーサー                               */
/*---------------------------------------*/
.bt-sp10 {
  margin-bottom: 10px !important; }

.bt-sp20 {
  margin-bottom: 20px !important; }

.bt-sp30 {
  margin-bottom: 30px !important; }

.bt-sp40 {
  margin-bottom: 40px !important; }

.bt-sp80 {
  margin-bottom: 80px !important; }

/*---------------------------------------------*/
/*テーブルリスト                                 */
/*---------------------------------------------*/
.table-ul {
  list-style: none;
  padding: 0px; }
  .table-ul.tr-line li {
    border-bottom: 1px solid --border-color_gray; }
  .table-ul.cell-7rem_all li {
    display: flex;
    justify-content: flex-start; }
    .table-ul.cell-7rem_all li div:first-of-type {
      width: 7.0rem; }
    .table-ul.cell-7rem_all li div:last-of-type {
      flex: 1;
      min-width: calc( 100% - 7rem ); }
  .table-ul.cell-10rem_all li {
    display: flex;
    justify-content: flex-start; }
    .table-ul.cell-10rem_all li div:first-of-type {
      width: 10.0rem; }
    .table-ul.cell-10rem_all li div:last-of-type {
      flex: 1; }
  .table-ul.td-fw-bold li div:first-of-type {
    font-weight: bold; }
  .table-ul.td-fw-normal li div:last-of-type {
    font-weight: normal; }
  .table-ul.td-x-sp20 li div {
    padding: 10px 20px; }
  .table-ul.tr-white li:nth-of-type(odd) {
    background-color: var(--color_white); }

@media (min-width: 992px) {
  .table-ul li {
    display: flex;
    justify-content: flex-start; }
    .table-ul li div {
      padding: 5px; }

  .cell-10rem div:first-of-type {
    width: 10.0rem; }
  .cell-10rem div:last-of-type {
    flex: 1; }

  .cell-15rem div:first-of-type {
    width: 15.0rem; }
  .cell-15rem div:last-of-type {
    flex: 1; }

  .cell-20rem div:first-of-type {
    width: 20.0rem; }
  .cell-20rem div:last-of-type {
    flex: 1; } }
@media (max-width: 991px) {
  .table-ul li {
    padding-bottom: 5px;
    margin-bottom: 5px; } }
.table-ul_py10px li {
  padding-top: 10px;
  padding-bottom: 10px; }

#header-area {
  width: 100%;
  height: var(--header-height); }
  #header-area h1 {
    margin-bottom: 0px; }

html :focus-visible,
.focus-visible {
  outline-color: initial;
  outline-style: dotted;
  outline-width: 3px; }

select:focus-visible {
  outline: none;
  /* 必要に応じてスタイルを無効化 */ }

/*-------------------------------------*/
/* ハンバーガーメニュー                  */
/*-------------------------------------*/
/*ショートカットメニュー*/
.site-shortcuts {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  list-style: none;
  height: 0;
  margin: 0 auto 0 20px;
  padding: 0;
  clip: rect(1px, 1px, 1px, 1px);
  z-index: 99;
  left: auto; }

.site-shortcuts:focus-within {
  clip: auto;
  height: auto; }

.site-subheader__anchor {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start; }

html .menu {
  position: fixed;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  z-index: 98;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-x: hidden;
  overflow-y: scroll;
  background: var(--sp_navCL);
  transform: translateX(100%);
  transform-origin: right top;
  transition: all 0.5s 0s ease;
  background-color: #FFF; }

html.nav-active .menu {
  transform: translateX(0);
  transition: all 0.5s 0s ease; }

/*スマホメニュー表示ボタンが押された時*/
@media (min-width: 769px) {
  html .menu {
    width: 50%;
    max-width: 500px; } }
/*閉じているときはタブキーフォーカスさせない*/
.menu[aria-hidden="true"] a,
.menu[aria-hidden="true"] button,
.menu[aria-hidden="true"] input,
.menu[aria-hidden="true"] select,
.menu[aria-hidden="true"] textarea {
  pointer-events: none;
  visibility: hidden; }

html.nav-active body {
  overflow: hidden; }

/*スマホメニュー以外を隠すマスク*/
html.nav-active .nav-mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 70;
  background-color: var(--sp_maskCL);
  opacity: 0.8; }

/*スマホメニュー表示ボタン*/
.menu-mobile {
  display: block;
  position: fixed;
  top: 0;
  right: 0;
  width: var(--header-height);
  height: var(--header-height);
  z-index: 99;
  cursor: pointer;
  background-color: var(--sp_hanCL);
  border: none; }

#common-nav-switch-in {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 17px;
  margin: -8px 0 0 -15px; }

#common-nav-switch-in .bar {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  transition: all 0.4s ease 0s;
  -webkit-transition: all 0.4s ease 0s;
  -moz-transition: all 0.4s ease 0s;
  -o-transition: all 0.4s ease 0s;
  -ms-transition: all 0.4s ease 0s;
  background: var(--sp_barCL); }

.nav-active #common-nav-switch {
  background: var(--sp_achanCL); }

.nav-active #common-nav-switch .bar {
  -webkit-transform-origin: 0% 0%;
  -moz-transform-origin: 0% 0%;
  -o-transform-origin: 0% 0%;
  -ms-transform-origin: 0% 0%;
  transform-origin: 0% 0%;
  background: var(--sp_acbarCL) !important; }

#common-nav-switch-in .bar.bar01 {
  top: 0; }

#common-nav-switch-in .bar.bar02 {
  top: 8px; }

#common-nav-switch-in .bar.bar03 {
  top: 16px; }

/* スマホメニューcloes ボタン化　*/
.nav-active #common-nav-switch-in .bar.bar01 {
  -webkit-transform: rotate(45deg) translate(0px, -7px);
  -moz-transform: rotate(45deg) translate(0px, -7px);
  -o-transform: rotate(45deg) translate(0px, -7px);
  -ms-transform: rotate(45deg) translate(0px, -7px);
  transform: rotate(45deg) translate(0px, -7px); }

.nav-active #common-nav-switch-in .bar.bar02 {
  display: none; }

.nav-active #common-nav-switch-in .bar.bar03 {
  -webkit-transform: rotate(-45deg) translate(3px, 3px);
  -moz-transform: rotate(-45deg) translate(3px, 3px);
  -o-transform: rotate(-45deg) translate(3px, 3px);
  -ms-transform: rotate(-45deg) translate(3px, 3px);
  transform: rotate(-45deg) translate(3px, 3px); }

/*スマホメニューの見た目設定*/
.menu-container {
  width: 100%;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 99; }

.menu > ul {
  margin-top: 0;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 20px;
  width: 100%;
  list-style: none;
  padding: 0;
  padding-top: var(--header-height);
  position: relative;
  box-sizing: border-box; }

.menu > ul > li {
  float: left;
  padding: 0;
  margin: 0;
  background: var(--sp_navliCL);
  border-top: 1px solid var(--sp_navlibCL); }

.menu > ul > li:last-child {
  border-bottom: 1px solid var(--sp_navlibCL); }

.menu > ul > li a {
  text-decoration: none;
  padding: 1.5em 3em;
  display: block;
  color: var(--sp_navaCL); }

.menu > ul > li > ul,
.menu > ul > li > ul > li ul {
  display: none;
  width: 100%;
  position: absolute;
  z-index: 99;
  left: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
  background: var(--sp_navli2CL); }

.menu > ul > li > ul li {
  border-top: 1px solid var(--sp_navli2bCL); }

.menu-container {
  width: 100%; }

.menu-dropdown-icon:before {
  display: block; }

.menu > ul li {
  width: 100%;
  float: none;
  display: block; }

.menu > ul li > span {
  position: relative;
  display: table;
  width: 100%; }

.sp-gnav-layer-btn {
  display: table-cell;
  width: 40px;
  cursor: pointer;
  -moz-transition: background-color .2s linear;
  -webkit-transition: background-color .2s linear;
  -o-transition: background-color .2s linear;
  -ms-transition: background-color .2s linear;
  transition: background-color .2s linear;
  border-left: solid 1px var(--sp_navlibCL);
  border-bottom: solid 1px var(--sp_navlibCL);
  background-color: var(--sp_gnavCL); }

.sp-gnav-layer-btn:before {
  content: "";
  position: absolute;
  display: block;
  width: 16px;
  height: 2px;
  top: 50%;
  right: 12px;
  margin: -1px 0 0;
  background-color: var(--sp_gnavbarCL); }

.sp-gnav-layer-btn:after {
  content: "";
  position: absolute;
  display: block;
  width: 2px;
  height: 16px;
  top: 50%;
  right: 19px;
  margin: -8px 0 0;
  -moz-transition: -moz-transform .2s linear;
  -webkit-transition: -webkit-transform .2s linear;
  -o-transition: -o-transform .2s linear;
  -ms-transition: -ms-transform .2s linear;
  transition: transform .2s linear;
  background-color: var(--sp_gnavbarCL); }

.sp-gnav-layer-btn.current:after {
  -moz-transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg); }

.menu > ul li a {
  padding: 1.5em;
  width: 100%;
  display: block; }

.menu > ul li ul {
  position: relative; }

.menu > ul li ul.normal-sub {
  width: 100%; }

.menu > ul li ul li {
  float: none;
  width: 100%; }

.menu > ul li ul li:first-child {
  margin: 0; }

.menu > ul li ul li ul {
  position: relative; }

.menu > ul li ul li ul li {
  float: none; }

.menu .show-on-mobile {
  display: block; }

header {
  position: sticky;
  top: 0;
  z-index: 89;
  background-color: #FFF; }

main {
  margin-top: 30px;
  margin-bottom: 80px; }

.zen-maru-gothic-regular {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 400;
  font-style: normal; }

.title-style1 {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: bold;
  font-style: normal;
  color: var(--key-color2); }

.title-style2 {
  font-weight: bold;
  color: var(--key-color2);
  background-color: #FFF;
  line-height: 100%;
  padding: 10px 20px;
  letter-spacing: 0.25em;
  border-radius: 50em; }

.title-style3 {
  font-weight: bold;
  line-height: 100%;
  padding: 10px 20px;
  border-radius: 50em;
  border: 4px solid #FFF;
  color: #FFF;
  text-align: center; }

.title-style4 {
  display: flex;
  align-items: center;
  gap: 10px; }
  .title-style4::before {
    content: "";
    width: 1em;
    height: 1em;
    background-color: var(--key-color2);
    display: block; }

.title-style5 {
  color: var(--sec-bg-color);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px; }
  .title-style5::before, .title-style5::after {
    content: "";
    width: 1px;
    padding: 20px 0;
    background: var(--sec-bg-color);
    display: block;
    transform-origin: bottom left; }
  .title-style5::before {
    transform: rotate(-20deg); }
  .title-style5::after {
    transform: rotate(20deg); }

.title-style_obi {
  background: var(--sec-bg-color);
  color: #FFF !important;
  padding: 5px;
  display: block; }

.marker {
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #FFF100;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none; }

/*スマホ用改行・校長の画像をスマホ版では縮小*/
.sp-br {
  display: none; }

.message-name {
  text-align: end; }

@media (max-width: 509px) {
  .sp-br {
    display: block; }

  .sp-img {
    width: 70%; }

  .message-name {
    text-align: center; } }
/*swiper*/
.main-slide figure {
  margin: 0;
  cursor: pointer; }
  .main-slide figure img {
    opacity: 1;
    transition: all 0.5s 0s ease; }
  .main-slide figure:hover img {
    opacity: 0.5;
    transition: all 0.5s 0s ease; }
.main-slide .swiper-pagination {
  position: static;
  margin-top: 20px; }
  .main-slide .swiper-pagination .swiper-pagination-bullet {
    background: #FFF;
    border: 1px solid #000;
    height: 16px;
    width: 16px; }
    .main-slide .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
      background: var(--key-color);
      border: none; }

/*about*/
#about-section {
  background-color: #00df66;
  position: relative;
  padding-bottom: 80px; }
  #about-section::before {
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0.75) 25%, rgba(14, 152, 243, 0) 100%);
    z-index: 1; }
  #about-section::after {
    content: "";
    width: 100%;
    height: 100%;
    display: block;
    background-image: url("../img/bg-about.jpg");
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: cover;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 0; }
  #about-section #title-about {
    display: flex;
    gap: 20px;
    color: var(--key-color);
    position: relative;
    justify-content: space-between; }
    #about-section #title-about span {
      text-align: center;
      width: 100%; }

@media (min-width: 992px) {
  #title-about::before {
    content: "";
    width: 18%;
    padding-top: 18%;
    display: block;
    background-image: url("../img/photo-kounotori.png");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover; }
  #title-about::after {
    content: "";
    width: 18%;
    padding-top: 18%;
    display: block; }
  #title-about span {
    position: absolute;
    top: 50%; } }
@media (max-width: 768px) {
  #about-section::after {
    width: 100%;
    height: 75%;
    background-size: contain; } }
/*power3*/
#power3-section {
  background-color: #31AE37; }

#power-box_wrap {
  counter-reset: listnum;
  /* カウンターをリセット */ }
  #power-box_wrap .box {
    padding: 20px;
    background-color: #FFF;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    height: 100%; }
    #power-box_wrap .box h5 {
      display: flex;
      flex-direction: column;
      text-align: center;
      align-items: center;
      font-family: "Zen Maru Gothic", sans-serif;
      font-weight: bold;
      font-style: normal;
      gap: 10px;
      width: 100%;
      font-size: 1.25rem; }
      #power-box_wrap .box h5::before {
        counter-increment: listnum;
        content: counter(listnum) ".";
        display: block;
        color: #31AE37;
        font-size: 30px; }
      #power-box_wrap .box h5::after {
        content: "";
        background-image: repeating-linear-gradient(90deg, #707070, #707070 2px, transparent 2px, transparent 4px), repeating-linear-gradient(180deg, #707070, #707070 2px, transparent 2px, transparent 4px), repeating-linear-gradient(90deg, #707070, #707070 2px, transparent 2px, transparent 4px), repeating-linear-gradient(180deg, #707070, #707070 2px, transparent 2px, transparent 4px);
        background-position: left top, right top, left bottom, left top;
        background-repeat: repeat-x, repeat-y, repeat-x, repeat-y;
        background-size: 100% 1px, 1px 100%, 100% 1px, 1px 100%;
        width: 100%;
        height: 2px; }
    #power-box_wrap .box p {
      text-align: center;
      margin: 0;
      font-weight: bold; }

/*principal*/
#principal-section {
  display: flex;
  position: relative;
  flex-direction: column; }
  #principal-section::before {
    content: "";
    width: 100%;
    height: 100px;
    display: block; }
  #principal-section::after {
    content: "";
    width: 100%;
    height: 200px;
    background-image: url("../img/bg-principal.jpg");
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1; }
  #principal-section h3 {
    color: var(--key-color2); }

#mes-wrap .box {
  background: #ECFFED;
  padding: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 100%;
  gap: 20px; }
  #mes-wrap .box h6 {
    color: var(--key-color2);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10%;
    width: 100%; }
    #mes-wrap .box h6::before, #mes-wrap .box h6::after {
      content: "";
      flex: 1;
      height: 1px;
      background: var(--key-color2); }
    #mes-wrap .box h6 span {
      text-align: center; }
  #mes-wrap .box p {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin: 0;
    font-size: clamp(1.375rem, 1.307rem + 0.34vw, 1.563rem);
    /*22-25*/
    font-weight: bold;
    line-height: 150%; }

/*コース紹介*/
#course-section {
  background: var(--key-color2); }

#coures-wrap .box {
  background: #FFF;
  padding: 20px;
  border-radius: 10px;
  display: flex;
  /*flex-direction: column;*/
  gap: 20px;
  height: 100%;
  counter-reset: listnum;
  /* カウンターをリセット */
  align-items: center; }
  #coures-wrap .box h6 {
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: bold;
    font-style: normal;
    position: relative;
    color: var(--key-color2); }
    #coures-wrap .box h6::after {
      content: "";
      width: 100%;
      height: 10px;
      background: #FFF100;
      display: inline-block;
      position: absolute;
      bottom: 0;
      left: 0;
      mix-blend-mode: multiply; }
  #coures-wrap .box small {
    line-height: 100%; }

/*タイムテーブル*/
.time-footer {
  padding: 10px;
  border-bottom-left-radius: 20px;
  border-bottom-right-radius: 20px;
  background: #E3F0D8; }

.time-table {
  list-style: none;
  padding-left: 0;
  padding-top: 5px;
  padding-bottom: 5px;
  margin: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  border-top: 2px solid #000;
  border-bottom: 2px solid #000;
  font-size: 14px; }
  .time-table li {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 5px;
    line-height: 100%;
    padding: 4px; }
    .time-table li:nth-of-type(even) {
      background: #FFF100; }
    .time-table li div:first-of-type {
      width: 2em; }
    .time-table li div:last-of-type {
      flex: 1; }

/*制服*/
.seifuku-wrap {
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  height: 100%; }
  .seifuku-wrap::after {
    content: "";
    background: #fff9b1;
    width: calc(100% - 20px);
    height: calc(100% - 20px);
    display: block;
    border-radius: 20px;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -ms-filter: blur(10px);
    filter: blur(10px); }
  .seifuku-wrap div {
    padding: 10px; }
  .seifuku-wrap p {
    font-size: 14px;
    line-height: 125%;
    margin-bottom: 0px; }
  .seifuku-wrap .small {
    font-size: 0.7em; }

/*紹介*/
.sect-wrap + .sect-wrap {
  margin-top: 30px; }
.sect-wrap .section-header {
  background: var(--sec-bg-color);
  border-radius: 30px;
  padding: 20px 10px; }
  .sect-wrap .section-header h6 {
    text-align: center; }
.sect-wrap .section-cont {
  background: var(--sec-bg-color);
  border-radius: 30px;
  padding: 20px 10px; }
  .sect-wrap .section-cont .copy-text {
    color: #FFF;
    font-weight: bold; }
    .sect-wrap .section-cont .copy-text strong {
      color: #FFF100; }
.sect-wrap .cont-wrap {
  padding: 20px;
  border-radius: 20px;
  background: #FFF;
  height: 100%; }

.sect-wrap .box {
  display: flex;
  flex-direction: column;
  gap: 10px; }
  .sect-wrap .box h5 {
    background: var(--sec-bg-color);
    color: #FFF;
    text-align: center;
    display: block;
    padding: 10px;
    font-size: 20px; }
  .sect-wrap .box h6 {
    color: var(--sec-bg-color); }
  .sect-wrap .box figure {
    margin: 0px; }
  .sect-wrap .box p {
    margin: 0;
    line-height: 150%; }
  .sect-wrap .box .title-style_obi {
    background: var(--sec-bg-color);
    color: #FFF;
    padding: 5px;
    display: block; }
.sect-wrap .small {
  line-height: 150%; }

.box-colum {
  display: flex;
  flex-direction: column;
  gap: 10px; }
  .box-colum figure {
    overflow: hidden;
    position: relative; }
    .box-colum figure figcaption {
      background-color: var(--sec-bg-color);
      color: #FFF;
      padding: 5px;
      display: inline-block;
      position: absolute;
      top: 10%;
      left: 0;
      line-height: 100%; }
  .box-colum p {
    color: var(--sec-bg-color);
    margin: 0; }
  .box-colum h6 {
    text-decoration: underline;
    text-decoration-thickness: 0.5em;
    text-decoration-color: #FFF100;
    text-underline-offset: -0.2em;
    text-decoration-skip-ink: none; }

/*クラブリスト*/
.club-list-wrapper {
  background: #D7CFEE;
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 20px; }

.club-list {
  display: inline-flex;
  gap: 5px;
  padding: 0;
  margin: 0;
  list-style: none;
  flex-wrap: wrap;
  font-size: 13px;
  line-height: 150%; }
  .club-list li:not(:last-of-type)::after {
    content: "/";
    padding-top: 5px; }

/*アコーディオン*/
.acc-header {
  cursor: pointer;
  position: relative; }
  .acc-header span {
    position: absolute;
    width: 40px;
    height: 40px;
    padding: 5px;
    border: 1px solid #FFF;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 50%;
    right: 10px;
    -webkit-transform: translateY(-50%) rotate(0deg);
    -moz-transform: translateY(-50%) rotate(0deg);
    -ms-transform: translateY(-50%) rotate(0deg);
    -o-transform: translateY(-50%) rotate(0deg);
    transform: translateY(-50%) rotate(0deg);
    transform-origin: center center;
    transition: all 0.5s 0s ease; }
    .acc-header span::before {
      content: "";
      display: block;
      width: 20px;
      height: 20px;
      border-top: 4px solid #FFF;
      border-right: 4px solid #FFF;
      margin-left: -7px;
      -webkit-transform: rotate(45deg);
      -moz-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      -o-transform: rotate(45deg);
      transform: rotate(45deg); }
  .acc-header.acc-open span {
    -webkit-transform: translateY(-50%) rotate(0deg);
    -moz-transform: translateY(-50%) rotate(0deg);
    -ms-transform: translateY(-50%) rotate(0deg);
    -o-transform: translateY(-50%) rotate(0deg);
    transform: translateY(-50%) rotate(90deg);
    transition: all 0.5s 0s ease; }

.acc-content {
  display: none; }

.news-subtext {
  font-size: 20px; }
  @media (max-width: 768px) {
    .news-subtext {
      font-size: 16px; } }

/*7news*/
#news7-wrap .icon-ai {
  position: relative; }
  #news7-wrap .icon-ai::before {
    content: "";
    width: clamp(2.5rem, 1.477rem + 5.11vw, 5.313rem);
    /*40-85*/
    height: clamp(2.5rem, 1.477rem + 5.11vw, 5.313rem);
    /*40-85*/
    background-image: url("../img/icon-ai.png");
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
    border-radius: 50%;
    overflow: hidden;
    position: absolute;
    top: -20px;
    right: 10px;
    z-index: 3; }
#news7-wrap .box {
  background: #FFF;
  border-radius: 10px;
  overflow: hidden;
  height: 100%;
  position: relative; }
  #news7-wrap .box section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px; }
  #news7-wrap .box figure {
    margin: 0; }
  #news7-wrap .box h5 {
    color: var(--sec-bg-color);
    background-color: transparent;
    text-align: start;
    padding: 0; }
  #news7-wrap .box h6 {
    background: #31AE37;
    color: #FFF;
    text-align: center;
    padding: 5px 15px;
    border-radius: 50em;
    font-size: 14px;
    display: inline-block;
    line-height: 100%; }
  #news7-wrap .box .news-catch {
    font-size: 20px;
    color: #31AE37;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: bold;
    font-style: normal; }
#news7-wrap .award-list {
  list-style: none;
  padding: 0; }
  #news7-wrap .award-list li {
    background: #31AE37;
    color: #FFF;
    padding: 10px;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: bold;
    font-style: normal;
    line-height: 125%; }
    #news7-wrap .award-list li small {
      font-size: 12px; }
    #news7-wrap .award-list li + li {
      margin-top: 10px; }
#news7-wrap .hash-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  font-size: 13px;
  color: #00267F;
  width: 100%; }
  #news7-wrap .hash-list li {
    display: inline-flex; }

.title-point {
  display: flex;
  padding: 5px;
  justify-content: center;
  align-items: center;
  background-color: #000;
  color: #FFF;
  font-size: 12px;
  border-radius: 5px;
  line-height: 125%;
  text-align: center; }

ul.li10px li + li {
  margin-top: 10px; }

.btn-center {
  margin: 0 auto; }

/*学生寮*/
#bureau-section {
  background-image: url("../img/bg-dormitory.png");
  background-repeat: repeat-y;
  width: 100%;
  background-position: top;
  padding: 5em 0; }
  #bureau-section .bureau-area {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 30px;
    padding: 5em; }
  @media (max-width: 768px) {
    #bureau-section .bureau-area {
      padding: 2em; } }
  #bureau-section .btn-sect {
    background-color: #FF7231;
    border: 2px solid #FF7231; }
  #bureau-section .marker2 {
    text-decoration: underline;
    text-decoration-thickness: 0.5em;
    text-decoration-color: #FF7231;
    text-underline-offset: -0.2em;
    text-decoration-skip-ink: none; }

/*その他*/
#other-section .box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  border-radius: 20px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
  height: 100%; }
#other-section figure,
#other-section p {
  margin: 0; }

.sien-list {
  padding: 0;
  margin: 0;
  list-style: none; }
  .sien-list li {
    display: flex;
    justify-content: space-between;
    gap: 5px; }
    .sien-list li::before {
      content: "";
      flex: 1;
      border-top: 3px dotted #000;
      order: 1;
      display: block;
      align-self: center; }
    .sien-list li div:first-of-type {
      width: 8em;
      order: 0;
      font-weight: 700; }
    .sien-list li div:last-of-type {
      width: 8em;
      order: 2; }

/*footer*/
#sns-section ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  justify-content: center;
  gap: 5%; }
  #sns-section ul li {
    width: clamp(5rem, 4.545rem + 2.27vw, 6.25rem);
    /*80-100*/ }
    #sns-section ul li button {
      border: none;
      background-color: transparent;
      padding: 20px;
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center; }
      #sns-section ul li button::after {
        content: "";
        width: 100%;
        height: 100%;
        border-radius: 50%;
        background-color: #FFF;
        display: block;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); }
      #sns-section ul li button img {
        height: auto;
        width: 100%;
        max-width: 79px;
        z-index: 2;
        position: relative; }

#footer-menu article {
  position: relative;
  overflow: hidden; }
  #footer-menu article::after {
    content: "";
    width: 100%;
    height: 100%;
    mix-blend-mode: multiply;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    background-color: #6D6D6D; }
  #footer-menu article:hover img {
    opacity: 0.5; }
  #footer-menu article img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%); }
  #footer-menu article a {
    width: 100%;
    height: 350px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    position: relative;
    z-index: 3;
    color: #FFF; }
    #footer-menu article a small {
      padding: 5px;
      border: 1px solid #FFF;
      margin-bottom: 10px;
      line-height: 100%;
      display: inline-block;
      font-weight: bold; }
    #footer-menu article a::after {
      content: "";
      width: 20px;
      height: 20px;
      border-top: solid 4px #FFF;
      border-right: solid 4px #FFF;
      transform: rotate(45deg);
      margin-right: 15px; }

@media (min-width: 1400px) {
  #footer-menu .col-md-6 article a {
    width: calc(1320px / 2) !important; }
  #footer-menu .col-md-6:first-of-type article a {
    margin-left: auto; } }
@media (min-width: 1200px) {
  #footer-menu .col-md-6 article a {
    width: calc(1140px / 2); }
  #footer-menu .col-md-6:first-of-type article a {
    margin-left: auto; } }
@media (max-width: 767px) {
  #footer-menu .col-md-6:nth-of-type(even) article {
    border-top: 1px solid #FFF; }
  #footer-menu a {
    height: 200px !important; } }
.floating-banner {
  position: fixed;
  /* バナーを追従させる */
  z-index: 20;
  /* 他の要素の下に隠れないように */
  bottom: 0;
  /* バナーの上下の位置 */
  left: 0;
  /* バナーの左右の位置 */
  width: 320px;
  /* バナーの横幅 */ }

.floating-banner__image {
  max-width: 100%;
  /* 画像の最大幅 */ }

@media screen and (max-width: 560px) {
  /* スマホ用のブレイクポイントを指定 */
  .floating-banner {
    width: 80%;
    /*width: 100vw;  スマホの画面幅いっぱいにバナーを表示 */ } }
/*シンプルボタン*/
.btn-simple {
  font-weight: bold; }
  .btn-simple::after {
    content: "\f061";
    font-family: 'fontawesome-s';
    color: var(--key-color);
    margin-left: 5px;
    font-weight: normal; }

/*角丸ボタン*/
.btn-sect {
  background: var(--sec-bg-color);
  border: 2px solid var(--sec-bg-color);
  color: #FFF;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border-radius: 50em;
  padding: 10px 20px; }
  .btn-sect strong {
    flex: 1;
    text-align: center; }
  .btn-sect span::before {
    content: "";
    display: block;
    width: 1em;
    height: 1em;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
    transform: rotate(45deg); }
  .btn-sect:hover {
    background: #FFF;
    color: var(--sec-bg-color); }
    .btn-sect:hover span::before {
      border-color: var(--sec-bg-color); }

/*特進コースボタン*/
.button-tokusin {
  display: flex;
  background: var(--main-color);
  border-radius: 10px;
  border: none;
  position: relative;
  justify-content: flex-end;
  padding: 20px 10px;
  width: 100%;
  flex-wrap: wrap;
  flex-direction: row; }
  .button-tokusin figure {
    margin: 0px; }
    .button-tokusin figure img {
      height: 100%;
      width: 100%;
      object-fit: cover;
      display: block; }
  .button-tokusin .link-sing {
    position: relative; }
    .button-tokusin .link-sing span {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      padding: 10px;
      line-height: 125%;
      font-weight: bold;
      color: var(--main-color);
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2;
      width: 100%;
      height: 100%;
      gap: 10px; }
      .button-tokusin .link-sing span::after {
        content: "";
        width: 1em;
        height: 1em;
        border-top: solid 4px var(--main-color);
        border-right: solid 4px var(--main-color);
        transform: rotate(45deg); }
    .button-tokusin .link-sing:before {
      content: "";
      width: 100%;
      padding-top: 100%;
      display: block;
      border-radius: 50%;
      background-color: #FFF; }
  .button-tokusin:hover {
    opacity: 0.8; }

@media (min-width: 992px) {
  .button-tokusin {
    margin-top: 10px;
    margin-bottom: 10px; }
    .button-tokusin figure {
      position: absolute;
      top: 50%;
      left: 0;
      -webkit-transform: translateY(-50%);
      -moz-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      -o-transform: translateY(-50%);
      transform: translateY(-50%); } }
/*上に戻るボタン*/
.go_page-top {
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--key-color);
  border-radius: 50px;
  padding: 10px;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 0;
  right: 0;
  transition: transform 0.4s ease;
  transform: translateX(100%);
  z-index: 20;
  cursor: pointer;
  border: none; }
  .go_page-top::before {
    content: "";
    width: 28.3px;
    height: 25px;
    background: #FFF;
    clip-path: polygon(0 56.6%, 50% 0, 100% 56.6%, 67.7% 56.6%, 67.7% 100%, 32.3% 100%, 32.3% 56.6%);
    transform: scale(0.8); }

.h-active .go_page-top {
  transform: translateX(0%); }
