@charset "UTF-8";
/* googlefont　*/
@import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,900;1,700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Cedarville+Cursive&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap");
/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
サイト固有の追加項目
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝*/
/* base設定　*/
html, body {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  position: relative;
  font-size: 14px;
  line-height: 1.8;
  overflow-x: hidden;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  html, body {
    font-size: 16px;
  }
}
@media screen and (min-width: 992px) {
  html, body {
    font-size: 16px;
    line-height: 1.8;
  }
}
@media screen and (min-width: 1200px) {
  html, body {
    font-size: 16px;
  }
}

body {
  -webkit-text-size-adjust: 100%;
  position: relative;
  overflow-y: hidden;
  position: relative;
  font-family: "Lato", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
  background: rgba(255, 255, 255, 0);
  color: #4E2A00;
}
body a {
  color: #4E2A00;
  text-decoration: none;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
body a:hover {
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
body strong {
  font-weight: bold;
}
body .small {
  font-size: 0.8rem;
}

::-moz-selection {
  background: #FFF3CE;
}

::selection {
  background: #FFF3CE;
}

img {
  border: none;
  vertical-align: bottom;
  max-width: 100%; /*for responsive*/
  height: auto; /*for responsive*/
  width: auto; /* IE8のみ */
}

.opacity:hover {
  opacity: 70%;
  -moz-opacity: 0.7;
  opacity: 0.7;
  filter: alpha(opacity=70);
}

/*==================================

kf_header

==================================*/
.kf_header_menu {
  position: absolute;
  top: 0;
  right: 0;
}

.kf_nav {
  display: none;
}
.kf_nav .kf_modal_logo {
  display: block;
  width: 60%;
  max-width: 300px;
  margin: 0 auto 2rem auto;
}
.kf_nav .kf_modal_logo img {
  display: block;
  margin: 0 auto;
}
.kf_nav.js_appear {
  position: fixed;
  inset: 0; /* top:0 right:0 bottom:0 left:0 */
  display: block;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.35); /* ← 背景の暗幕 */
  -webkit-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
}

/*==================================

sub_nav

==================================*/
@media screen and (min-width: 768px) {
  .header_sub_nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-pack: distribute;
        justify-content: space-around;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
}
.header_sub_nav li {
  background-repeat: no-repeat;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-size: 30px 30px;
  background-color: #EFEBE5;
  border-radius: 50px;
  background-position: left 1rem center;
}
@media screen and (min-width: 768px) {
  .header_sub_nav li {
    width: 48%;
  }
}
.header_sub_nav a {
  font-size: 1rem;
  line-height: 1.2;
  display: block;
  text-align: center;
  font-weight: bold;
  margin: 0 auto;
  padding: 1.2rem 0.5rem 1rem 1.5rem;
  width: 100%;
}
.header_sub_nav a:hover {
  color: #C77906;
}
.header_sub_nav li.header_nav_admission {
  background-image: url(/img/common/icon_header_admission.svg);
  margin: 0 auto 1rem auto;
}
@media screen and (min-width: 992px) {
  .header_sub_nav li.header_nav_admission {
    margin: 0;
  }
}
.header_sub_nav li.header_nav_contact {
  background-image: url(/img/common/icon_header_contact.svg);
  margin: 0 auto 1rem auto;
}
@media screen and (min-width: 992px) {
  .header_sub_nav li.header_nav_contact {
    margin: 0;
  }
}

/*==================================

humburger & modal

==================================*/
/*ハンバーガーメニュー*/
.humburger {
  position: fixed;
  background-color: #628026;
  border-radius: 50px;
  top: 15px;
  right: 15px;
  width: 34px;
  height: 34px;
  padding-top: 1px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: 5555;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
  pointer-events: auto;
  text-align: center;
  font-size: 0.7rem;
}
@media screen and (min-width: 576px) {
  .humburger {
    width: 44px;
    height: 45px;
    font-size: 0.8rem;
    top: 15px;
    padding-top: 7px;
  }
}
@media screen and (min-width: 768px) {
  .humburger {
    top: 20px;
  }
}

.humburger > span {
  display: block;
  width: 50%;
  height: 1px;
  background: white;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  margin: 7px auto 3px;
}
.js_humburgerOpen .humburger > span {
  background: white;
  margin: 2px auto 13px;
}

.js_humburgerOpen .humburger > span.top {
  -webkit-transform: translateY(13px) rotate(-45deg);
          transform: translateY(13px) rotate(-45deg);
}
@media screen and (min-width: 576px) {
  .js_humburgerOpen .humburger > span.top {
    -webkit-transform: translateY(14px) rotate(-45deg);
            transform: translateY(14px) rotate(-45deg);
  }
}

.js_humburgerOpen .humburger > span.middle {
  opacity: 0;
}

.js_humburgerOpen .humburger > span.bottom {
  -webkit-transform: translateY(-15px) rotate(45deg);
          transform: translateY(-15px) rotate(45deg);
}
@media screen and (min-width: 576px) {
  .js_humburgerOpen .humburger > span.bottom {
    -webkit-transform: translateY(-14px) rotate(45deg);
            transform: translateY(-14px) rotate(45deg);
  }
}

.humburgerButton.humburgerButton__close {
  top: 2%;
  right: 2%;
}

.humburgerButton__close > span {
  display: block;
  width: 35px;
  margin: 0 auto;
  height: 4px;
  background: #fff;
}

.humburgerButton__close > span.humburgerLineTop {
  -webkit-transform: translateY(5px) rotate(-45deg);
          transform: translateY(5px) rotate(-45deg);
}

.humburgerButton__close > span.humburgerLineBottom {
  -webkit-transform: translateY(-6px) rotate(45deg);
          transform: translateY(-6px) rotate(45deg);
}

/*kf_nav_modal*/
.kf_nav_modal {
  position: fixed;
  inset: 0 0 0 auto;
  width: 90%;
  max-width: 520px;
  padding: 2rem 1rem;
  height: 100dvh;
  background: #2B1700;
  -webkit-box-shadow: -12px 0 24px rgba(0, 0, 0, 0.15);
          box-shadow: -12px 0 24px rgba(0, 0, 0, 0.15);
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.36s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: -webkit-transform 0.36s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: transform 0.36s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: transform 0.36s cubic-bezier(0.2, 0.8, 0.2, 1), -webkit-transform 0.36s cubic-bezier(0.2, 0.8, 0.2, 1);
  z-index: 1010;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 768px) {
  .kf_nav_modal {
    width: 90%;
    max-width: none;
    padding: 2rem; /* SPの上限 */
  }
}
@media screen and (min-width: 992px) {
  .kf_nav_modal {
    width: 80%;
  }
}
@media screen and (min-width: 1200px) {
  .kf_nav_modal {
    width: 50%;
  }
}
.kf_nav_modal.is_open {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.kf_nav_modal .kf_g_nav_parent_ttl {
  padding: 1.5rem 0;
  border-bottom: 1px solid white;
  background-image: url(/img/common/icon_white_down.svg);
}
.kf_nav_modal .kf_g_nav_single {
  background-image: url(/img/common/icon_white_right.svg);
  background-size: 6px;
}
.kf_nav_modal .kf_g_nav_single, .kf_nav_modal .kf_g_nav_parent_ttl {
  background-repeat: no-repeat;
  background-position: right center;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  cursor: pointer;
  font-size: 1.2rem;
  color: white;
}
.kf_nav_modal .kf_g_nav_single:before, .kf_nav_modal .kf_g_nav_single:after, .kf_nav_modal .kf_g_nav_parent_ttl:before, .kf_nav_modal .kf_g_nav_parent_ttl:after {
  content: " ";
  display: table;
}
.kf_nav_modal .kf_g_nav_single:after, .kf_nav_modal .kf_g_nav_parent_ttl:after {
  clear: both;
}
.kf_nav_modal .kf_g_nav_single, .kf_nav_modal .kf_g_nav_parent_ttl {
  *zoom: 1;
}
.kf_nav_modal .kf_g_nav_single a, .kf_nav_modal .kf_g_nav_parent_ttl a {
  color: white;
  display: block;
  border-bottom: 1px solid white;
  padding: 1.5rem 0;
}
.kf_nav_modal .kf_g_nav_single span, .kf_nav_modal .kf_g_nav_parent_ttl span {
  color: #628026;
  font-family: "Cedarville Cursive", cursive;
  display: block;
  padding-right: 1.5rem;
}
@media screen and (min-width: 768px) {
  .kf_nav_modal .kf_g_nav_single span, .kf_nav_modal .kf_g_nav_parent_ttl span {
    float: right;
    display: inline-block;
  }
}
.kf_nav_modal .kf_g_nav_single.selected, .kf_nav_modal .kf_g_nav_parent_ttl.selected {
  background-image: url(/img/common/icon_white_up.svg);
}
.kf_nav_modal .kf_g_nav_child {
  display: none;
}
.kf_nav_modal ul {
  width: 90%;
  margin: 0 auto 3rem auto;
  max-width: 700px;
}

.kf_g_nav_child_inner ul {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 1rem;
}
.kf_g_nav_child_inner ul li {
  border-bottom: 0;
  margin: 0;
  padding: 0.5rem 0.5rem 0.5rem 1rem;
  background-image: url(/img/common/icon_white_left.svg);
  background-repeat: no-repeat;
  background-position: left 17px;
  width: 100%;
}
.kf_g_nav_child_inner ul li a {
  color: white;
  line-height: 1.2;
  font-size: 1rem;
}
@media screen and (min-width: 768px) {
  .kf_g_nav_child_inner ul li a {
    line-height: 1.4;
  }
}
.kf_g_nav_child_inner ul li .nav_child_link_sp a {
  font-size: 0.9rem;
  display: block;
  padding: 0.5rem 0;
}
.kf_g_nav_child_inner ul li .nav_child_link_sp a:before {
  content: "┗ ";
  text-decoration: none;
}
.kf_g_nav_child_inner ul.facility {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.kf_g_nav_child_inner ul.facility li {
  width: 48%;
}
.kf_g_nav_child_inner ul.facility li a {
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .kf_g_nav_child_inner ul.facility li a {
    line-height: 1.4;
  }
}

.kf_g_btn {
  background-color: #C77906;
  border-radius: 100px;
  width: auto;
  display: table;
  border-bottom: 3px solid #8F5600;
  text-align: center;
  color: white;
  margin: 3rem auto 0 auto;
  padding: 1rem 4rem 1rem 3rem;
  background-image: url(/img/kf/common/kf_icon_white_right.svg);
  background-repeat: no-repeat;
  background-position: right 1.5rem center;
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .kf_g_btn {
    font-size: 16px;
    line-height: 1.8;
  }
}
@media screen and (min-width: 1200px) {
  .kf_g_btn {
    font-size: 18px;
    line-height: 1.8;
  }
}
.kf_g_btn:hover {
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}

.kf_underlayer_header {
  border-top: 5px solid #173427;
}

.kf_logo {
  margin: 2rem auto 1rem auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .kf_logo {
    margin: 2rem auto;
  }
}

.kf_logo a {
  display: inline-block;
  line-height: 0;
}
.kf_logo img {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-animation: fadeInUp 0.9s ease forwards;
          animation: fadeInUp 0.9s ease forwards;
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
  display: block;
  width: 100%;
  max-width: 200px;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .kf_logo img {
    max-width: 250px;
  }
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* -------------------------------------
kf_breadcrumb
-------------------------------------*/
.kf_breadcrumb {
  width: 96%;
  max-width: 1200px;
  margin: 0 auto 1rem auto;
  padding: 0.75rem 0;
}
.kf_breadcrumb ol {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; /* 幅が足りない時は折り返し */
  gap: 0.25rem 0.5rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
  color: #173427;
}
.kf_breadcrumb ol li + li::before {
  content: "＞";
  opacity: 0.55;
  margin-right: 0.2rem;
}
.kf_breadcrumb li {
  font-size: 10px;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .kf_breadcrumb li {
    font-size: 12px;
    line-height: 1.6;
  }
}
@media screen and (min-width: 1200px) {
  .kf_breadcrumb li {
    font-size: 14px;
    line-height: 1.6;
  }
}
.kf_breadcrumb a {
  color: #173427;
  font-size: 10px;
  line-height: 1.6;
  text-decoration: underline;
}
@media screen and (min-width: 768px) {
  .kf_breadcrumb a {
    font-size: 12px;
    line-height: 1.6;
  }
}
@media screen and (min-width: 1200px) {
  .kf_breadcrumb a {
    font-size: 14px;
    line-height: 1.6;
  }
}
.kf_breadcrumb .home > a {
  position: relative;
  padding-left: 1.4rem;
  border-bottom-color: transparent;
}
.kf_breadcrumb .home > a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1rem;
  height: 1rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-image: url(/img/kf/common/kf_icon_home.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

/* -------------------------------------
kf_main
-------------------------------------*/
.kf_main {
  background-image: url(/img/kf/common/kf_article_bg1.png), url(/img/kf/common/kf_article_bg2.png);
  background-position: right top 10%, left bottom 10%;
  background-repeat: no-repeat;
}

/*----------------------------------

.kf_underlayer_header

-----------------------------------*/
.kf_underlayer_header h1 {
  width: 96%;
  max-width: 1200px;
  margin: 0 auto;
  font-weight: bold;
  font-size: 20px;
  line-height: 1.4;
  color: #173427;
  border-bottom: 2px dotted #173427;
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  background-image: url(/img/kf/top/kf_top_letter_illust.svg);
  background-size: 30%;
  background-repeat: no-repeat;
  background-position: right bottom;
  padding: 2rem 0;
}
@media screen and (min-width: 768px) {
  .kf_underlayer_header h1 {
    font-size: 28px;
    line-height: 1.4;
  }
}
@media screen and (min-width: 1200px) {
  .kf_underlayer_header h1 {
    font-size: 34px;
    line-height: 1.4;
  }
}
@media screen and (min-width: 576px) {
  .kf_underlayer_header h1 {
    background-size: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.kf_underlayer_header h1 span {
  display: block;
  color: #D0DDB9;
  font-family: "Cedarville Cursive", cursive;
  font-size: 16px;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .kf_underlayer_header h1 span {
    font-size: 18px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_underlayer_header h1 span {
    font-size: 22px;
    line-height: 1.5;
  }
}

/*----------------------------------

.kf_list_main

-----------------------------------*/
.kf_list_main ul {
  width: 96%;
  max-width: 1200px;
  margin: 0 auto;
}
.kf_list_main ul li {
  padding: 1rem;
  border-bottom: 1px dotted #173427;
}
.kf_list_main ul li:hover {
  background-color: #F8F8F3;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
.kf_list_main ul a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #173427;
  background-image: url(/img/kf/common/kf_icon_right.svg);
  background-repeat: no-repeat;
  background-position: right 5px center;
}
.kf_list_main ul figure {
  width: 20%;
}
.kf_list_main ul div {
  width: 75%;
}
.kf_list_main ul h3 {
  text-decoration: underline;
  font-size: 14px;
  line-height: 1.8;
  padding: 0 3rem 0 0;
}
@media screen and (min-width: 768px) {
  .kf_list_main ul h3 {
    font-size: 16px;
    line-height: 1.8;
  }
}
@media screen and (min-width: 1200px) {
  .kf_list_main ul h3 {
    font-size: 18px;
    line-height: 1.8;
  }
}
.kf_list_main .kf_g_btn {
  margin: 3rem auto 5rem auto;
}