/* ===============================
サブサイトテンプレート2　スタイル
================================= */
@charset "utf-8";

/* ===============================
スライドショー
================================= */
.swiper {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  height: auto;
  position: relative;
  margin-top: 0;
}

/* ===============================
テンプレ2背景
================================= */
.tp2_wrap {
  position: relative;
  width: 100%;
}

.tp2_wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(/img/common/tpl2_bg.png) repeat;
  z-index: -1;
  pointer-events: none;
}

@media all and (max-width:1080px) {
  #mymainback_bg .link_to_subsitemenu {
    padding: 1.5rem;
    margin: 0;
    background: #fff;
  }
}

/* ===============================
テンプレ2_検索ボタン
================================= */
.search_tab img {
  content: url("/img/common/search_box_tpl2_icon.png");
  width: 197px;
  height: auto;
}

/* ===============================
メイン
================================= */
#mymainback #main_a {
  position: relative;
  width: 100%;
}

#mymainback #main_a::before {
  position: absolute;
  content: "";
  display: block;
  width: 122px;
  height: 69px;
  top: 45px;
  right: 10%;
  background: url(/img/common/tpl2_bg_1.png) no-repeat;
  z-index: -1;
}

#mymainback #main_a::after {
  position: absolute;
  content: "";
  display: block;
  width: 567px;
  height: 977px;
  bottom: 0;
  left: 0;
  background: url(/img/common/tpl2_bg_2.png) no-repeat;
  z-index: -1;
}

#main_body_wrap {
  position: relative;
}

#main_body_wrap::before {
  position: absolute;
  content: "";
  display: block;
  width: 388px;
  height: 926px;
  bottom: -450px;
  right: 0;
  background: url(/img/common/tpl2_bg_3.png) no-repeat;
  z-index: -1;
}

#main_body_wrap.tpl2_list::before {
  bottom: -450px;
}

#mymainback #main_body.tpl2_top_body {
  position: relative;
  padding: 5rem 5rem 4rem;
}

#mymainback::before {
  display: none;
}

body:not(:has(.free_box2)) #mymainback #main_body {
  margin-top: 3rem;
}

body:not(:has(.free_box2)) #mymainback #main_body:has(.detail_title1) {
  margin-top: 0;
}

@media all and (max-width:1080px) {
  #mymainback #main_body {
    padding: 2rem 1.5rem;
  }

  #mymainback #main_body:has(.tpl2_top_title) {
    margin-top: 2rem;
    padding: 2rem 1.5rem;
  }

  body:not(:has(.free_box2)) #mymainback #main_body {
    margin-top: 2rem;
  }
}

@media all and (max-width:768px) {
  #main_body_wrap::before {
    background: url(/img/common/tpl2_bg_3_2.png) no-repeat;
    width: 105px;
    height: 317px;
    bottom: -400px;
    background-size: contain;
  }
}

/* ===============================
サブサイトタイトル
================================= */
.mymainback_detail #main.detail_main #main_header.detail_title1,
#container #main_header {
  position: relative;
  background: #88608F;
  border-radius: 15px;
  padding: 4.4rem 8rem 4.4rem;
  overflow: hidden;
}

#container #main_header::before,
.mymainback_detail #main.detail_main #main_header.detail_title1::before {
  content: "";
  position: absolute;
  display: block;
  background: url(/img/common/tpl2_h1icon.png) no-repeat;
  width: 173px;
  height: 132px;
  bottom: 0;
  right: -20px;
  left: auto;
}

#container #main_header h1,
.mymainback_detail #main.detail_main #main_header.detail_title1 h1 {
  color: #fff;
  font-size: 3rem;
  padding: 0;
}

@media all and (max-width:1080px) {
  #container #main_header {
    padding: 2.2rem 4rem;
  }
}

@media all and (max-width:768px) {
  #container #main_header {
    margin-bottom: 1rem;
  }
}

/* ===============================
コンテンツ内
================================= */
/* パンくず */
#container #mymainback_bg>#pankuzu_wrap {
  background: #fff;
  position: relative;
  z-index: 1;
}

#mymainback #main_body .detail_free_wrap {
  padding: 0 3rem;
}

/* h2 */
#main #main_body h2 {
  position: relative;
  background: #C6E7F3;
  border-radius: 10px;
  overflow: hidden;
  border: none;
  color: #333;
  z-index: 1;
}

#main #main_body h2::before {
  position: absolute;
  content: "";
  position: absolute;
  display: block;
  background: url(/img/common/tp2_h2icon.png) no-repeat;
  background-size: contain;
  width: 54px;
  height: 56px;
  bottom: 0;
  right: 10px;
  left: auto;
  clip-path: none;
  top: auto;
  z-index: -1;
}

#main #main_body h2::after {
  display: none;
}

/* h3 */
#subsite_tp_wrap #main #main_body h3,
body:has(#content_header) #main_body #detail_box .detail_free h3 {
  position: relative;
  background: #FFF3CB;
  border-radius: 10px;
  overflow: hidden;
  color: #333;
  padding: 1.7rem 3rem 1.7rem 4rem;
}

#subsite_tp_wrap #main #main_body h3::before,
body:has(#content_header) #main_body #detail_box .detail_free h3::before {
  position: absolute;
  content: "";
  display: block;
  background: url(/img/common/tp2_h3icon.png) no-repeat;
  background-size: contain;
  width: 28px;
  height: 35px;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
}

#subsite_tp_wrap #main #main_body h3::after,
body:has(#content_header) #main_body #detail_box .detail_free h3::after {
  display: none;
}

/* h4 */
#subsite_tp_wrap #main #main_body h4,
body:has(#content_header) #main_body #detail_box .detail_free h4 {
  border: 3px solid #DCCBEC;
  border-radius: 10px;
}

#subsite_tp_wrap #main #main_body h4::before,
body:has(#content_header) #main_body #detail_box .detail_free h4::before {
  background: #9B7FB6;
  border-radius: 4px;
}

/* h5 */
#subsite_tp_wrap #main #main_body h5,
body:has(#content_header) #main_body #detail_box .detail_free h5 {
  border-bottom: 3px solid #88608F;
  border-image: none;
}

/* リスト */
#subsite_tp_wrap #main #main_body ul,
body:has(#content_header) #main_body #detail_box .detail_free ul {
  margin-top: 2rem;
}

#main_body .detail_free ul>li::before,
body:has(#content_header) #main_body #detail_box .detail_free ul li::before {
  position: absolute;
  content: "";
  background-color: #5462FD;
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  left: -18px;
}

/* h6 */
#main #main_body h6::before {
  background-image: url(/img/common/tpl2_h6_before.png);
}

/* table th */
#main #main_body th {
  background: #FBF8EA;
}

@media all and (max-width:1080px) {
  #mymainback #main_a::before {
    display: none;
  }
}

@media all and (max-width:768px) {
  #mymainback #main_body .detail_free_wrap {
    padding: 0 1.2rem;
  }

  #main #main_body h2 {
    padding: 1.2rem 1.5rem;
  }

  #main #main_body h2::before {
    width: 47px;
    height: 48px;
  }
}

/* ===============================
お知らせエリア
================================= */
#main_body #news .section_information_list {
  border: 1px solid #C4C4C4;
  border-radius: 10px;
}


.section_information_list_wrap .section_information_list ul li::before {
  width: 100%;
  height: 2px;
  background: repeating-linear-gradient(to right,
      #CACACA 0px 2px,
      transparent 2px 9px);
}

.article_title .icon_new {
  content: url("/img/common/tpl2_new.png");
}

/* ボタン */
.section_information .section_information_list_wrap .link_box span.link_ichiran {
  border-radius: 10px;
  overflow: hidden;
  background: #ECE2CF;
  min-width: 250px;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran:hover {
  background: #ECE2CF;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran::before {
  clip-path: none;
  width: 100%;
  height: 50%;
  background: #E3D5BA;
  top: auto;
  bottom: 0;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran:hover::before {
  background: #ECE2CF;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran a {
  border: none;
  font-size: 1.8rem;
  padding-left: 3rem;
  text-align: left;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran a:hover {
  color: #333;
}

.section_information .section_information_list_wrap .link_box span.link_ichiran a::before {
  background: url(/img/common/tpl2_news_icon.png) no-repeat center / contain;
}

@media all and (max-width:768px) {
  .section_information .section_information_list_wrap .link_box span.link_ichiran {
    min-width: 200px;
  }
}

/* ===============================
フッター
================================= */
#footer #author_info {
  position: relative;
  background: none;
}

#footer #author_info::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(/img/common/tpl2_bg.png) repeat;
  z-index: -2;
  pointer-events: none;
}

#footer #author_info_box #f_navi_wrap {
  background: #E3D5BA;
}

#f_navi_wrap .f_navi_item .footer_navi ul li::before {
  background: #333;
}

#f_navi_wrap .f_navi_item .footer_navi ul li a,
#f_navi_wrap .f_navi_item #copyright {
  color: #333;
}

/* ===============================
大メニュー
================================= */
#main_body .info_list_wrap .info_list ul li::before {
  width: 100%;
  height: 2px;
  background: repeating-linear-gradient(to right,
      #CACACA 0px 2px,
      transparent 2px 9px);
}

#main_body .info_list_wrap .info_list ul li a::before {
  background: url(/img/common/tpl2_list_menu_icon.png) no-repeat center / contain;
}

/* ===============================
最終ページ
================================= */
/* サイドバー */
#sidebar1 #subsite_menu_wrap .subsite_menu {
  border: none;
  cursor: pointer;
  border-radius: 15px;
  background-color: #fff;
}

#sidebar1 #subsite_menu_wrap .subsite_menu .subsite_menu_ttl {
  position: relative;
  background: #ECE2CF;
  border-radius: 10px;
  z-index: 1;
  padding: 1.8rem 3.6rem 1.8rem 2.8rem
}

#sidebar1 #subsite_menu_wrap .subsite_menu .subsite_menu_ttl::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 50%;
  background: #E3D5BA;
  bottom: 0;
  left: 0;
  border-radius: 0px 0px 10px 10px;
  z-index: -1;
  transform: translateX(0);
}

#sidebar1 #subsite_menu_wrap .subsite_menu .subsite_menu_ttl::after {
  position: absolute;
  content: "";
  background: url(/img/common/tpl2_sidebar_icon.png) no-repeat center / contain;
  width: 13px;
  height: 27px;
  top: 50%;
  left: 10px;
  transform: translateY(-50%);
}

#sidebar1 #subsite_menu_wrap .subsite_menu .subsite_menu_ttl span {
  color: #333;
}

#sidebar1 #subsite_menu_wrap .subsite_menu .subsite_menu_list ul li span a::before {
  background: url(/img/common/tpl2_sidebar_icon_2.png) no-repeat center / contain;
  width: 10px;
  height: 19px;
  flex-shrink: 0;
}

.subsite_menu .subsite_menu_ttl .sidemenu-btn {
  background: url(/img/common/tpl2_sidemenu-icon.png) no-repeat center / contain;
}

.subsite_menu .subsite_menu_list {
  border-radius: 0 0 10px 10px;
  overflow: hidden;
  border: none;
}

.subsite_menu:last-child .subsite_menu_list {
  border-bottom: none;
}

.subsite_menu .subsite_menu_list ul li {
  padding: 1.2rem 3.5rem 1.2rem 2rem;
}

/* コンテンツ内 */
#main_body:has(#detail_box) {
  padding: 0 0 4rem;
  border-radius: 15px;
}

#detail_box {
  padding: 0 5rem;
}


@media all and (max-width:1080px) {
  .mymainback_detail #content_header {
    margin-top: 2rem;
  }

  #main_body .toc_link_wrap {
    background: #fff;
    margin-bottom: 2rem;
  }

  .mymainback_detail #main.detail_main #main_header.detail_title1,
  #container #main_header.tpl2_top_title {
    width: 100%;
  }

  .mymainback_detail #main.detail_main #main_header.detail_title1,
  #container #main_header {
    padding: 1.5rem 2rem;
    width: calc(100% - 20px);
    margin: 0 auto 2rem;
  }

  #main.detail_main {
    margin: 0 !important;
  }
}

@media all and (max-width:768px) {

  #container #main_header h1,
  .mymainback_detail #main.detail_main #main_header.detail_title1 h1 {
    font-size: 2.4rem;
  }

  #detail_box {
    padding: 0 2rem;
  }

  body:has(#content_header) #main_body #detail_box .detail_free h3 {
    font-size: 1.8rem;
    padding: 1.2rem 1.5rem 1.2rem 4rem;
  }
}

/* ===============================
テンプレ2_ナビメニューボタン配置
================================= */
@media all and (max-width:1080px) {
  #container #mymainback_bg>#pankuzu_wrap {
    position: relative;
    z-index: 99;
  }

  .free_box2_btn {
    position: relative;
    z-index: 100;
  }

  #container #mymainback_bg:has(.free_box2.open) #pankuzu_wrap {
    background: transparent;
  }

  #mymainback_bg:has(.free_box2.open) #pankuzu_wrap .pankuzu {
    opacity: 0;
    pointer-events: none;
  }
}

/* ===============================
テンプレ2_フッター背景
================================= */
.drawerWrap nav.drawerMenu {
  border-top: 12px solid #e3d5ba;
}

.drawerMenu .drawer_top {
  background: #e3d5ba;
}

.drawer_top .drawer_top_item h2 {
  color: #333;
}

#container .drawerWrap.show.active button.drawer_close_btn {
  color: #333;
}