/* CSS Document */

/*********************************************************************************
 ** 全ページ共通
 */
img {
  /* ウィンドウサイズに応じて画像を拡縮 */
  vertical-align: middle;
  max-width: 100%;
  width: auto;
  height: auto;
}
body {
  color: #444;
  -webkit-text-size-adjust: 100%;
  line-height: 1.5em;
}
.wrapper {
  max-width: 980px;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0 20px;
}

a img {
  transition: 0.8s;
}

a img:hover {
  opacity: 0.7;
}

sup {
	font-size: 70%;
	vertical-align: super;
}

@media screen and (max-width: 736px) {
  /* 固定電話番号表示用の最下部padding */
  body {
    padding-bottom: 4.3rem;
  }

  .wrapper {
    padding: 0 1rem;
  }
}

/***************************
 ** flexible boxと子要素の関係
 * flexible box仕様には3段階あります。box,flexbox,flex
 * ブラウザによって実装段階がそれぞれ異なるので、注意すること
 *
 * 横並びのboxなのでクラス名を「flex_row」に変更
 */

.flex_row {
  /* flexible boxの使用宣言（box,flexbox,flex） */
  display: -webkit-box;/*--- Androidブラウザ用 ---*/
  display: -ms-flexbox;/*--- ie10 ---*/
  display: -webkit-flex;/*--- mac old safari ---*/
  display: flex;
  /* flexアイテムの横方向の位置揃え */
  -webkit-box-pack: justify;/*--- Androidブラウザ ---*/
  -ms-flex-pack: justify;/*--- ie10 ---*/
  -webkit-justify-content: space-between;/*--- mac old safari ---*/
  justify-content: space-between;
  /* flexアイテムの縦方向の整列 */
  -webkit-box-align: stretch;/*--- Androidブラウザ ---*/
  -ms-flex-align: stretch;/*--- ie10 ---*/
  -webkit-align-items: stretch;/*--- mac old safari ---*/
  align-items: stretch;
  /* flexアイテムの並び方向 */
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;/*--- Androidブラウザ 2つに分かれている ---*/
  -ms-flex-direction: row;/*--- ie10 ---*/
  -webkit-flex-direction: row;/*--- mac old safari ---*/
  flex-direction: row;
  /* flexアイテムを複数行にするかどうか */
    /* box仕様のbox-linesに当たるが、androidブラウザは未対応 */
    /* wrapさせたい場合はandroid4DefaultBrowser.cssにて対応すること */
  -ms-flex-wrap: nowrap;/*--- ie10 ---*/
  -webkit-flex-wrap: nowrap;/*--- mac old safari ---*/
  flex-wrap: nowrap;
}
.flex_row>* {
  /**** flexible box関連指定 ****/
    /* flexアイテムの伸縮、アイテム幅の指定 */
  -webkit-box-flex: 0.1;    /*--- Androidブラウザ 要素がはみ出す場合があることへの対処 ---*/
  -ms-flex: 1 1;    /*--- ie10 ---*/
  -webkit-flex: 1 1 auto;    /* mac old safari */
  /* ie11で、flex-basisを記述すると正しく動作しないので記載しないように変更 */
  flex: 1 1;    /*--- flex-grow,flex-shrink,flex-basis ---*/
  /* 並び順の指定 */
  -webkit-box-ordinal-group: 1;/*--- Androidブラウザ ---*/
  -ms-flex-order: 0;/*--- ie10 ---*/
  -webkit-order: 0;/*--- mac old safari ---*/
  order: 0;
}

@media screen and (max-width: 736px) {
/***************************
 * スマホの場合にどうするかを記載するので接頭辞として、「sp_」を追加
 */
.sp_flex_col {
  /* flexアイテムの並び方向 */
  -webkit-box-orient: vertical;/*--- Androidブラウザ 2つに分かれている ---*/
  -ms-flex-direction: column;/*--- ie10 ---*/
  -webkit-flex-direction: column;/*--- mac old safari ---*/
  flex-direction: column;
}
.sp_flex_col>* {
  width: 100%;
}
/***************************
 ** ここは参考です。クラス名など適切に置き換えてください。
 */
.sp_flex_2row2col {
  /* flexアイテムを複数行にするかどうか */
        /* box仕様のbox-linesに当たるが、androidブラウザは未対応 */
        /* wrapさせたい場合はandroid4DefaultBrowser.cssにて対応すること */
  -ms-flex-wrap: wrap;/*--- ie10 ---*/
  -webkit-flex-wrap: wrap;/*--- mac old safari ---*/
  flex-wrap: wrap;
}
.sp_flex_2row2col>* {
  width: 50%;
  box-sizing: border-box;
}
}


/***************************
 ** header
 */
#header {
  position: relative;
}

#header h1 {
  padding: 0.5rem 0;
  background: #F57878;
  color: #fff;
  font-size: 0.875rem;
  font-weight: bold;
  z-index: 98;
}

#header h1 span {
  display: block;
  position: relative;
}

.ol-searchform {
  position: absolute;
  right: 0;
  top: 0;
}

.header_contents {
  padding: 0.5rem 0;
}

.header_contents > p {
  flex-basis: 20%;
}

.header_contents .school_list {
  flex-basis: 60%;
  color: #009E60;
  line-height: 1.5;
  margin-left: 20%;
}

.header_contents .school_list li {
  margin-left: 1rem;
}

.header_contents .school_list li p:first-child {
  font-weight: bold;
  font-size: 1rem;
}

.header_contents .school_list li p:first-child::before {
  content: "◆";
  display: inline-block;
  margin-right: 0.5rem;
}

.header_contents .school_list li p:last-child {
  font-size: 0.75rem;
}

.header_contents .school_list li p a {
  color: #009E60;
  text-decoration: none;
}

@media screen and (max-width: 736px) {
  #header h1 {
    height: 50px;
    font-size: 0.75rem;
    padding-right: 70px;
  }

  .ol-searchform {
    right: -15px;
    top: 10px;
  }

  .header_contents > p {
    flex-basis: 35%;
  }

  .header_contents .school_list {
    flex-basis: 62%;
  }

  .header_contents .school_list li {
    margin-left: 0;
  }

  .header_contents .school_list li p:first-child {
    margin-bottom: 0.5rem;
  }

  .header_contents .school_list li p:last-child {
    display: none;
  }

  .school_name {
    font-size: 0.75rem;
  }
}

@media screen and (max-width: 320px) {
  #header h1 {
    font-size: 0.6875rem;
    line-height: 1.6;
  }
}

/***************************
 ** 検索窓（モーダル）
 */
/*#ol-search{
  display:none;
}
.search-icon{
  cursor:pointer;
}
.search-icon::before{
  font-family:"Font Awesome 5 Free";
  content: "\f002";
  font-weight: 900;
  font-size: 1.5rem;
}
.overlay,
.ol-search-wrap{
  display:none;
  opacity:0;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  animation:fade_overlay .3s;
}
.ol-search-wrap{
  z-index:9990;
}
.overlay{
  z-index:9991;
  background:rgba(0,0,0,.4);
}
#ol-search:checked ~ .ol-search-wrap,
#ol-search:checked ~ .ol-search-wrap .overlay{
  display:block;
  opacity:1;
}
.ol-searchform .searchform{
  position:fixed;
  top:50%;
  left:50%;
  z-index:9999;
  max-width:520px;
  border-radius:4px;
  transform:translate(-50%,-50%);
  display:flex;
}
.ol-searchform .search-field, .ol-searchform .search-submit{
  height:48px;
  padding:4px 12px;
  border:none;
  background: #fff;
  font-size:18px;
  color:#fff;
  transition:.3s;
  outline:none;
}
.ol-searchform .search-field{
  flex:1;
  border-radius:4px 0 0 4px;
}
.ol-searchform .search-submit{
  cursor:pointer;
  border-radius:0 4px 4px 0;
}
.ol-searchform .search-field:focus,
.ol-searchform .search-field:focus + .search-submit{
  background: #ccc;
}

.fa-search:before {
   color: #000;
}*/
.fa-search:before {
   color: #fff;
}

/***************************
 ** nav
 */
#nav {
  background: #F57878;
  font-size: 0.875rem;
  line-height: 16px;
}


#nav .wrapper {
  max-width: 1200px;
  padding: 0;
}
#nav .wrapper > ul > li {
  /* width: 11.11%; */
  text-align: center;
}
#nav .wrapper .flex_row li {
  flex: auto;
}

.menu li {
  position: relative;
}

.menu li a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  box-sizing: border-box;
  font-size: 14px;
  padding: 1em 0.2em;
  color: #fff;
  line-height: 16px;
  background: #F57878;
  transition: 0.5s;
  text-decoration: none;
  font-weight: bold;
}

.menu > li:hover > a {/*layer-1*/
  background: #F14949;
}

.menu > li li:hover > a {/*layer-2*/
  background: #F14949;
}

.menu li ul {
  top: 44px;
  left: 0;
  position: absolute;
}

.menu li ul li {
  overflow: hidden;
  height: 0;
  transition: 0.2s;
}

.menu li:hover > ul > li {
  overflow: visible;
  height: auto;
}

.menu li:hover > ul > li a {
  width: 10rem;
}

#nav_toggle{
	display: none;
}

@media screen and (max-width: 972px) {/* メニュー文字が改行したときの第二回層位置調整 */
  .menu li ul {
    top: 60px;
    left: 0;
    position: absolute;
  }
}

@media screen and (max-width: 736px) {
  /* スライドインメニューにする */
  #nav {
		display: none; /*初期見えなくしておく*/
		position: absolute;
		top:0;
		width: 100%;
		background: #4d4d4d;
		left: 0;
    z-index: 99;
	}

  #header #nav ul{
		display: block;
		width: 100%;
	}

  #nav .wrapper > ul > li {
    width: 100%;
  }

  .menu li a {
    font-size: 1rem;
    padding: 1rem;
    line-height: 1.25rem;
    background: #4d4d4d;
  }

  .menu li ul {
    position: relative;
    top: 0;
    left: 0;
  }

  .menu li ul li {
    overflow: visible;
    height: auto;
  }

  .menu li:hover > ul > li a {
    width: 100%;
  }

  /*開閉ボタン*/
	#nav_toggle{
		display: block;
		width: 40px;
		height: 40px;
		position: absolute;
		top: 1rem;
    right: 1rem;
		z-index: 100;
	}
	#nav_toggle div {
		position: relative;
	}
	#nav_toggle span{
		display: block;
		height: 3px;
		background: #fff;
		position:absolute;
		width: 100%;
		left: 0;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;
	}
	#nav_toggle span:nth-child(1){
		top:0px;
	}
	#nav_toggle span:nth-child(2){
		top:12px;
	}
	#nav_toggle span:nth-child(3){
		top:24px;
	}

	/*開閉ボタンopen時*/
	.open #nav_toggle span:nth-child(1) {
			top: 12px;
		   -webkit-transform: rotate(135deg);
			-moz-transform: rotate(135deg);
			transform: rotate(135deg);
		}
		.open #nav_toggle span:nth-child(2) {
			width: 0;
			left: 50%;
		}
		.open #nav_toggle span:nth-child(3) {
			top: 12px;
			-webkit-transform: rotate(-135deg);
			-moz-transform: rotate(-135deg);
			transform: rotate(-135deg);
		}
}


/***************************
 ** #main
 */
main {
  display: block;
  /* for ie10 */
}


/***************************
 ** リンクバナー
 */
#banners {
  background: #fefafa;
  padding: 6rem 0;
}

.banner_l {
  margin-bottom: 3rem;
}

.banner_l li:first-child {
  margin-bottom: 2rem;
}

.banner_l img.sns_banner_SP {
  display: none;
}

.banner_s li {
  margin-right: 1%;
}

.banner_s li:last-child {
  margin-right: 0;
}

@media screen and (max-width: 736px) {
  #banners {
    padding: 3rem 0 2rem;
  }

  .banner_l {
    margin-bottom: 2rem;
  }

  .banner_l li:first-child {
    margin-bottom: 1rem;
  }

  .banner_l img.sns_banner_SP {
    display: block;
	width: 100%;
  }

  .banner_l img.sns_banner_PC {
    display: none;
  }

  .banner_s {
    flex-wrap: wrap;
  }

  .banner_s li {
    flex-basis: 49%;
    margin-right: 2%;
    margin-bottom: 1rem;
  }

  .banner_s li:nth-child(even) {
    margin-right: 0;
  }
}


/***************************
 ** HUGのグループ
 */
#group {
  background: #F57878;
  padding: 2rem 0;
  color: #fff;
}

.group_ttl {
  font-family: "Sawarabi Mincho";
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
}

#group ul {
  font-size: 0.875rem;
}

#group ul li:nth-child(2) {
  margin: 0 4%;
}

#group ul li h3 {
  font-size: 1rem;
  font-weight: bold;
}

#group ul li a {
  color: #fff;
  text-decoration: none;
}

@media screen and (max-width: 736px) {
  #group ul li:nth-child(2) {
    margin: 1rem 0;
  }
}


/***************************
 ** フッター
 */
#foot_nav {
  text-align: center;
  padding: 1rem;
  border-bottom: 1px solid #F57878;
}
#foot_nav .wrapper {
  max-width: 1200px;
}

#foot_nav ul li {
  display: inline-block;
  padding: 0 0.4rem;
}

#foot_nav ul li a {
  color: #F57878;
  text-decoration: none;
}

#foot_nav ul li a:hover {
  text-decoration: underline;
}

.copyright {
  text-align: center;
  font-size: 0.75rem;
  padding: 1rem;
}

.foot_tel {
  display: none;
}

@media screen and (max-width: 736px) {
  #foot_nav ul li {
    line-height: 2;
  }

  .foot_tel {
    position: fixed;
    bottom: 0;
    display: block;
    width: 100%;
    background: #fefafa;
    text-align: center;
  }

  .foot_tel a {
    display: block;
    color: #F57878;
    padding: 1rem;
    text-decoration: none;
    font-weight: bold;
    font-size: 0.8rem;
  }

  .foot_tel a span {
    font-size: 1.5rem;
  }
}


/***************************
 ** #rev_top
 */
.rev_top {
  position: fixed;
  width: 7%;
  max-width: 60px;
  bottom: 20px;
  left: 20px;
  text-decoration: none;
  -ms-filter: "alpha(opacity=80)";
  -moz-opacity: 0.8;
  -khtml-opacity: 0.8;
  opacity: 0.8;
  box-shadow: 0 0 4px rgba(0, 0, 0, .3);
}

/*********************************************************************************
 ** 第二階層共通
 */

/***************************
 ** パンくず
 */
#breadcrumb {
  background: #F5F5F5;
  padding: 1rem;
  margin-bottom: 3rem;
}

#breadcrumb ul {
  font-size: 0.75rem;
}

#breadcrumb ul li {
  display: inline-block;
}

#breadcrumb ul li::after {
  content: "＞";
  display: inline-block;
  margin: 0 0.5rem;
}

#breadcrumb ul li:last-child::after {
  display: none;
}

#breadcrumb ul li a {
  color: #F57878;
  text-decoration: none;
}

#breadcrumb ul li a:hover {
  text-decoration: underline;
}

@media screen and (max-width: 736px) {
  #breadcrumb {
    padding: 0.6rem 0;
    margin-bottom: 1.5rem;
  }
}


/***************************
 ** レイアウト・タイトル・段落
 */

/* セクション（ベーシック） */
.base_section {
  padding: 4rem 0;
  border-top: 1px solid #e9e9e9;
}

.base_inner {
  margin-bottom: 4rem;
}

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

/* ページタイトル */
.page_ttl {
  font-size: 1.5625rem;
  font-weight: bold;
  margin-bottom: 3rem;
  text-align: center;
}

/* セクション内のタイトル　レベル1 */
.sec_ttl {
  font-size: 1.5rem;
  font-family: "Sawarabi Mincho";
  color: #F57878;
  margin-bottom: 2rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #F57878;
  padding-left: 56px;
  text-indent: -56px;
  line-height: 1.3;
}

.sec_ttl::before {
  content: "";
  display: inline-block;
  width: 40px;
  height: 40px;
  background: url("../img/block_icon.png") no-repeat;
  background-size: 100% auto;
  margin-right: 1rem;
  margin-bottom: -10px;
}

/* セクション内のタイトル　レベル2 */
.sec_sub_ttl {
  font-size: 1.25rem;
  font-family: "Sawarabi Mincho";
  color: #F57878;
  margin-bottom: 1.5rem;
  padding-left: 30px;
  text-indent: -30px;
  line-height: 1.3;
}

.sec_sub_ttl::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: #FFD8D0;
  border-radius: 50%;
  margin-right: 0.6rem;
  margin-bottom: -2px;
}

/* セクション内のタイトル　レベル3 */
.sec_sub_ttl_s {
  font-size: 1.15rem;
  font-family: "Sawarabi Mincho";
  color: #F57878;
  margin-bottom: 1.2rem;
}

/* 段落 */
.paragraph_box p {/* ボックス内のp要素全部に下部マージンを付ける */
  margin-bottom: 1.2em;
}

.paragraph {/* 段落単独で下部マージンを付ける */
  margin-bottom: 1.2em;
}

.paragraph_last {/* 最終段落下部マージンを広めに付ける */
  margin-bottom: 2.4em!important;
}

/* 注釈 */
.note {
  font-size: 0.75rem;
}

/* 強調（アンダーラインのマーカー） */
.marker {
  background: #77d8b2;
  background: -moz-linear-gradient(top, transparent 0%, transparent 65%, #c1eddc 65%, #c1eddc 100%);
  background: -webkit-linear-gradient(top, transparent 0%,transparent 65%,#c1eddc 65%,#c1eddc 100%);
  background: linear-gradient(to bottom, transparent 0%,transparent 65%,#c1eddc 65%,#c1eddc 100%);
  font-weight: bold;
}

/* 強調（太字） */
.strong {
  font-weight: bold;
}

@media screen and (max-width: 736px) {
  /* セクション（ベーシック） */
  .base_section {
    padding: 2rem 0;
  }

  .base_inner {
    margin-bottom: 2rem;
  }

  /* ページタイトル */
  .page_ttl {
    margin-bottom: 1.5rem;
  }

  /* セクション内のタイトル　レベル1 */
  .sec_ttl {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    padding-left: 46px;
    text-indent: -46px;
  }

  .sec_ttl::before {
    width: 30px;
    height: 30px;
    margin-bottom: -5px;
  }

  /* セクション内のタイトル　レベル2 */
  .sec_sub_ttl {
    font-size: 1.15rem;
    margin-bottom: 1rem;
  }

  .sec_sub_ttl::before {
    width: 20px;
    height: 20px;
  }

  /* セクション内のタイトル　レベル3 */
  .sec_sub_ttl_s {
    font-size: 1rem;
    margin-bottom: 1rem;
  }

  /* 段落 */
  .paragraph_box p,
  .paragraph,
  .paragraph_last {
    font-size: 0.875rem;
  }
}

/***************************
 ** テーブル(ベースになる汎用テーブル)
 */
.base_table {
  border-top: 1px solid #ccc;
  border-left: 1px solid #ccc;
  background: #fff;
}

.base_table tr th,
.base_table tr td {
  border-bottom: 1px solid #ccc;
  border-right: 1px solid #ccc;
  padding: 0.5rem 1rem;
}

.base_table tr th {
  font-weight: bold;
  background: #fae2e2;
  white-space: nowrap;
}

@media screen and (max-width: 736px) {
  .base_table tr th,
  .base_table tr td {
    padding: 0.5rem;
    font-size: 0.875rem;
  }
}


/***************************
 ** リスト（汎用リスト）
 */
.base_list > li {
  padding-left: 1.3em;
  text-indent: -0.6em;
  margin-bottom: 0.8em;
}

.base_list > li::before {
  content: "・";
  display: inline-block;
  font-weight: bold;
  margin-right: 0.3em;
  color: #F57878;
}

.base_num_list {
  margin-left: 1.5em;
}

.base_num_list > li {
  list-style: decimal;
  margin-bottom: 0.8em;
}

@media screen and (max-width: 736px) {
  .base_list > li {
    font-size: 0.875rem;
  }

  .base_num_list > li {
    font-size: 0.875rem;
  }
}


/***************************
 ** 他のメニュー・ページへのリンクボタン（サイト内リンク）
 */
.internal_link_btn {
  display: inline-block;
  padding: 0.3rem 1rem;
  font-size: 0.875rem;
  text-decoration: none;
  line-height: 1.5;
  border: 1px solid #f57878;
  color: #f57878;
  border-radius: 10px;
  font-weight: bold;
  transition: 0.8s;
  margin-bottom: 1rem;
}

.internal_link_btn::after {
  content: "》";
  display: inline-block;
  margin-left: 0.5rem;
}

.internal_link_btn:hover {
  background: #fff2f2;
}


/***************************
 ** メールフォーム
 */
.base_form {
  max-width: 640px;
  margin: 0 auto;
}

.base_form dt {
  margin-bottom: 0.5rem;
}

.required {
  display: inline-block;
  vertical-align: middle;
  font-size: 0.75rem;
  color: #fff;
  background: #009E60;
  padding: 0 0.5em;
  border-radius: 3px;
  margin-left: 0.5rem;
}

.base_form dd {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px dotted #ccc;
}

.base_form dd input[type="text"] {
  height: 2rem;
  width: 50%;
  border: 1px solid #ccc;
}

.base_form dd textarea {
  width: 100%;
  height: 8rem;
  border: 1px solid #ccc;
}

.btn_box {
  text-align: center;
}

.submit_btn,
.return_btn {
  border: none;
  font-size: 1rem;
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 3rem;
  cursor: pointer;
  transition: 0.8s;
  width: 18em;
}

.submit_btn:hover,
.return_btn:hover {
  opacity: 0.7;
}

.submit_btn {
  background: #F57878;
}

.return_btn {
  background: #9B9B9B;
}

.confirm_msg {
  text-align: center;
  margin-bottom: 3rem;
}

/* エラーメッセージ */
.err_msg_box {
  text-align: center;
  color: #FF0004;
  padding: 0.5rem 1rem;
  border: 2px solid #FF0004;
  margin-bottom: 3rem;
  border-radius: 5px;
}

.err_msg_box::before {
  font-family: "Font Awesome 5 Free";
  content: '\f06a';
  font-weight: 900;
  font-size: 1.25rem;
  display: inline-block;
  margin-right: 0.5rem;
  color: #FF0004;
}

.err_msg {
  display: block;
  color: #FF0004;
  font-size: 0.875rem;
  font-weight: bold;
}

/* エラーメッセージ */
.notice_msg_box {
  text-align: center;
  color: #000;
  padding: 0.5rem 1rem;
  border: 2px solid #000;
  margin-bottom: 3rem;
  border-radius: 5px;
}

@media screen and (max-width: 736px) {
  .base_form {
    max-width: 100%;
  }

  .base_form dd {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
  }

  .base_form dd input[type="text"] {
    width: 100%;
  }

  .base_form dd textarea {
    height: 5rem;
  }

  .submit_btn,
  .return_btn {
    width: 100%;
  }

  .return_btn {
    margin-bottom: 1rem;
  }

  .confirm_msg {
    margin-bottom: 1.5rem;
  }

  /* エラーメッセージ */
  .err_msg_box {
    margin-bottom: 2rem;
  }
}
