@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;
}

/* 画像（SP=縦長 / PC=横長） */
/* 時間設計 */
/* 完全表示 */
/* 切替(クロスフェード) */
/* 1枚の持ち時間 = 7s */
/* 周期 = 28s */
/* 開始時の軽い拡大 */
/* パン距離（1〜2%が上品） */
/* ゆるやか */
/* ゆっくり拡大 */
.kf_top {
  position: relative;
  min-height: 70svh;
  display: -ms-grid;
  display: grid;
  place-items: center;
  background: #fff; /* 隙間が出ても白になる */
  overflow: clip;
}
.kf_top::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.22); /* お好みで濃さ調整 */
  pointer-events: none;
}

/* ---------- 背景スライド ---------- */
.kf_top_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  /* SPをデフォ、等間隔ディレイでクロスフェード */
  /* PCは lg 以上で横長に差替 */
}
.kf_top_bg .slide {
  position: absolute;
  inset: 0;
  background: center/cover no-repeat;
  opacity: 0;
  will-change: opacity, transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform: translateZ(0);
          transform: translateZ(0); /* Safari等のカクつき抑制 */
  -webkit-animation: kf-fade 28s linear infinite both, kf-zoom 28s cubic-bezier(0.2, 0, 0.2, 1) infinite both;
          animation: kf-fade 28s linear infinite both, kf-zoom 28s cubic-bezier(0.2, 0, 0.2, 1) infinite both;
}
@media (prefers-reduced-motion: reduce) {
  .kf_top_bg .slide {
    -webkit-animation: none;
            animation: none;
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
}
.kf_top_bg .s1 {
  background-image: url("/img/kf/top/kv_sp_01.jpg");
  -webkit-animation-delay: calc(0 * 7s);
          animation-delay: calc(0 * 7s);
}
.kf_top_bg .s2 {
  background-image: url("/img/kf/top/kv_sp_02.jpg");
  -webkit-animation-delay: calc(1 * 7s);
          animation-delay: calc(1 * 7s);
}
.kf_top_bg .s3 {
  background-image: url("/img/kf/top/kv_sp_03.jpg");
  -webkit-animation-delay: calc(2 * 7s);
          animation-delay: calc(2 * 7s);
}
.kf_top_bg .s4 {
  background-image: url("/img/kf/top/kv_sp_04.jpg");
  -webkit-animation-delay: calc(3 * 7s);
          animation-delay: calc(3 * 7s);
}
@media screen and (min-width: 992px) {
  .kf_top_bg .s1 {
    background-image: url("/img/kf/top/kv_pc_01.jpg");
  }
  .kf_top_bg .s2 {
    background-image: url("/img/kf/top/kv_pc_02.jpg");
  }
  .kf_top_bg .s3 {
    background-image: url("/img/kf/top/kv_pc_03.jpg");
  }
  .kf_top_bg .s4 {
    background-image: url("/img/kf/top/kv_pc_04.jpg");
  }
}

/* --- キーフレーム ---
   0–($fade)    : フェードイン
   ($fade)–($fade+$show) : 完全表示
   ($fade+$show)–($fade+$show+$fade) : フェードアウト
   残りは非表示。各スライドは $slot(=7s) ごとに開始するため
   前のフェードアウト(3s)と次のフェードイン(3s)が重なり、黒/白フラなし。
*/
@-webkit-keyframes kf-fade {
  0% {
    opacity: 0;
  }
  10.7142857143% {
    opacity: 1;
  } /* 3s で1に */
  25% {
    opacity: 1;
  } /* 4sキープ */
  35.7142857143% {
    opacity: 0;
  } /* 3sで0に */
  100% {
    opacity: 0;
  }
}
@keyframes kf-fade {
  0% {
    opacity: 0;
  }
  10.7142857143% {
    opacity: 1;
  } /* 3s で1に */
  25% {
    opacity: 1;
  } /* 4sキープ */
  35.7142857143% {
    opacity: 0;
  } /* 3sで0に */
  100% {
    opacity: 0;
  }
}
/* ゆっくり拡大（周期いっぱいでほんの少し） */
@-webkit-keyframes kf-zoom {
  /* スライド開始〜終了 (7s = $slot) でだけ動かす */
  0% {
    -webkit-transform: scale(1.02) translate3d(-1.2%, 0, 0);
            transform: scale(1.02) translate3d(-1.2%, 0, 0);
  }
  35.7142857143% {
    -webkit-transform: scale(1.12) translate3d(1.2%, 0, 0);
            transform: scale(1.12) translate3d(1.2%, 0, 0);
  }
  /* 残りの時間は次のターンまで静止しておく */
  100% {
    -webkit-transform: scale(1.02) translate3d(-1.2%, 0, 0);
            transform: scale(1.02) translate3d(-1.2%, 0, 0);
  }
}
@keyframes kf-zoom {
  /* スライド開始〜終了 (7s = $slot) でだけ動かす */
  0% {
    -webkit-transform: scale(1.02) translate3d(-1.2%, 0, 0);
            transform: scale(1.02) translate3d(-1.2%, 0, 0);
  }
  35.7142857143% {
    -webkit-transform: scale(1.12) translate3d(1.2%, 0, 0);
            transform: scale(1.12) translate3d(1.2%, 0, 0);
  }
  /* 残りの時間は次のターンまで静止しておく */
  100% {
    -webkit-transform: scale(1.02) translate3d(-1.2%, 0, 0);
            transform: scale(1.02) translate3d(-1.2%, 0, 0);
  }
}
.kf_top_inner {
  position: relative;
  z-index: 1;
  height: 100%; /* 背景全体の高さを確保 */
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; /* ← 縦方向に並べる */
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start; /* ← 上寄せ */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-top: 5vh;
}

/* ロゴだけ背景に対して上寄せ */
.kf_top_logo {
  position: absolute;
  top: clamp(8px, 3vh, 7%);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  display: block;
  -webkit-filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
}

.kf_top_logo img {
  opacity: 0;
  -webkit-transform: translateY(20px);
          transform: translateY(20px); /* 下から20px分ずらす */
  -webkit-animation: fadeInUp 1.2s ease forwards;
          animation: fadeInUp 1.2s ease forwards;
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s; /* キャッチより少し早くor遅くしたい場合はここ調整 */
  display: block;
  width: 100%;
  max-width: clamp(140px, 20vw, 300px);
  margin: 0 auto;
  -webkit-filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.25));
}

@media (min-width: 1024px) and (max-height: 700px) {
  .kf_top_inner {
    /* ロゴ分の確保余白を少し減らす */
    --logo-space: clamp(80px, 12vh, 180px);
  }
  .kf_top_logo img {
    /* ロゴをもうひとまわり小さく */
    max-width: clamp(120px, 16vw, 240px);
  }
  .kf_top_catch {
    /* 縦書きの文字間が広すぎて潰れる場合の予防縮小（任意） */
    letter-spacing: 0.8rem;
    font-size: clamp(16px, 3vw, 32px);
  }
}
@-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_top_catch {
  color: #fff;
  font-size: clamp(18px, 3.5vw, 36px);
  letter-spacing: 1.2rem;
  line-height: 1.6;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: mixed;
  margin-inline: auto;
  margin-top: 17vh;
  /* 順番に遅延 */
  /* brを挟むので+2 */
}
.kf_top_catch span {
  opacity: 0;
  display: inline-block;
  -webkit-animation: fadeInLine 2s ease forwards;
          animation: fadeInLine 2s ease forwards;
}
.kf_top_catch span:nth-child(1) {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
}
.kf_top_catch span:nth-child(3) {
  -webkit-animation-delay: 2.5s;
          animation-delay: 2.5s;
}
.kf_top_catch span:nth-child(5) {
  -webkit-animation-delay: 3s;
          animation-delay: 3s;
}
.kf_top_catch span:nth-child(7) {
  -webkit-animation-delay: 3.5s;
          animation-delay: 3.5s;
}

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

@keyframes fadeInLine {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* -------------------------------------
畑のおたより
-------------------------------------*/
.kf_top_letter {
  width: 96%;
  max-width: 1200px;
  margin: 3rem auto;
}
@media screen and (min-width: 768px) {
  .kf_top_letter {
    margin: 5rem auto;
  }
}
.kf_top_letter h2 {
  margin: 0 0 1rem 0;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.5;
  line-height: 1;
  background-image: url(/img/kf/top/kf_top_letter_illust.svg);
  background-size: 30%;
  background-repeat: no-repeat;
  background-position: right center;
}
@media screen and (min-width: 768px) {
  .kf_top_letter h2 {
    font-size: 22px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_letter h2 {
    font-size: 26px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 768px) {
  .kf_top_letter h2 {
    margin: 0 0 2rem 0;
    background-size: auto;
  }
}
.kf_top_letter h2 span {
  display: block;
  color: #D0DDB9;
  font-family: "Cedarville Cursive", cursive;
  font-size: 16px;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .kf_top_letter h2 span {
    font-size: 18px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_letter h2 span {
    font-size: 22px;
    line-height: 1.5;
  }
}
.kf_top_letter ul {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 2rem 1fr 2rem 1fr;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}
.kf_top_letter ul li {
  margin: 0 0 1rem 0;
  padding: 0 0 1rem 0;
  border-bottom: 1px solid #EFEBE5;
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul li {
    width: 100%;
    padding: 0;
    margin: 0;
    border-bottom: 0;
  }
}
.kf_top_letter ul a {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  /* 画像ホバー演出 */
  /* hover / focus で発火（キーボード操作にも対応） */
  /* 拡大量はお好みで 1.04〜1.08 */
  /* 暗さは .12〜.24 くらいで調整 */
  /* モーション軽減への配慮 */
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul a {
    display: block;
  }
}
.kf_top_letter ul a figure {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  width: 40%;
  /* 暗くするオーバーレイ */
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul a figure {
    width: 100%;
  }
}
.kf_top_letter ul a figure img {
  display: block;
  width: 100%;
  height: auto;
  -webkit-transform: scale(1);
          transform: scale(1); /* 初期値 */
  -webkit-transition: -webkit-transform 0.6s ease, -webkit-filter 0.6s ease;
  transition: -webkit-transform 0.6s ease, -webkit-filter 0.6s ease;
  transition: transform 0.6s ease, filter 0.6s ease;
  transition: transform 0.6s ease, filter 0.6s ease, -webkit-transform 0.6s ease, -webkit-filter 0.6s ease;
  will-change: transform;
}
.kf_top_letter ul a figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0); /* 初期は透明 */
  -webkit-transition: background 0.6s ease;
  transition: background 0.6s ease;
  pointer-events: none;
}
.kf_top_letter ul a:hover figure img, .kf_top_letter ul a:focus-visible figure img {
  -webkit-transform: scale(1.06);
          transform: scale(1.06);
}
.kf_top_letter ul a:hover figure::after, .kf_top_letter ul a:focus-visible figure::after {
  background: rgba(0, 0, 0, 0.18);
}
@media (prefers-reduced-motion: reduce) {
  .kf_top_letter ul a figure img {
    -webkit-transition: none;
    transition: none;
    -webkit-transform: none;
            transform: none;
  }
  .kf_top_letter ul a figure::after {
    -webkit-transition: none;
    transition: none;
  }
}
.kf_top_letter ul a div {
  width: 55%;
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul a div {
    width: 100%;
  }
}
.kf_top_letter ul a h3 {
  text-decoration: underline;
  padding: 0 10% 0 0;
  background-image: url(/img/kf/common/kf_icon_right.svg);
  background-repeat: no-repeat;
  background-position: right 5px center;
}
.kf_top_letter ul a h3:hover {
  text-decoration: none;
  background-position: right center;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
.kf_top_letter ul p.date {
  font-size: 8px;
  line-height: 1.6;
  margin: 0 0 0.3rem 0;
  letter-spacing: 2px;
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul p.date {
    font-size: 10px;
    line-height: 1.6;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_letter ul p.date {
    font-size: 12px;
    line-height: 1.6;
  }
}
@media screen and (min-width: 768px) {
  .kf_top_letter ul p.date {
    margin: 0.5rem 0;
  }
}

.kf_top_letter ul li {
  opacity: 0;
  -webkit-transform: translateY(15px);
          transform: translateY(15px);
  -webkit-animation: fadeUp 1.5s ease forwards;
          animation: fadeUp 1.5s ease forwards;
}

/* li の順番に応じて遅延を増やす */
.kf_top_letter ul li:nth-child(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}

.kf_top_letter ul li:nth-child(2) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

.kf_top_letter ul li:nth-child(3) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}

/* 4つ目以降がある場合は必要に応じて追加 */
@-webkit-keyframes fadeUp {
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fadeUp {
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/* -------------------------------------
キッズファームとは
-------------------------------------*/
.kf_top_about {
  background-color: #F8F8F3;
  position: relative;
}
.kf_top_about .kf_top_about_bg, .kf_top_about .kf_top_about_illust1, .kf_top_about .kf_top_about_illust2, .kf_top_about .kf_top_about_illust3, .kf_top_about .kf_top_about_illust4 {
  position: absolute;
  display: block;
}
.kf_top_about .kf_top_about_bg {
  left: 0;
  top: -2rem;
  z-index: -10;
}
@media screen and (min-width: 768px) {
  .kf_top_about .kf_top_about_bg {
    top: -5rem;
  }
}
.kf_top_about .kf_top_about_illust1 {
  left: 5%;
  top: -2%;
  width: 20%;
  max-width: 150px;
}
@media screen and (min-width: 768px) {
  .kf_top_about .kf_top_about_illust1 {
    top: -10%;
  }
}
.kf_top_about .kf_top_about_illust2 {
  left: 0;
  bottom: 0;
  width: 20%;
  max-width: 150px;
}
.kf_top_about .kf_top_about_illust3 {
  right: 5%;
  bottom: 0;
  width: 20%;
  max-width: 160px;
  z-index: 10;
}
.kf_top_about .kf_top_about_illust4 {
  right: 0;
  top: -2%;
  width: 20%;
  max-width: 160px;
}
@media screen and (min-width: 768px) {
  .kf_top_about .kf_top_about_illust4 {
    top: -10%;
  }
}
.kf_top_about .inner {
  position: relative;
  z-index: 20;
  width: 96%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5rem 0;
}
@media screen and (min-width: 768px) {
  .kf_top_about .inner {
    padding: 8rem 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.kf_top_about h2 {
  margin: 0 0 1rem 0;
  font-weight: bold;
  font-size: 18px;
  line-height: 1.5;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .kf_top_about h2 {
    font-size: 22px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_about h2 {
    font-size: 26px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 768px) {
  .kf_top_about h2 {
    width: 30%;
    margin: 0 0 2rem 0;
  }
}
.kf_top_about h2 span {
  display: block;
  color: #D0DDB9;
  font-family: "Cedarville Cursive", cursive;
  font-size: 16px;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .kf_top_about h2 span {
    font-size: 18px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_about h2 span {
    font-size: 22px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 768px) {
  .kf_top_about div {
    width: 70%;
  }
}
.kf_top_about h3 {
  font-weight: bold;
  font-size: 16px;
  line-height: 1.5;
  padding: 0 0 2rem 0;
}
@media screen and (min-width: 768px) {
  .kf_top_about h3 {
    font-size: 18px;
    line-height: 1.5;
  }
}
@media screen and (min-width: 1200px) {
  .kf_top_about h3 {
    font-size: 22px;
    line-height: 1.5;
  }
}
.kf_top_about p {
  line-height: 2;
}

/* -------------------------------------
movie
-------------------------------------*/
.kf_top_movie {
  background-image: url(/img/kf/top/kf_top_movie_sp_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 2rem 0;
}
@media screen and (min-width: 768px) {
  .kf_top_movie {
    background-image: url(/img/kf/top/kf_top_movie_pc_bg.jpg);
  }
}
.kf_top_movie iframe {
  width: 96%;
  max-width: 800px;
  aspect-ratio: 16/9;
  border: none;
  display: block;
}