@charset "UTF-8";
/* CSS Document */
/* ================================================================
( ・∋ Reset
================================================================ */
html { font-size: 62.5%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; }

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-style: normal; vertical-align: baseline; box-sizing: border-box; }

html, body { width: 100%; height: 100%; }

ul, ol { list-style: none; }

strong { font-style: normal; font-weight: bold; }

img { border: 0; vertical-align: middle; -ms-interpolation-mode: bicubic; /*ie7*/ }

* { box-sizing: border-box; }

section, div { position: relative; }

/* ================================================================
( ・∋ Base
================================================================ */
.flexbox { display: flex; justify-content: space-between; align-items: center; }

.flexbox02 { display: flex; justify-content: space-between; }

.w5 { width: 5%; }

.w10 { width: 10%; }

.w20 { width: 20%; }

.w25 { width: 25%; }

.w30 { width: 30%; }

.w35 { width: 35%; }

.w38 { width: 38%; }

.w40 { width: 40%; }

.w45 { width: 45%; }

.w48 { width: 48%; }

.w50 { width: 50%; }

.w60 { width: 60%; }

.w65 { width: 65%; }

.w70 { width: 70%; }

.w80 { width: 80%; }

.w160 { width: 160px; }

.w200 { width: 200px; }

.w260 { width: 260px; }

.w280 { width: 280px; }

.w340 { width: 340px; }

.w360 { width: 360px; }

.w370 { width: 370px; }

.w400 { width: 400px; }

.w420 { width: 420px; }

.w460 { width: 460px; }

.w480 { width: 480px; }

.w500 { width: 500px; }

.w560 { width: 560px; }

.w580 { width: 580px; }

.w600 { width: 600px; }

.w660 { width: 660px; }

.w700 { width: 700px; }

.w760 { width: 760px; }

.w800 { width: 800px; }

.w880 { width: 880px; }

.center, .sp_center { text-align: center; }

.t_right { text-align: right; }

.f_left { float: left; }

.f_right { float: right; }

.underline { text-decoration: underline; }

.small { font-size: 1.2rem; }

.m_t10 { margin-top: 10px; }

.m_t20 { margin-top: 20px; }

.m_t40 { margin-top: 40px; }

.m_t60 { margin-top: 60px; }

.m_b10 { margin-bottom: 10px; }

.m_b20 { margin-bottom: 20px; }

.m_b30 { margin-bottom: 30px; }

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

.m_b60 { margin-bottom: 60px; }

.m_a { margin-left: auto; margin-right: auto; }

.pl_40 { padding: 0 0 0 40px; box-sizing: border-box; }

.pr_40 { padding: 0 40px 0 0; box-sizing: border-box; }

figure img { width: 100%; }

@media screen and (min-width: 640px) and (max-width: 1024px) { .pl_40, .pr_40 { padding: 0; }
  .w160, .w200, .w260, .w280, .w25, .w340, .w360, .w370, .w400, .w420, .w460, .w480, .w500, .w560, .w580, .w600, .w660, .w700, .w760, .w800, .w880, .w20, .w30, .w35, .w38, .w40, .w45, .w48, .w50, .w60, .w65, .w70, .w80 { width: 48%; } }
@media screen and (max-width: 640px) { img { max-width: 100%; }
  .flexbox, .flexbox02 { flex-wrap: nowrap; flex-direction: column; }
  .item1 { order: 1; margin: 0 0 40px 0; }
  .item2 { order: 2; }
  .item3 { order: 3; margin: 40px 0 0; }
  .w160, .w200, .w260, .w280, .w25, .w340, .w360, .w370, .w400, .w420, .w460, .w480, .w500, .w560, .w580, .w600, .w660, .w700, .w760, .w800, .w880, .w20, .w30, .w35, .w38, .w40, .w45, .w48, .w50, .w60, .w65, .w70, .w80 { width: 100%; } }
/* Scss Document */
/* ================================================================
( ・∋ Base
================================================================ */
body { background: #fffcf1; color: #000; font-family: "Noto Sans JP", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif; font-size: 1.6rem; font-weight: 500; }

a { color: #000; text-decoration: none; transition: 0.3s; }

a:hover { opacity: 0.7; }

/*---clearfix---*/
.clearfix { zoom: 1; }

.clearfix::before, .clearfix::after { clear: both; content: ""; display: table; }

/*---table---*/
table { width: 100%; border-collapse: collapse; border-spacing: 0; border-top: #7da376 solid 1px; border-left: #7da376 solid 1px; }

th { background: #7da376; width: 30%; text-align: left; font-weight: normal; padding: 12px; vertical-align: middle; color: #fff; border-bottom: #a0c599 solid 1px; border-right: #7da376 solid 1px; }

td { background: #fafafa; padding: 12px; vertical-align: middle; border-bottom: #7da376 solid 1px; border-right: #7da376 solid 1px; }

th.w50 { width: 50% !important; }

/*---header---*/
header { position: absolute; top: 80px; left: 160px; z-index: 9999; width: calc(100% - 280px); }
header h1 { padding: 0 0 0 0; max-width: 230px; }

.header_image { display: flex; align-items: center; justify-content: center; width: 100%; height: calc(100vh - 120px); border-radius: 40px; }
.header_image h2 { font-size: 4.0rem; color: #fff; }

#railway .header_image { background: url(../img/railway/header.jpg) no-repeat center bottom; background-size: cover; }

#kids .header_image { background: url(../img/kids/header.jpg) no-repeat center bottom; background-size: cover; }

#cuisine .header_image { background: url(../img/cuisine/header.jpg) no-repeat center center; background-size: cover; }

#access .header_image { background: url(../img/access/header.jpg) no-repeat left center; background-size: cover; }

#facilities .header_image { background: url(../img/facilities/header.jpg) no-repeat center center; background-size: cover; }

#price .header_image { background: url(../img/price/header.jpg) no-repeat center center; background-size: cover; }

/*---footer---*/
footer { width: 100%; position: relative; padding: 60px 0; overflow: hidden; background: url("../img/bg_footer.jpg") no-repeat center top; background-size: cover; }
footer::before { content: ""; display: block; background: url("../img/i_footer01.png") no-repeat left bottom; width: 164px; height: 112px; position: absolute; left: 1%; bottom: 0; }
footer::after { content: ""; display: block; background: url("../img/i_footer02.png") no-repeat left bottom; width: 129px; height: 120px; position: absolute; right: 1%; bottom: 0; }
footer .f_logo { width: 130px; }
footer .f_logo img { width: 100%; }
footer strong { font-weight: normal; font-size: 2.0rem; }
footer .flexbox02 { width: calc(100% - 130px); justify-content: center; }
footer li { margin: 0 0 10px 0; text-align: right; }

address { font-size: 1.2rem; /*text-align: center;*/ margin: 20px 0 0 0; color: #333; padding: 0; z-index: 1; }

.pagetop { position: fixed; right: 10px; bottom: 100px; z-index: 9998; display: none !important; }

/*---contents---*/
img { max-width: 100%; }

.wrapper, .inner { width: 90%; max-width: calc(100% - 280px); margin-left: auto; margin-right: auto; position: relative; z-index: 1; }

.s_inner { width: 70%; max-width: 800px; margin-left: auto; margin-right: auto; position: relative; z-index: 1; }

.s_inner02 { width: 80%; max-width: 1000px; margin-left: auto; margin-right: auto; position: relative; z-index: 1; }

main { display: block; overflow-x: hidden; margin: 60px 0 0 0; }

#index main { margin: 0; }

section { position: relative; margin-bottom: 100px; }

.slider img, .slider02 img, .slider03 img { width: 100%; }

.radius { border-radius: 40px; }

.radius02 { border-radius: 0 40px 40px 0; }

.radius03 { border-radius: 40px 0 0 40px; }

/*---common---*/
p, td, th { line-height: 2em; }

picture { display: block; }

h2, h3 { font-family: "Noto Sans JP", "游ゴシック体", "YuGothic", "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif; font-weight: 600; letter-spacing: 1px; font-style: normal; color: #3f7735; position: relative; }

h2 { font-size: 3.4rem; }

h3 { font-size: 3.0rem; }

h4 { font-size: 2.4rem; font-weight: normal; letter-spacing: 1px; color: #3f7735; }

.eng { color: #9aa72e; font-size: 2.0rem; }

.title { background: url("../img/bg_title.png") no-repeat center bottom; padding: 0 0 70px 0; }

figure img, picture img { width: 100%; }

.t_left { text-align: left; }

.com_wrap { padding: 0 5%; }

/*---btn---*/
.link_btn { line-height: 1em; }
.link_btn a { color: #000; font-size: 1.8rem; position: relative; display: flex; align-items: center; justify-content: center; width: 220px; height: 60px; border-radius: 30px; border: #000 solid 1px; }

.bg01 { background: #cfebd3; padding: 60px 0; }
.bg01::before { content: ""; display: block; background: url("../img/i_pick01.png") no-repeat left bottom; width: 140px; height: 125px; position: absolute; left: 0; bottom: 0; }
.bg01::after { content: ""; display: block; background: url("../img/i_pick02.png") no-repeat left bottom; width: 162px; height: 125px; position: absolute; right: 0; bottom: 0; }

.bn_plan { background: url("../img/bg_plan.jpg") no-repeat center center; background-size: cover; height: 400px; width: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; color: #fff; margin: 0; }
.bn_plan p { text-align: center; font-size: 2.4rem; }
.bn_plan .link_btn { line-height: 1em; }
.bn_plan .link_btn a { color: #fff; background: #57b38a; display: flex; align-items: center; justify-content: center; width: 380px; height: 100px; border-radius: 50px; border: #fff solid 1px; font-size: 2.4rem; }

.plan01 { position: absolute; bottom: 0; left: calc(50% - 320px); }

.plan02 { position: absolute; bottom: 0; right: calc(50% - 310px); }

.kome { padding: 0 0 0 20px; position: relative; }
.kome::before { content: "※"; position: absolute; top: 0; left: 0; }

/*---before after---*/
.link_btn a::before, .link_btn a::after, .plan_btn a::after { display: block; content: ""; }

/* ================================================================
( ・∋ Index
================================================================ */
.index_lead { background: url("../img/bg_lead.jpg") no-repeat right center; background-size: cover; padding: 100px 0 60px 0; min-height: 620px; margin: 0; }
.index_lead p { font-size: 1.8rem; line-height: 2em; }

.i_movie { position: absolute; bottom: -40px; right: -40px; z-index: 9996; }

.i_lead { position: absolute; bottom: -40px; left: -40px; z-index: 9996; }

.pickup_wrap { background: url("../img/index/bg_pickup.jpg") no-repeat center center; background-size: cover; padding: 40px 0; }
.pickup_wrap .flexbox02 { justify-content: space-around; }
.pickup_wrap h3 { color: #fff; font-size: 3.0rem; line-height: 1.2; margin: 0 0 10px 0; }
.pickup_wrap p { color: #fff; line-height: 1.2; }
.pickup_wrap .pick_btn { background: rgba(0, 0, 0, 0.3); width: 143px; height: 34px; max-width: 90%; font-size: 1.4rem; display: flex; align-items: center; justify-content: center; margin: 0 auto; text-align: center; color: #fff; line-height: 0; border-radius: 17px; border: #fff solid 1px; }
.pickup_wrap .large_com { font-size: 6.0rem; line-height: 1.5; }
.pickup_wrap .eng { font-size: 1.8rem; }
.pickup_wrap::before { content: ""; display: block; background: url("../img/i_pick01.png") no-repeat left bottom; width: 140px; height: 125px; position: absolute; left: 0; bottom: 0; }
.pickup_wrap::after { content: ""; display: block; background: url("../img/i_pick02.png") no-repeat left bottom; width: 162px; height: 125px; position: absolute; right: 0; bottom: 0; }

.pick { max-width: 370px; aspect-ratio: 1 / 1; width: 32%; }

.pick a { display: flex; justify-content: center; align-items: center; flex-direction: column; }

.pick01 a { background: url("../img/index/bg_pick01.png") no-repeat center center; background-size: 100%; aspect-ratio: 1 / 1; }

.pick02 a { background: url("../img/index/bg_pick02.png") no-repeat left center; background-size: 100%; aspect-ratio: 1 / 1; }

.pick03 a { background: url("../img/index/bg_pick03.png") no-repeat left center; background-size: 100%; aspect-ratio: 1 / 1; }

@media only screen and (max-width: 1400px) { .pickup_wrap .flexbox02 { justify-content: center; flex-wrap: wrap; }
  .pickup_wrap .large_com { font-size: 5.0rem; line-height: 1.5; }
  .pick { margin: 0 20px; width: 370px; }
  .pick01 { margin: 0 200px 40px 200px; } }
@media only screen and (max-width: 1120px) { .pickup_wrap .flexbox02 { justify-content: center; }
  .pick { margin: 0 auto 40px auto; width: 350px; }
  .pick01 { margin: 0 100px 40px 100px; } }
@media only screen and (max-width: 1024px) { .pickup_wrap .flexbox02 { justify-content: center; flex-direction: row; }
  .pickup_wrap .inner { width: 100%; }
  .pick { margin: 0 20px; width: 270px; }
  .pick p { font-size: 1.4rem; }
  .pick .eng { font-size: 1.6rem; }
  .pick .large_com { font-size: 4.2rem; }
  .pick h3 { font-size: 2.0rem; }
  .pick .m_b20 { margin-bottom: 10px; }
  .pick01 { margin: 0 300px 40px 300px; } }
@media only screen and (max-width: 890px) { .pick01 { margin: 0 200px 40px 200px; } }
@media only screen and (max-width: 700px) { .pick01 { margin: 0 100px 40px 100px; } }
@media only screen and (max-width: 640px) { .pickup_wrap .flexbox02 { flex-direction: column; }
  .pick01 { margin: 0 auto 40px auto; }
  .pick02 { margin: 0 auto 40px auto; }
  .pick03 { margin: 0 auto; } }
.kashikiri_wrap { margin: 0 0 260px 0; }

.i_kashikiri { position: absolute; bottom: -40px; left: 0; }

.kashikiri { position: absolute; bottom: -200px; right: 0; width: 60%; }

.link_wrap { margin: 0; }
.link_wrap ul { display: flex; }
.link_wrap li { width: 25%; aspect-ratio: 1 / 1; }
.link_wrap li a { display: flex; align-items: center; justify-content: center; flex-direction: column; width: 100%; height: 100%; }
.link_wrap li a h4 { color: #fff; font-size: clamp(1.6rem, 1.8vw, 2.2rem); }
.link_wrap li a p { color: #fff; font-size: clamp(1.4rem, 1.8vw, 1.8rem); }

.link01 a { background: url("../img/index/bg_blog.jpg") no-repeat center center; background-size: cover; }

.link02 a { background: url("../img/index/bg_insta.jpg") no-repeat center center; background-size: cover; }

.link03 a { background: url("../img/index/bg_exprerience.jpg") no-repeat center center; background-size: cover; }

.link04 a { background: url("../img/index/bg_camp.jpg") no-repeat center center; background-size: cover; }

/* ================================================================
( ・∋ Railway
================================================================ */
.railway_lead { background: url("../img/railway/bg_lead.jpg") no-repeat right center; background-size: cover; padding: 100px 0 60px 0; min-height: 620px; margin: 0; }

/***----- アコーディオンパネル -----***/
.railway-record__item { width: 100%; margin-bottom: 24px; }
.railway-record__item h3 { font-size: 2rem; padding-bottom: .5em; border-bottom: #3f7735 3px dotted; margin-bottom: 1em; }
.railway-record__item h3 span { font-size: 1.6rem; background: #fff; padding: 2px 8px; margin: 0 10px 0 0; border-radius: 10px; }

.record-accordion { width: 100%; height: auto; font-size: 1.8rem; text-align: left; cursor: pointer; padding: 1.7rem 5rem 1.6rem 3rem; border: none; outline: none; transition: 0.4s; border-radius: 5px; position: relative; background-color: #57b38a; color: #fff; }

.record-accordion.active, .record-accordion:hover { background-color: #84cead; }

.record-accordion::after { font-family: 'Material Icons'; content: 'add'; /* + */ font-size: 3.0rem; position: absolute; top: 1.5rem; right: 2rem; }

.record-accordion.active::after { font-family: 'Material Icons'; content: "remove"; /* - */ }

.record-panel { width: 100%; max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; background-color: #e3f8ee; border-radius: 0 0 40px 40px; }

.record-panel_inner { padding: 3rem 4rem 3rem 4rem; position: relative; }

.record-block:not(:last-of-type) { margin-bottom: 48px; }

.record-block__item { display: flex; justify-content: space-between; margin-bottom: 16px; }

.record-block__photo { width: calc( 200 / 1040 * 100% ); }
.record-block__photo img { width: 100%; }

.record-block__txt { width: calc( 808 / 1040 * 100% ); }

/***----- 1つのブロック内がテキストだけのとき -----***/
.record-block__txt.sentence { width: 100%; }

/***----- 1つのブロック内に写真が2列複数行あるとき -----***/
.record-block__photo.gallery { width: calc( 402 / 1040 * 100% ); }

.record-block__txt.gallery { width: calc( 606 / 1040 * 100% ); }

.record-block__gallery { display: flex; justify-content: space-between; flex-wrap: wrap; }

.record-block__thumb { width: calc( 200 / 402 * 100% ); margin-bottom: 2px; }

/***----- 1つのブロック内に写真が3列複数行あるとき -----***/
.record-block__txt.gallery3 { width: 100%; }

.record-block__photo.gallery3 { width: calc( 604 / 1040 * 100% ); margin-bottom: 16px; }

.record-block__thumb.gallery3 { width: calc( 200 / 604 * 100% ); margin-bottom: 8px; }

/***----- 動画があるとき -----***/
.record-block__photo.record-movie { width: calc( 402 / 1040 * 100% ); }

.record-block__txt.record-movie { width: calc( 608 / 1040 * 100% ); }

/***----- 費用内訳テーブル -----***/
.cost-breakdown__title { font-size: 1.8rem; margin-bottom: .5em; }

.cost { width: 100%; }

.cost-title { background-color: #3f7735; border: solid 1px #000; color: #fff; padding: 1em; }

.cost-item { border: solid 1px #000; padding: 1em; }

.cost-item.money { text-align: right; }

.cost-detail:last-of-type { border-bottom: solid 1px #000; }

.cost-detail:last-of-type .cost-title { background-color: #1c5845; }

.cost-notes { margin: .5em 0 1em; }

.vehicle { margin-top: 1em; }

.vehicle__item { margin-bottom: 1.5em; }

.vehicle__name { margin-bottom: .75em; }

.record-block__txt dl dd { margin-bottom: .5em; }

.f-size18 { font-size: 1.8rem; }

.f-size14 { font-size: 1.4rem; }

.marker { background: linear-gradient(transparent 70%, #84cead 70%); }

.youtube { aspect-ratio: 16 / 9; width: 100%; height: auto; }

/** media Queries
===================================================================================*/
@media only screen and (max-width: 1024px) { .railway-lead__txt { width: calc( 560 / 1120 * 100% ); } }
/** media Queries
===================================================================================*/
@media only screen and (max-width: 800px) { .railway-lead h2 br.sp { display: inline-block; }
  .railway-lead__txt { width: 100%; }
  .record-block__photo { width: calc( 280 / 1040 * 100% ); }
  .record-block__txt { width: calc( 728 / 1040 * 100% ); }
  .cost-title, .cost-item { border-bottom: none; display: block; width: 100%; } }
/** media Queries
===================================================================================*/
@media only screen and (max-width: 768px) { .record-panel_inner { padding: 3rem 2rem 3rem 2rem; position: relative; }
  .record-block__item { width: 100%; display: flex; flex-direction: column; margin-bottom: 32px; }
  .record-block__photo { width: 100%; margin-bottom: 16px; }
  .record-block__txt { width: 100%; }
  /***----- 1つのブロック内に写真が2列複数行あるとき -----***/
  .record-block__photo.gallery { width: 100%; }
  .record-block__txt.gallery { width: 100%; }
  .record-block__thumb { width: calc( 280 / 562 * 100% ); margin-bottom: 2px; }
  /***----- 1つのブロック内に写真が3列複数行あるとき -----***/
  .record-block__txt.gallery3 { width: 100%; }
  .record-block__photo.gallery3 { width: 100%; margin-bottom: 16px; }
  /***----- 動画があるとき -----***/
  .record-block__photo.record-movie { width: 562px; }
  .record-block__txt.record-movie { width: 100%; } }
/** media Queries
===================================================================================*/
@media only screen and (max-width: 640px) { /***----- 1つのブロック内に写真が2列複数行あるとき -----***/
  .record-block__photo.gallery { width: 100%; }
  .record-block__txt.gallery { width: 100%; }
  .record-block__thumb { width: calc( ( 100% - 2px ) / 2 ); margin-bottom: 2px; }
  /***----- 動画があるとき -----***/
  .record-block__photo.record-movie { width: 100%; }
  .record-block__txt.record-movie { width: 100%; }
  .railway-lead__youtube--item:first-of-type, .railway-lead__youtube--item:nth-of-type(2) { float: none; width: 100%; }
  .railway-lead__youtube--item:first-of-type { margin-bottom: 24px; } }
/** media Queries
===================================================================================*/
@media only screen and (max-width: 480px) { .railway-record__lead .br-sp { display: inline-block; } }
/* ================================================================
( ・∋ Cuisinse
================================================================ */
.dinner_wrap { margin: 60px 0 100px 0; }
.dinner_wrap ul { display: flex; flex-wrap: wrap; }
.dinner_wrap li { padding: 0 0 0 16px; position: relative; margin: 0 16px 10px 0; }
.dinner_wrap li::before { content: "●"; color: #7bb171; position: absolute; left: 0; }
.dinner_wrap .thumbnail div { margin: 0 8px 0 0; }
.dinner_wrap .thumbnail div:last-child { margin: 0; }
.dinner_wrap .thumbnail img { border-radius: 20px; }

.rice_wrap { background: #cfebd3; padding: 0 20px 0 0; border-radius: 20px; }
.rice_wrap figure img { border-radius: 20px 0 0 20px; }

.i_kome { position: absolute; bottom: 0; right: -20px; }

.plus { font-size: 2.0rem; background: #fff; padding: 4px 8px; display: table; height: 30px; border-radius: 20px; }

/* ================================================================
( ・∋ Facilities
================================================================ */
.information_wrap .tel { width: 48%; }
.information_wrap .tel a { width: 100%; }
.information_wrap .mail { width: 48%; }
.information_wrap .mail a { width: 100%; background: #effbf1; }

.i_room01 { position: absolute; left: -40px; bottom: -40px; }

.i_room02 { position: absolute; right: -40px; bottom: -40px; }

.att_wrap { background: #cfebd3; padding: 20px; border-radius: 40px; }
.att_wrap li { padding: 0 0 0 16px; position: relative; margin: 0 16px 10px 0; }
.att_wrap li::before { content: "●"; color: #7bb171; position: absolute; left: 0; top: 0; }

.example_wrap { background: #fff; padding: 40px; border-radius: 40px; }

/* ================================================================
( ・∋ Kids
================================================================ */
.nyuji_wrap { margin: 100px 0; }

.medical { overflow-x: auto; display: block; }
.medical th { width: auto; white-space: nowrap; }
.medical td { white-space: nowrap; }
.medical .head th { background: #4e6d49; }
.medical .name { background: #acd2a6; }

.medical::-webkit-scrollbar { width: 10px; height: 10px; }

.medical::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 5px; }

.medical::-webkit-scrollbar-thumb { background: #888; border-radius: 5px; }

.medical::-webkit-scrollbar-thumb:hover { background: #555; }

/* ================================================================
( ・∋ Access
================================================================ */
.s_wrap .flexbox { padding: 0 40px; }
.s_wrap .s_bg { background: #fdfdfd; padding: 40px; border-radius: 20px; }
.s_wrap .link_btn a { width: 150px; }

/* ================================================================
( ・∋ Nav
================================================================ */
#toggle { display: none; cursor: pointer; }
#toggle a { display: block; text-decoration: none; }
#toggle p { padding: 0; font-size: 2.0rem; text-align: left; margin: 12px 0 0 1px; color: #000; line-height: 0; letter-spacing: 1px; }

#menu { width: 0px; width: 0px; background: #fffcf1; transform: translateX(100%); position: fixed; top: 0; left: 0; z-index: 9998; padding: 80px 1% 0 1%; font-weight: bold; /*font-family: $title-font-family;*/ display: none; }
#menu a { 
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center; width: 100%; height: 100%; color: #000; }
#menu nav { width: 100%; clear: both; padding: 16px 3%; display: none; }
#menu ul { width: 100%; display: flex; align-items: stretch; flex-wrap: wrap; justify-content: space-between; }
#menu li { width: 48%; margin: 0 auto 20px auto; text-align: center; float: left; font-size: 1.8rem; font-weight: normal; }
#menu li span { display: block; font-size: 1.4rem; }
#menu li img { margin: 0 auto 10px auto; display: block; }
#menu .sub_nav02 { width: 100%; }
#menu .link_btn { line-height: 1em; }
#menu .link_btn a { color: #fff; background: #57b38a; display: flex; align-items: center; justify-content: center; width: 300px; height: 80px; border-radius: 40px; border: #fff solid 1px; font-size: 2.4rem; margin: 0 auto; }
#menu p { display: none; }
#menu .tel { text-align: center; font-size: 2.4rem; font-weight: 400; }
#menu .tel img { margin: -4px 10px 0 0; }
#menu img { width: 30px; }

.menu-trigger { position: relative; width: 30px; height: 20px; display: inline-block; transition: all .4s; }
.menu-trigger span { position: absolute; left: 0; background-color: #000; width: 100%; height: 5px; display: inline-block; transition: all .4s; height: 3px; }
.menu-trigger span:nth-of-type(1) { top: 0; }
.menu-trigger span:nth-of-type(2) { top: 8px; }
.menu-trigger span:nth-of-type(2)::after { position: absolute; top: 0; left: 0; content: ''; background-color: #000; transition: all .2s; width: 100%; height: 5px; height: 3px; }
.menu-trigger span:nth-of-type(3) { bottom: 0; }

.menu-trigger.active span:nth-of-type(1) { transform: translateY(20px) scale(0); }
.menu-trigger.active span:nth-of-type(2) { -webkit-transform: rotate(-45deg); transform: rotate(-45deg); }
.menu-trigger.active span:nth-of-type(2)::after { -webkit-transform: rotate(90deg); transform: rotate(90deg); }
.menu-trigger.active span:nth-of-type(3) { transform: translateY(-20px) scale(0); }

.sp, .sp_movie { display: none; }

/* ================================================================
( ・∋ Movie
================================================================ */
#header_wrap { position: relative; }

#mainVisual { overflow: hidden; line-height: 0; border-radius: 40px; height: 100%; width: 100%; }
#mainVisual video { width: 100%; height: 100%; object-fit: cover; }

#mainVisual video { width: 100%; }

@media only screen and (orientation: portrait) { #index #mainVisual { background: url(../../movie/top/movie.jpg) no-repeat center; background-size: cover; }
  #mainVisual video { display: none; } }
.sp_movie { overflow: hidden; margin: 80px 0 0 0; }

.movie_wrap { display: flex; margin: 0 auto; width: calc(100% - 280px); height: calc(100vh - 120px); margin: 60px auto 0 auto; }
.movie_wrap nav { width: 140px; display: flex; align-items: center; justify-content: center; height: 100vh; z-index: 9997; }
.movie_wrap nav ul { display: flex; flex-direction: row; }
.movie_wrap nav li { font-size: 1.6rem; display: flex; align-items: center; margin: 12px 0; font-weight: 400; }
.movie_wrap .nav01 { -ms-writing-mode: tb-rl; -webkit-writing-mode: vertical-rl; writing-mode: vertical-rl; position: fixed; left: 0; mix-blend-mode: difference; }
.movie_wrap .nav02 { position: fixed; right: 0; mix-blend-mode: difference; }
.movie_wrap .nav02 ul { flex-direction: column; align-items: center; }
.movie_wrap .nav02 .insta a { mix-blend-mode: difference; }
.movie_wrap .nav02 .blog a { display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border-radius: 50%; border: #fff solid 1px; color: #fff; mix-blend-mode: difference; }
.movie_wrap .nav02 .side_r { mix-blend-mode: normal; }
.movie_wrap .nav02 .side_r a { display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border-radius: 50%; border: #fff solid 1px; color: #fff; mix-blend-mode: normal; }
.movie_wrap .nav02 .pagetop02 a { display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border-radius: 50%; border: #fff solid 1px; color: #fff; mix-blend-mode: normal; }

.gnav { background: transparent; isolation: auto; }

.gnav li a { color: #fff; mix-blend-mode: difference; }

@media screen and (max-width: 1320px) { .index_lead .flexbox { flex-direction: column; }
  .index_lead .flexbox .item1 { margin: 0 auto 40px auto; width: 100%; order: 1; }
  .index_lead .flexbox .item2 { order: 2; }
  .railway_lead .flexbox { flex-direction: column; }
  .railway_lead .flexbox .item1 { margin: 0 auto 40px auto; width: 100%; order: 1; }
  .railway_lead .flexbox .item2 { order: 2; }
  .railway_lead .flexbox .r_br { display: none; } }
@media screen and (max-width: 1024px) { .pc { display: none !important; }
  .sp, .sp_movie { display: block; }
  .sp_movie { display: flex; border-radius: 40px; }
  #mainVisual { display: none; min-height: auto; }
  header { width: 100%; height: 80px; padding: 10px; position: fixed; top: 0; left: 0; background: #fffcf1; }
  header .flexbox { justify-content: space-between; align-items: center; flex-wrap: wrap; flex-direction: row; }
  header h1 { line-height: 0; width: auto; }
  header h1 img { height: 60px; }
  .header_image { height: 300px; margin: 80px 0 0 0; }
  .movie_wrap { display: flex; margin: 0 auto; width: 90%; height: auto; margin: 10px auto 0 auto; }
  .movie_wrap nav { width: 140px; display: flex; align-items: center; justify-content: center; height: 100vh; z-index: 9997; }
  .movie_wrap nav ul { display: flex; flex-direction: row; }
  .movie_wrap nav li { font-size: 1.6rem; display: flex; align-items: center; margin: 12px 0; }
  .movie_wrap .nav01 { -ms-writing-mode: tb-rl; -webkit-writing-mode: vertical-rl; writing-mode: vertical-rl; position: fixed; left: 0; mix-blend-mode: difference; }
  .movie_wrap .nav02 { position: fixed; right: 0; }
  .movie_wrap .nav02 ul { flex-direction: column; align-items: center; }
  .movie_wrap .nav02 .blog a { display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border-radius: 50%; border: #000 solid 1px; }
  .movie_wrap .nav02 .side_r a { display: flex; justify-content: center; align-items: center; width: 70px; height: 70px; border-radius: 50%; background: #57b38a; color: #fff; }
  /*---table_sp---*/
  .table_wrap { padding: 20px 5%; }
  th { padding: 10px; }
  td { padding: 10px; }
  .sp_table th { display: block; width: 100%; border-bottom: none; }
  .sp_table td { display: block; width: 100%; }
  th.w50 { width: 100%; }
  /*---footer_sp---*/
  footer { width: 100%; position: relative; }
  footer .f_logo { width: 150px; margin: 0 auto 40px auto; }
  footer .f_logo img { width: 100%; }
  footer::before { width: 90px; height: 61px; background-size: cover; }
  footer::after { width: 65px; height: 60px; background-size: cover; }
  footer strong { font-weight: normal; font-size: 2.0rem; }
  footer .flexbox02 { width: 90%; justify-content: center; margin: 0 auto; flex-direction: column; }
  footer .f_nav { display: flex; justify-content: space-around; }
  footer li { margin: 0 0 10px 0; }
  footer .w45 { width: 100%; }
  footer .w45 p { text-align: center; }
  footer address { text-align: center; }
  footer .m_b40 { margin-bottom: 20px !important; }
  .pagetop { bottom: 10px; display: block !important; }
  .pagetop img { width: 50px; }
  /*---contents_sp---*/
  section { margin-bottom: 60px; }
  main { display: block; overflow-x: hidden; margin: 60px 0 0 0; }
  .wrapper, .inner, .s_inner, .s_inner02 { width: 90%; max-width: inherit; }
  .bg01::before { width: 67px; height: 60px; background-size: cover; }
  .bg01::after { width: 67px; height: 60px; background-size: cover; }
  /*---common_sp---*/
  h2 { font-size: 3.6rem; }
  h2.m_b40, h3.m_b40 { margin-bottom: 20px; }
  h2 { font-size: 3.0rem; }
  h3 { font-size: 2.6rem; }
  h4 { font-size: 2.0rem; font-weight: normal; letter-spacing: 1px; color: #3f7735; }
  .eng { font-size: 1.8rem; }
  .bn_plan .link_btn a { width: 300px; height: 80px; border-radius: 40px; }
  /*---btn---*/
  .link_btn { margin-left: auto; margin-right: auto; }
  /*index_sp*/
  .i_movie { width: 70px; right: 0; }
  .i_lead { width: 70px; left: 0; }
  .kashikiri_wrap { margin: 0 0 260px 0; }
  .i_kashikiri { width: 100px; left: 0; }
  .kashikiri { position: absolute; bottom: -200px; right: 0; width: 60%; }
  .link_wrap { margin: 0; }
  .link_wrap ul { display: flex; flex-wrap: wrap; }
  .link_wrap li { width: 50%; aspect-ratio: 1 / 0.5; }
  .link_wrap li a h4 { font-size: clamp(1.6rem, 1.8vw, 2.2rem); }
  .link_wrap li a p { font-size: clamp(1.4rem, 1.8vw, 1.8rem); }
  /*kids_sp*/
  .nyuji_wrap { margin: 60px 0; }
  /*facilities_sp*/
  .i_room01 { left: 0; width: 70px; }
  .i_room02 { right: 0; width: 70px; }
  /*access_sp*/
  .map_wrap iframe { height: 200px; }
  #toggle { display: block; padding: 0 10px 0 0; z-index: 9999; }
  #toggle p { font-size: 1.4rem; text-align: left; margin: 10px 0 0 -6px; }
  #menu { width: 100%; height: 100%; transition: .3s; display: block; }
  #menu.on { transform: translateX(0); transition: .3s; }
  #menu.on nav { display: block; }
  #menu.on p { display: block; } }
@media screen and (max-width: 640px) { /*---header_sp---*/
  .h_wrap { margin: 120px 0 0 0; display: block; }
  .header_image { width: 100%; height: 200px; }
  .header_image h2 { font-size: 2.6rem; }
  .header_box { width: 50%; height: 100%; }
  .header_box h2 { font-size: 2.0rem; margin: 20px 0 0 0; }
  .header_box h2 span { display: block; font-size: 1.4rem; }
  .header_box a { display: block; width: 40%; margin: 0 auto; }
  .header_box a img { width: 100%; }
  .sp_center { text-align: left; }
  .tab { display: block; }
  .index_lead { padding: 60px 0; }
  .kashikiri_wrap { margin-bottom: 100px; }
  .kashikiri_wrap .w50:first-child { width: 90%; }
  .kashikiri { position: static; width: 90%; margin: 40px 0 0 10%; }
  .link_wrap { margin: 0; }
  .link_wrap ul { flex-direction: column; }
  .link_wrap li { width: 100%; aspect-ratio: 1 / 0.5; }
  .railway_lead { background-position: right bottom; background-size: auto 50%; padding: 0 0 60px 0; }
  .information_wrap .tel { width: 90%; margin: 0 auto 40px auto; }
  .information_wrap .tel a { width: 100%; }
  .information_wrap .mail { width: 90%; margin: 0 auto; }
  .information_wrap .mail a { width: 100%; background: #effbf1; }
  .rice_wrap { padding: 0 0 20px 0; }
  .rice_wrap figure img { border-radius: 20px 20px 0 0; }
  .rice_wrap p { padding: 0 20px; }
  .rice_wrap .item1 { margin: 0 0 20px 0; }
  .rice_wrap .item3 { margin: 20px 0 0 0; }
  .i_kome { right: 0; width: 80px; bottom: -20px; }
  .medical { overflow-x: inherit; display: block; }
  .medical th { display: block; }
  .medical td { display: block; border-bottom: none; padding: 5px 10px; }
  .medical .head { display: none; }
  .medical .name { background: #acd2a6; }
  .medical table { border-bottom: #7da376 solid 1px; } }
.ie { display: none; }

@media all and (-ms-high-contrast: none) { .ie { display: block; }
  .ie_none { display: none; } }
