html,
body { font-size: 16px; color: #555; }

a { transition: opacity 0.5s; color: #555; }
a:hover { opacity: 0.8; }

dl { margin: 0; }
dl dd { margin: 0; }

.txt { line-height: 180%; }
.txt span { display: inline-block; }

.fixed { overflow: hidden; }

/* -------------------------------------------- fonts */

@font-face {
font-family: "Manrope"; /* name you will use in CSS */
src: url("../fonts/Manrope-VariableFont_wght.ttf") format("truetype"); /* path to your .ttf file */
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "Cormorant"; /* name you will use in CSS */
src: url("../fonts/CormorantInfant-VariableFont_wght.ttf") format("truetype"); /* path to your .ttf file */
font-weight: normal;
font-style: normal;
}

.font-manrope { font-family: "Manrope", serif; font-weight: 400; font-style: normal; }
.font-cormorant { font-family: "Cormorant", serif; font-weight: 400; font-style: normal; }
.font-minion { font-family: "minion-pro", serif; font-weight: 400; font-style: normal; }
.font-mincho {font-family: "BIZ UDPMincho", serif; font-weight: 400; font-style: normal; }
.font-mincho2 { font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif; font-weight: 400; font-style: normal; }

/* -------------------------------------------- border-radius */

.br-05 { border-radius: 0.5rem; }

/* -------------------------------------------- colors */

.bg-yellow { background-color: #F2C01A; }
.bg-blue { background-color: #365FAB; }
.bg-green { background-color: #228d58; color: #fff; border: 1px solid #228d58; }
.bg-green2 { background-color: #4D7957; color: #fff; }
.bg-gold { background-color: #C5B074; color: #fff; border: 1px solid #C5B074; }
.bg-gray1 { background: #E8E6E2; }
.bg-gray2 { background-color: #EDEDF1; }
.bg-gray3 { background-color: #F4F2ED; }
.bg-dark_gray { background-color: #555555; color: #fff; }
.bg-white { background-color: #fff; }
.bg-off_white { background-color: #EDEBE2; }
.bg-light_gold { background-color: #D8D4BA; }

.outline-gold { border: 1px solid #C5B074; color: #C5B074; background-color: #fff; }

.color-gold { color: #C5B074; }
.color-white { color: #fff; }
.color-green { color: #297A55; }
.color-green { color: #297A55; }

/* -------------------------------------------- btns */

.btn_wrap .btn { display: inline-block; padding: 0.5rem 1rem; border-radius: 50px; box-sizing: border-box; }
.btn_wrap .btn.style1 { font-weight: 600; padding: 0.85rem 2.5rem; display: flex; align-items: center; }
.btn_wrap .btn.style1 .icon { width: 18px; vertical-align: middle; }
.btn_wrap .btn.style1 span { line-height: 100%; }

.btn_wrap .btn.outline { border: 1px solid #555; }
.btn_wrap .btn.gmap { height: 50px; line-height: 46px; padding: 0 3rem 0 1.25rem; background: url(../img/common/icn-arw.png) 94% center no-repeat; background-size: 1.25rem auto; }

.btn_wrap .btn.style2 { min-width: 280px; height: 70px; line-height: 68px; padding: 0 3.5rem 0 2rem; }
.btn_wrap .btn.style2 span { position: relative; z-index: 1; display: block; text-align: center; }
.btn_wrap .btn.style2 .arw { border-radius: 50%; position: absolute; right: 1rem; width: 25px; height: 25px; margin: auto; top: 0; bottom: 0;
    border: 1px solid #000;
    background-color: #fff;
}
.btn_wrap .btn.style2 .arw::before {  content: '›'; line-height: 100%; font-size: 1rem; color: #000; display: block; top: 40%; left: 50%; position: relative; 
    height: auto;
    width: auto;
    transform: translate(-50%, -50%);
}
.btn_wrap .btn.style2.outline-gold .arw { border-color: #C4AE73; }
.btn_wrap .btn.style2.outline-gold .arw::before { border-color: #C4AE73; }

.btn_wrap .btn.style2.reversed { padding: 0 2rem 0 3.5rem; }
.btn_wrap .btn.style2.reversed .arw { left: 1.25rem; right: auto; transform: rotate(-180deg); }
.btn_wrap .btn.style2.bg-dark_gray { border: 1px solid #555; }
.btn_wrap .btn.style2.bg-dark_gray .arw { border: 1px solid #555; }

.btn_wrap .btn.hover_anim { overflow: hidden; transition: 0.5s; opacity: 1 !important; }
.btn_wrap .btn.hover_anim span { position: relative; z-index: 1; }
.btn_wrap .btn.hover_anim i::before { transition: 0.5s; }
.btn_wrap .btn.hover_anim::before { background-color: #fff; width: 0%; height: 100%; left: 0; top: 0; transition: 0.5s; z-index: 0; }
.btn_wrap .btn.hover_anim:hover::before { width: 100%; }
.btn_wrap .btn.hover_anim.bg-gold:hover { color: #C5B074; border: 1px solid #C5B074; }
.btn_wrap .btn.hover_anim:hover i::before { filter: brightness(0) invert(1); }

.btn_wrap .hover_anim.outline-gold:hover { color: #fff; }
.btn_wrap .hover_anim.outline-gold:hover::before { background-color: #C5B074; }
.btn_wrap .hover_anim.bg-green:hover { color: #297A55; }

.btn_wrap .hover_anim.bg-dark_gray:hover { color: #555; }
.btn_wrap .hover_anim.bg-dark_gray:hover::before { background-color: #fff; }

.btn_wrap .btn.style3 { display: flex; justify-content: center; align-items: center; opacity: 1 !important; } 
.btn_wrap .btn.style3 span { display: inline-block; line-height: 100%; }
.btn_wrap .btn.style3 .arw { overflow: visible; width: 0px; transition: 0.5s;  }
.btn_wrap .btn.style3 .arw::after { position: relative; display: inline-block; margin: 0 0 0 0.5rem; transition: 0.5s; 
left: -20px;
opacity: 0;
width: 25px;
height: 25px;
background: url(../img/common/icn-arw.png) no-repeat right center;
background-size: 25px auto;
}
.btn_wrap .btn.style3:hover .arw { width: 25px; }
.btn_wrap .btn.style3:hover .arw::after { opacity: 1; width: 25px; left: 0px; }

.slider_nav .arw { width: 30px; margin: 0 1rem; cursor: pointer; }
.slider_nav .arw.hard_code { height: 30px; border: 1px solid #555; background-color: #fff; border-radius: 50%; }
.slider_nav .arw.hard_code::after { width: 25%; height: 25%; margin: auto; border-bottom: 1px solid #555; border-right: 1px solid #555; left: 46%; top: 50%; transform: translate(-50%, -50%) rotate(-45deg); }
.slider_nav .slide_pages p { font-size: 1.5rem; }
.slider_nav .slide_pages p span { display: inline-block; padding: 0 0.5rem; }
.slider_nav .arw.prev { transform: rotate(-180deg); }

.slider_nav .arw.swiper-button-disabled { opacity: 0.5; }

.center_all { width: 100%; padding: 100% 0 0; margin: 0; position: relative; overflow: hidden; box-sizing: border-box; }
.center_all img { top: 50%; left: 50%; transform: translate(-50%, -50%); height: 101%; width: auto; position: absolute; transition: 0.5s; z-index: 0; }


.bubble_wrap { text-align: center; display: flex; justify-content: center; }
.bubble_wrap .bubble { padding: 1rem 1.5rem; border-radius: 0.5rem; }
.bubble_wrap .bubble p { font-size: 1.875rem; }
.bubble_wrap .bubble::after { width: 30px; height: 15px; background: url(../img/common/arw-green.png?v=2) no-repeat center center; background-size: 100% auto; bottom: -15px; right: 0; left: 0; margin: auto; }

.word_wrap { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.word_wrap.lines_1 { -webkit-line-clamp: 1; }
.word_wrap.lines_2 { -webkit-line-clamp: 2; }

/* -------------------------------------------- box-shadow */

.box-shadow1 { box-shadow: 2px 2px 8px 0px #535353; }

/* -------------------------------------------- inner */

.inner { width: 94%; margin: auto; max-width: 1200px; box-sizing: border-box; }
.max700 { max-width: 700px; }
.max800 { max-width: 800px; }
.max900 { max-width: 900px; }
.max1000 { max-width: 1000px; }
.max1100 { max-width: 1100px; }
.max1400 { max-width: 1400px; }
.max1500 { max-width: 1500px; }

/* -------------------------------------------- header */

header { box-shadow: 0px 0px 5px #bbb; padding: 0.5rem 0.5rem 0 1.5rem; position: fixed; z-index: 9; width: 100%; left: 0; top: 0; box-sizing: border-box; background-color: #fff; }
header .logo { max-width: 250px; width: calc(100% - 880px); }

header .nav a { display: inline-block; line-height: 150%; }
header .nav a .icon { margin-right: 5px; }
header .nav a span { display: inline-block; }

header .nav .menu_btn { padding: 0 1rem; }
header .nav .menu_btn a { display: block; width: 45px; }

header .btn_wrap { padding: 0 0.5rem; }

header .nav_top_col1 { padding: 0 0.5rem; }
header .nav_top_col1 a { margin: 0 0.5rem; display: flex; justify-content: flex-end; line-height: 110%; font-weight: 600; }
header .nav_top_col1 a .icon { width: 25px; margin-right: 0.5em; }
header .nav_top_col2 { padding: 0 1rem; }
header .nav_bot a { font-weight: 600; }
header .nav_bot a .icon { width: 32px; }
header .nav_bot ul { padding-top: 0.5rem; }
header .nav_bot ul li { position: relative; }
header .nav_bot ul li:first-child::before { display: none; }
header .nav_bot ul li::before { width: 1px; height: 20px; background-color: #CCCCCC; left: 0; top: 0; bottom: 0; margin: auto; display: block; content: ''; position: absolute; }
header .nav_bot .nav_link { display: block; padding: 0.5rem 1rem; }
header .nav_bot .nav_link::after { width: 0%; transition: 0.5s; height: 3px; background-color: #228d58; display: block; content: ''; position: absolute; bottom: 0; left: 0; }
header .nav_bot .nav_link span { display: inline-block; line-height: 100%; vertical-align: middle; }
header .nav_bot ul li:hover .nav_link,
header .nav_bot ul li.active a { color: #228d58; }
header .nav_bot ul li:hover .nav_link::after { width: 100%; }

header .nav_bot .nav_parent { position: relative; }
header .nav_bot .nav_child { opacity: 0; pointer-events: none; transition: 0.2s; padding: 0.5rem 1.25rem; background-color: #fff; width: 320px; top: 100%; position: absolute; z-index: 0;
    left: 0;
    box-shadow: 2px 2px 8px -4px #b9b9b9; 
    border-bottom-right-radius: 0.5rem;
    border-bottom-left-radius: 0.5rem;
}
header .nav_bot .nav_child-head { font-size: 1.5rem; padding-bottom: 0.5rem; border-bottom: 1px solid #228d58; }
header .nav_bot .nav_child-head .icon { width: 2.25rem; }
header .nav_bot .nav_child-head span { padding-left: 0.5rem; }
header .nav_bot .nav_child-list .li { border-bottom: 1px dotted #555; }
header .nav_bot .nav_child-list a { font-size: 14px; padding: 0.75rem 0; font-weight: 400; display: flex; position: relative; }
header .nav_bot .nav_child-list .li:last-of-type { border: none; }
header .nav_bot .nav_child-list .li::after { right: 10px; width: 8px; height: 8px; transition: 0.2s; top: 0; bottom: 0; content: ''; display: block;
    border-bottom: 2px solid #555;
    border-right: 2px solid #555;
    transform: rotate(-45deg);
}
header .nav_bot .nav_child-list .li:hover a { color: #228d58; }
header .nav_bot .nav_child-list .li:hover::after { right: 6px; border-color: #228d58; }

header .nav_parent:hover .nav_child { opacity: 1; pointer-events: all; }

header .nav_bot .nav_child.col2 { width: 480px; }
header .nav_bot .col2 .nav_child-list .li { width: 48%; box-sizing: border-box;  }
header .nav_bot .col2 .nav_child-list .li::after { width: 6px; height: 6px; }

/* -------------------------------------------- menu */

.menu { display: none; width: 100%; height: 100%; position: fixed; top: 0; left: 0; background-color: #EEEDE8; z-index: 99; }
.menu_fv { width: 31%; height: 100vh; background-image: url(../img/common/menu-fv.jpg); background-position: top center; background-color: #fff; }
.menu_wrap { width: 69%; height: 100vh; overflow: auto; }
.menu_close_btn { top: 1.5rem; right: 1.5rem; z-index: 99; width: 50px; height: 50px; position: fixed; }
.menu_close_btn p { width: 100%; height: 100%; position: relative; cursor: pointer; }
.menu_close_btn p::before,
.menu_close_btn p::after { width: 100%; height: 1px; background-color: #000; margin: auto; top: 0; left: 0; bottom: 0; right: 0; }
.menu_close_btn p::before { transform: rotate(45deg); }
.menu_close_btn p::after { transform: rotate(-45deg); }

.menu_sns { right: 0; bottom: 0; }
.menu_sns .icon { width: 30px; }
.menu_sns a { display: block; margin-right: 1rem; }

.menu_inner { padding: 5rem 4%; }
.menu_inner h3 { padding-bottom: 0.5rem; border-bottom: 1px solid #C4AE73 }
.menu_inner h3 img { width: 150px; pointer-events: none; }
.menu_inner ul { width: 48%; }
.menu_inner ul li { margin-top: 1.25rem; overflow: hidden; border-radius: 0.5rem; box-shadow: 2px 2px 15px -4px #b9b9b9; }
.menu_inner ul li a { font-size: 1.25rem; padding: 1.25rem 1rem; background-color: #fff; transition: 0.5s; }
.menu_inner ul li a span { padding-left: 0.5rem; }
.menu_inner ul li a .icon { width: 2.5rem; }
.menu_inner ul li a:hover { background-color: #E4EDE8; color: #228d58; }
.menu_inner ul li a::after { width: 0.5rem; height: 0.5rem; z-index: 2; border-bottom: 2px solid #000; border-right: 2px solid #000; top: 0; bottom: 0; right: 1.5rem; transition: 0.5s;
    transform: rotate(-45deg);
}
.menu_inner ul li a:hover::after { border-color: #228d58; right: 1rem; }

/* -------------------------------------------- main */

main { padding-top: 120px; }

.white_box { background-color: #fff; border-radius: 0.5rem; }

.common_tel { font-size: 2.25rem; line-height: 100%; }
.common_tel a { line-height: 100% !important; display: inline-block; }
.common_tel a .icon { width: 22px; margin-bottom: 6px; }
.common_time { font-weight: 600; font-size: 12px; padding-left: 0.5rem; }

/* -------------------------------------------- fvs */

.fv_style1 { padding: 3rem 0 4.5rem; background-image: url(../img/common/bg1.jpg); }
.fv_style1 .ttl { padding: 1rem 0; }
.fv_style1 .ttl .icon { width: 3rem; }
.fv_style1 .ttl span { display: block; width: 100%; font-size: 3rem;  line-height: 150%; }
.fv_style1 figure { border-radius: 0.5rem; padding-top: 30%; }
.fv_style1 img { height: auto; width: 101%; }

.fv_style2 { height: 600px; display: flex; align-items: center; justify-content: center;  color: #fff; }
.fv_style2::after { z-index: 0; width: 100%; height: 100%; background-color: #000; opacity: 0.3; top: 0; left: 0; }
.fv_style2 .fv_txt { z-index: 1; }
.fv_style2 .fv_txt p { font-size: 1.875rem; letter-spacing: 2px; }
.fv_style2 .fv_txt p .icon { width: 3rem; margin-right: 0.25rem; }
.fv_style2 .fv_txt h2 { font-size: 3.75rem; padding-top: 0.75rem; }

.fv_style3 { padding: 4rem 0; background-image: url(../img/common/bg1.jpg); }
.fv_style3 h2 { font-size: 3rem; }
.fv_style3 .icon { width: 3rem; }


/* -------------------------------------------- headings */

.head_style1 { display: flex; align-items: center; }
.head_style1 .ttl { padding-right: 2rem; font-size: 3rem; }
.head_style1 .ttl .icon { width: 4rem; }
.head_style1 .sub { font-size: 1rem; line-height: 180%; padding-left: 2rem; border-left: 2px solid #fff; }

.head_style2 .ttl { font-size: 2.5rem; padding: 0.5rem 0; padding-left: 1.25rem; }
.head_style2 .ttl::before { width: 0.5rem; background-color: #C4AE73; border-radius: 50px; left: 0; top: 0; height: 100%; }

.head_style3 .icon { width: 2.25rem; }
.head_style3 .ttl { font-size: 2.25rem; padding-top: 0.75rem; }

.head_style4 { padding: 1.75rem 2rem; }
.head_style4 .ttl { font-size: 3.125rem; line-height: 120%; }
.head_style4::before,
.head_style4::after { border: 1px solid #000; height: 100%; width: 15px; top: 0; bottom: 0; }
.head_style4::before { left: 0; right: auto; border-right: none; }
.head_style4::after { right: 0; border-left: none; }

/* -------------------------------------------- card */

.card1 { width: 340px; display: block; box-shadow: 2px 2px 6px 1px #dbdbdb; border-radius: 0.25rem; overflow: hidden; background-color: #fff; }
.card1:hover .center_all img { height: 105%; }
.card1 .ttl_wrap { padding: 1.25rem 1rem 1rem; box-sizing: border-box; min-height: 129px; }
.card1 figure { border-bottom: 1px solid #ebebeb; }
.card1 .ttl { font-size: 1.125rem; font-weight: 600; margin-bottom: 0.75rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.card1 p.cat span { margin-left: 4px; display: inline-block; padding: 0 0.5rem; height: 24px; line-height: 24px; font-size: 12px; font-weight: 600; border: 1px solid #555; }
.card1 p.cat span:first-of-type { margin-left: 0; }
.card1 .row { border-top: 1px solid #DDDDDD; padding: 0.5rem 1rem; }
.card1 .row p { font-size: 15px; font-weight: 600; }
.card1 .row p .icon { width: 18px; }
.card1 .row p span { padding-left: 0.375rem;
     display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-all;
}

.event_ended { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2; background: #00000068; color: #fff; display: flex; justify-content: center; align-items: center; }
.event_ended small { font-size: 1.25rem; }

.card1.style2 { width: 360px; box-shadow: 2px 2px 12px 1px #b2b2b2; }
.card1.style2 .ttl { min-height: 54px; margin-bottom: 0.5rem; }
.card1.style2 .access { padding-bottom: 0.25rem; } 
.card1.style2 .card-content { min-height: 160px; }
.card1.style2 .card-content dl dt { width: 90px; }
.card1.style2 .card-content dl dd { width: calc(100% - 90px);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card2 { display: block; }
.card2 figure { border: 1px solid #f0f0f0; }
.card2 .cats { padding: 1.5rem 0 0; }
.card2 .cats span { border: 1px solid #555; display: inline-block; margin-right: 4px; font-size: 14px; height: 25px; line-height: 25px; padding: 0 6px; }
.card2 .ttl { padding-top: 1rem; box-sizing: border-box; }
.card2:hover .center_all img { height: 105%; }

/* -------------------------------------------- events-slider */
.events-slider { background-color: #D0DDD6; padding: 4rem 0; }
.events-slider .head_style3 { padding-bottom: 1rem; }
.events-slider .slick-track { padding: 2rem 0; }
.events-slider .card1 { width: 360px !important; margin: 0 1rem; border-radius: 0.5rem; }
.events-slider .btn_wrap { padding-top: 3rem; }
.events-slider .btn_wrap .btn { font-size: 18px; }
.events-slider .slider_nav .slider_arw { background-color: #fff; border-color: #555; }
.events-slider .slider_nav .slider_arw::after { border-color: #555; }
.events-slider .slider_nav .slider_dots ul li { border: 1px solid #555; background-color: #fff; }
.events-slider .slider_nav .slider_dots ul li.slick-active {  background-color: #555; }

/* -------------------------------------------- /events-slider */

/* -------------------------------------------- pagers */

.page_navi2 { padding: 4rem 0 2rem; }
.page_navi2 .page-numbers { width: 40px; height: 40px; line-height: 40px; border-radius: 50%; margin: 0 0.25rem; text-align: center; font-weight: 600; font-size: 1rem; }
.page_navi2 .page-numbers.current { background-color: #006837; color: #fff; }
.page_navi2 .page-numbers.next { background: url(../img/common/arw.png) no-repeat center center; background-size: 100% auto; }

/* -------------------------------------------- box-shadow */

.slider_nav { padding-top: 2rem; }
.slider_nav .slider_arw { margin: 0 1rem; width: 40px; height: 40px; border: 1px solid #000; border-radius: 50%; cursor: pointer; }
.slider_nav .slider_arw::after { border-bottom: 2px solid #000; border-right: 2px solid #000;
    width: 10px;
    height: 10px;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto; 
    transform: translate(-2px, 0) rotate(-45deg); 
}
.slider_nav .slider_arw.prev { transform: rotate(-180deg); }
.slider_nav .slider_dots { margin: 0 1rem; }
.slider_nav .slider_dots ul { display: flex; }
.slider_nav .slider_dots ul li { width: 11px; height: 11px; border: 1px solid #000; border-radius: 50%; margin: 0 0.5rem; cursor: pointer; }
.slider_nav .slider_dots ul li.slick-active { background-color: #000; }
.slider_nav .slider_dots ul li button { display: none; }

.swiper-pagination { position: relative; z-index: 2; }
.swiper-pagination-bullet { width: 1px; height: 12px; margin: 0 0.5rem !important; background-color: #fff; border: 1px solid #555555; opacity: 1; }
.swiper-pagination-bullet-active { background-color: #555555; }

/* -------------------------------------------- form */
.screen-reader-response { text-align: center; }
.screen-reader-response ul { padding-top: 0.5rem; }
.screen-reader-response ul li { color: #CA0001; }

.wpcf7 { padding: 0; }
.wpcf7-form { padding: 1rem 0 0; }
.wpcf7 p { padding: 0.25rem 0; line-height: 180%; }
.wpcf7-not-valid-tip { font-size: 12px; color: #CA0001; padding-top: 0.25rem; }
.wpcf7-form-control-wrap { width: 100%; display: block; padding: 0.25rem 0 0.75rem; }
.wpcf7-form-control-wrap input[type="text"],
.wpcf7-form-control-wrap input[type="tel"],
.wpcf7-form-control-wrap input[type="email"],
.wpcf7-form-control-wrap input[type="date"],
.wpcf7-form-control-wrap input[type="number"],
.wpcf7-form-control-wrap select { border: 1px solid #DCDCDC; height: 60px; line-height: 60px; padding: 0 1rem; font-size: 16px; box-sizing: border-box;
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    border-radius: 0;
}
.wpcf7-form-control-wrap input { width: 100%; }
.wpcf7-form-control-wrap select { min-width: 120px; box-sizing: border-box; background-color: #fff; border-radius: 0; }
.wpcf7-form-control-wrap textarea { width: 100%; box-sizing: border-box; resize: vertical; padding: 0.5rem 1rem; border: 1px solid #DCDCDC; }
.wpcf7-form-control-wrap input[type="checkbox"],
.wpcf7-form-control-wrap input[type="radio"] { width: auto; }
.wpcf7-form .red { margin-left: 0.5rem; display: inline-block; font-size: 11px; padding: 0 0.25rem; height: 18px; line-height: 17px; color: #fff; background-color: #CA0001; }
.accept .wpcf7-form-control-wrap { display: inline-block; width: auto; }
.wpcf7-form .wpcf7-submit { margin: 2rem auto 0; color: #fff; border: 1px solid #C5B074; display: block; cursor: pointer;
    height: 70px; 
    line-height: 70px; 
    padding: 0 2rem;
    font-size: 18px;
    width: 100%;
    max-width: 280px;
    box-sizing: border-box;
    border-radius: 50px;
    background: url(../img/common/icn-arw.png) no-repeat 92% center;
    background-size: 25px 25px;
    background-color: #C5B074; 
}
.wpcf7-form .accept { font-size: 14px; }
.wpcf7-form .accept a { text-decoration: underline; }
.wpcf7-list-item { width: 100%; display: flex !important; margin: 0 !important; align-items: flex-start; padding: 0.375rem 0; }
.wpcf7-list-item input[type="checkbox"] { margin-top: 0.25rem; }
.wpcf7-list-item-label { line-height: 140%; padding-left: 0.5rem; }
.wpcf7-response-output { text-align: center; }
.wpcf7-validation-errors { color: #CA0001; padding-top: 1rem; }

.wpcf7-checkbox,
.wpcf7-radio { display: flex; flex-wrap: wrap; }
.wpcf7-checkbox .wpcf7-list-item,
.wpcf7-radio .wpcf7-list-item { padding-right: 1rem; min-width: 160px; width: auto; box-sizing: border-box; }

.wpcf7-form .col2 .wpcf7-list-item { min-width: 320px; }

.wpcf7-form .form-questionaire { padding: 4rem 0 2rem; }
.wpcf7-form .form-questionaire p { padding: 0.5rem 0; }
.wpcf7-form .form-questionaire .form-caption { padding: 0 0 2rem; font-size: 1.125rem; }

.wpcf7-form .row { padding-top: 1rem; display: flex; flex-wrap: wrap; align-items: center; }
.wpcf7-form .datepickers br { display: none; }
.wpcf7-form .row .col { display: flex; align-items: center; width: calc((100% - 145px) / 2); box-sizing: border-box; padding-right: 1rem; }
.wpcf7-form .row .col-cap { padding-right: 0.25rem; display: block; word-break: keep-all; }
.wpcf7-form .row .col.th { width: 145px; } 

.wpcf7-form-control-wrap[class*="your-store"] select option:first-child {
    color: #999;
}

.wpcf7-form .checkbox-seminars .wpcf7-list-item { flex-wrap: wrap; width: 100%; }
.wpcf7-form .checkbox-seminars .wpcf7-list-item-label { box-sizing: border-box; width: calc(100% - 30px); }


/* -------------------------------------------- footer */

.follow_bnr { display: none; }

.back_top { padding: 2rem 0 4rem; text-align: center; }
.back_top .btn_wrap .btn { height: 50px; line-height: 48px; padding: 0 2rem; border: 1px solid #297A55; box-sizing: border-box; min-width: 210px; }
.back_top .btn_wrap .btn::before { height: 101%; }

.f_banner { padding: 4rem 0; }
.f_banner ul li { width: 49%; margin: 0.75rem 0; }

.f_contact a { padding: 3rem 4%; box-sizing: border-box; width: 50%; color: #fff; }
.f_contact a .wrap { width: 100%; max-width: 550px; }
.f_contact a .label { font-size: 18px; }
.f_contact a .ttl { padding: 1rem 0 0; font-size: 2.25rem; }
.f_contact a .ttl span { display: inline-block; padding-left: 2.5rem; }
.f_contact a .ttl span::before { background-size: 100% auto; background-repeat: no-repeat; background-position: center center; top: 0; bottom: 0; margin: auto; }
.f_contact a .time { font-size: 11px; } 
.f_contact .green { background-image: url(../img/common/f-bg1.jpg?v=2); }
.f_contact .green .ttl { padding-top: 2rem; }
.f_contact .green .ttl span::before { width: 34px; height: 28px; background-image: url(../img/common/icn-message-white.png); left: 0; }
.f_contact .yellow { background-image: url(../img/common/f-bg2.jpg?v=3); }
.f_contact .yellow .ttl span { font-size: 3.125rem; letter-spacing: 2px; font-weight: 100; }
.f_contact .yellow .ttl span::before { width: 32px; height: 32px; background-image: url(../img/common/icn-phone-white.png); left: 0; }

footer { padding: 4rem 0 0; }
footer .f_logo { width: 320px; }
footer .f_nav ul { margin-left: 6rem; }
footer .f_nav ul:first-child { margin-left: 0; }
footer .f_nav ul li { padding-top: 1rem; padding-left: 2rem; }
footer .f_nav ul li.parent { padding-left: 0; }
footer .f_nav ul li:first-child { padding: 0; }
footer .f_nav ul li a { display: flex; align-items: center; font-size: 1rem; }
footer .f_nav ul li a:hover { color: #228d58; }
footer .f_nav ul li a span { display: inline-block; vertical-align: middle; }
footer .f_nav ul li a span b { font-weight: 600; }
footer .f_nav ul li a span::after { background-color: #228d58; bottom: 0; left: 0; width: 0%; transition: 0.5s; height: 1px; display: block; content: ''; }
footer .f_nav ul li a:hover span::after { width: 100%; }
footer .f_nav ul li .icon { width: 34px; }
footer .f_upper { padding-bottom: 3rem; }
footer .f_lower { padding: 2rem 0; border-top: 1px solid #DEDEDE; }

footer .address dl { padding-left: 5rem; }
footer .address dl:first-child { padding-left: 0; }
footer .address dl dt { font-size: 15px; }
footer .address dl dd { font-size: 12px; padding-top: 5px; }
footer .f_sns a { display: block; margin: 0 0.5rem; }
footer .f_sns a .icon { width: 32px; height: 32px; }
footer .copyright { padding-top: 2rem; font-size: 10px; }

.sc-insta { padding: 4rem 0 2rem; }
.sc-insta .head_style2 { padding: 0.5rem 0; }
.sc-insta .head_style2 .ttl { padding-left: 3.5rem; }
.sc-insta .head_style2 .ttl::before { width: 50px; height: 50px; top: 0; bottom: 0; margin: auto; background: url(../img/icons/icn-ig.png) no-repeat center center; background-size: 100% auto; }
.sc-insta .btn_wrap { position: absolute; top: 0; right: 0; }
.sc-insta .slider { padding: 2rem 0; }
.sc-insta .slider .slide { width: 216px; border: 1px solid #ddd; border-radius: 0.5rem; overflow: hidden; box-sizing: border-box; }

.filter { padding: 0.5rem 0; background-image: url(../img/common/bg2.jpg); color: #fff; }
.filter .row { padding: 1rem 0; font-size: 14px; border-top: 1px solid #618E71; }
.filter .row:first-child { border: none; }
.filter .row .th { width: 200px; align-items: flex-start; padding: 0.375rem 0; }
.filter .row .th span { padding-left: 0.5rem; font-weight: 600; }
.filter .row .th .icon { width: 1.25rem; }
.filter .row .th .ttl { width: 100%; }
.filter .row .th .ttl::after { content: ':'; right: 0; bottom: 0; top: 0; }
.filter .row .td { padding: 0 1rem; box-sizing: border-box; width: calc(100% - 200px); } 
.filter .row .td .cell { padding: 0.375rem 1rem; box-sizing: border-box; min-width: 160px; }
.filter .row .td .cell label { display: block; overflow: hidden; cursor: pointer; }
.filter .row .td .cell label input { opacity: 0; position: absolute; left: -100%; }
.filter .row .td .cell label p { padding-left: 1.5rem; }
.filter .row .td .cell label p::before { width: 1rem; height: 1rem; background: url(../img/common/unchecked.png) no-repeat center center; background-size: 100% auto; top: 0; bottom: 0; left: 0; }
.filter .row .td .cell label input:checked + p { color: #C5B074; }
.filter .row .td .cell label input:checked + p::before { background-image: url(../img/common/checked.png); }
.filter .row .td .group { padding: 0 1rem; }
.filter .row .td .group .cell { padding: 0 1rem; min-width: 0; }

.list_empty { padding: 10rem 0; font-size: 2rem; }

/* -------------------------------------------- login */

#login_page { background-color: #eeede9; text-align: center; }
#login_page .headline { font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS Mincho", serif; font-size: 4rem; padding-bottom: 2rem; }
#login_page .login_form_wrap { padding: 6rem 0; width: 94%; max-width: 640px; margin: auto; }
#login_page .login_form_wrap .input_field { height: 70px; line-height: 70px; padding: 0 1rem; width: 100%; box-sizing: border-box; }
#login_page .login_form_wrap .email { padding-bottom: 2rem; }
#login_page .login_form_wrap .remember { padding: 2rem 0; }
#login_page .login_form_wrap .submit input { font-size: 1.25rem; background-color: #ad9a65; color: #fff; height: 70px; line-height: 70px; width: 100%; max-width: 420px; border: none; appearance: none; border-radius: 50px; }

#lost_password { display: none; }


.mainte_overlay { display: none; position: fixed; width: 100%; height: 100%; z-index: 1000; }
.mainte_overlay img { position: relative; z-index: 2; max-width: 700px; width: 88%; }
.mainte_overlay::after { background-color: #000; opacity: 0.8; top: 0; left: 0; width: 100%; height: 100%; }
.maintenance_mode { overflow: hidden; }
.maintenance_mode .mainte_overlay { display: flex; }

@media screen and (min-width: 767px) {
    .pc-none { display: none; }
}

/* -------------------------------------------- tablet to pc */

@media screen and (min-width: 1099) {
    .services .slider .swiper-wrapper { transform: unset; }
}

/* -------------------------------------------- tablet */

@media screen and (max-width: 1100px) {

    .tablet-none { display: none; }

    header { padding: 1rem 2%; }
    header .logo { width: 180px; }
    header .nav_top_col1 { padding: 0; }
    header .nav_top_col1 a { margin: 0 0.25rem; }
    header .nav_top_col1 a .icon { margin-right: 0.25rem; width: 20px; }
    header .nav_top .btn_wrap .btn.style1 { padding: 0.75rem 1rem; font-size: 14px; }

    header .nav .menu_btn { padding: 0; padding-left: 0.5rem; }
    header .nav .menu_btn a { width: 40px; }
    header .nav_bot a .icon { width: 25px; }
    header .nav_bot ul li { padding: 0 0.5rem; font-size: 14px; }

    .common_tel { font-size: 2rem; }
    .common_time { font-size: 11px; }

    main { padding-top: 86px; }

    .bubble_wrap .bubble p { font-size: 1.5rem; }

    .head_style2 .ttl { font-size: 1.5rem; padding: 0.25rem 0; padding-left: 1rem; }
    .head_style2 .ttl::before { width: 0.375rem; }

    .head_style3 .ttl { font-size: 2rem; }
    .head_style3 .icon { width: 1.75rem; }

    .head_style4 { padding: 1.25rem 1.5rem; }
    .head_style4 .ttl { font-size: 2.25rem; }

    .fv_style2 { height: 500px; }
    .fv_style2 .fv_txt h2 { font-size: 3rem; }

    .card1.style2 { width: 320px; }
    .card1.style2 .date,
    .card1.style2 .access { font-size: 14px; }
    .card1.style2 .card-content { padding-bottom: 0.5rem; }
    .card1.style2 .card-content dl dt,
    .card1.style2 .card-content dl dd { font-size: 13px; }
    .card1.style2 .card-content dl dt { width: 72px; }
    .card1.style2 .card-content dl dd { width: calc(100% - 82px); -webkit-line-clamp: 1; }

    .f_contact a .ttl { font-size: 1.75rem; }
    .f_contact .green .ttl span::before { width: 30px; height: 24px; }
    .f_contact .yellow .ttl span { font-size: 2.5rem; }
    .f_contact .yellow .ttl span::before { width: 28px; height: 28px; }

    footer { padding-top: 3rem; }
    footer .f_logo { width: calc(100% - 490px); max-width: 320px; }
    footer .f_nav ul { margin-left: 2rem; }
    footer .f_nav ul li { padding-top: 0.75rem; }
    footer .f_nav ul li a { font-size: 14px; }

    footer .f_lower { padding: 2rem 0 1rem; }
    footer .address { display: block; } 
    footer .address dl { display: block; padding: 1rem 0 0; }
    footer .address dl:first-child { padding-top: 0; }
    footer .copyright { padding-top: 1rem; }
}

/* -------------------------------------------- sp */

@media screen and (max-width: 767px) {
    .sp-block { display: block; }
    .sp-none { display: none; }
    html,
    body { font-size: 14px; }

    header { padding: 1rem 3%; }

    main { padding-top: 69px; }

    .bubble_wrap .bubble { padding: 1rem; box-sizing: border-box; width: 88%; }
    .bubble_wrap .bubble p { font-size: clamp(1rem, 4vw, 2rem); }


    .menu { overflow: auto; }
    .menu_fv { width: 100%; padding-top: 50%; height: 0; background: url(../img/common/menu-fv-sp.jpg) no-repeat center center; background-size: cover; }
    .menu_wrap { width: 100%; height: auto; padding-bottom: 2rem; }
    .menu_inner { padding: 3rem 6%; }
    .menu_inner .flex { padding-top: 1rem; }
    .menu_inner ul { width: 100%; }
    .menu_inner h3 img { width: 120px; }
    .menu_inner ul li { margin-top: 1rem; }
    .menu_inner ul li a .icon { font-size: 2.2rem }
    .menu_inner ul li a { padding: 1rem 1rem; font-size: 1rem; }
    .menu_sns { position: relative; width: 100%; padding-top: 2rem !important; }

    .card1 .ttl { font-size: 1rem; padding-bottom: 0; margin-bottom: 0.375rem;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .card1 p.cat span { font-size: 10px; height: 18px; line-height: 18px; padding: 0 0.25rem; display: none; }
    .card1 p.cat span:first-of-type { display: inline-block; }

    .card1 .ttl_wrap { padding: 0.75rem 1rem; min-height: 112px; }
    .card1 .row { padding: 0.375rem 0.75rem; }
    .card1 .row p { font-size: 12px; }
    .card1 .row p .icon { width: 16px; }
    .card1.style2 { width: 250px; }
    .card1.style2 .card-content { min-height: 105px; }

    .card2 .cats { padding-top: 0.75rem; }
    .card2 .cats span { padding: 0 4px; font-size: 11px; height: 18px; line-height: 18px; }
    .card2 .ttl { font-size: 13px; padding-top: 0.5rem; }

    .event_ended small { font-size: 1rem; }

    .slider_nav .slider_arw { width: 30px; height: 30px; margin: 0 0.5rem; }
    .slider_nav .slider_dots ul li { width: 10px; height: 10px; }
    .slider_nav .slider_arw::after { width: 7px; height: 7px; }

    .swiper-pagination-bullet { width: 10px; height: 10px; }

    .btn_wrap .btn.style2 { height: 50px; line-height: 50px; }
    .btn_wrap .btn.style2::after { width: 20px; height: 20px; }
    .btn_wrap .btn.style2 .arw { width: 20px; height: 20px; }

    .btn_wrap .btn.style3:hover .arw { width: 20px; height: 20px; }
    .btn_wrap .btn.style3 .arw::after { width: 20px; height: 20px; background-size: 100% auto; }
    .btn_wrap .btn.style3:hover .arw::after { width: 20px; }

    .btn_wrap .btn.style3 .arw { width: 16px !important; height: 16px !important; }
    .btn_wrap .btn.style3 .arw::after { left: 0; opacity: 1; height: 16px !important; width: 16px !important; }

    .btn_wrap .btn.gmap { height: 45px; line-height: 42px; font-size: 13px; }

    .btn_wrap .btn.style2.reversed { min-width: 280px; font-size: 14px; padding: 0 2rem 0 3rem; }

    .inner { width: 88%; }

    .head_style1 { margin-left: 0; display: block; text-align: center; padding: 0 0 1rem; }
    .head_style1 .ttl { justify-content: center; font-size: 2.25rem; padding: 0 0 1rem; position: relative; }
    .head_style1 .ttl::after { width: 30px; height: 2px; bottom: 0; left: 0; right: 0; margin: auto; background-color: #fff; content: ''; display: block; position: absolute; }
    .head_style1 .ttl .icon { width: 2.75rem; }
    .head_style1 .sub { padding: 1rem 0 0; border: none; font-size: 13px; }

    .head_style3 .ttl { font-size: 1.75rem; padding: 0.5rem 0 0; }

    .head_style4 .ttl { font-size: 1.875rem; line-height: 140%; } 

    .fv_style1 { padding: 2rem 0; }
    .fv_style1 .ttl .icon { width: 2rem; }
    .fv_style1 .ttl span { font-size: 1.75rem; }
    .fv_style1 figure { padding-top: 34%; }

    .fv_style2 { height: 57vw; padding: 0; }
    .fv_style2 .fv_txt p { font-size: 1.25rem; }
    .fv_style2 .fv_txt h2 { font-size: 2.5rem; padding-top: 0; }
    .fv_style2 .fv_txt p .icon { width: 2.25rem; }
    .fv_style2::after { opacity: 0.4; }

    .fv_style3 { padding: 3rem 0; }
    .fv_style3 .icon { width: 2.5rem; }
    .fv_style3 h2 { font-size: 2rem; }

    /* -------------------------------------------- events-slider sp */
    .events-slider .card1,
    .events-slider .card1.style2 { width: 230px !important; margin: 0 0.5rem; }
    .events-slider .card1 .date,
    .events-slider .card1 .access { font-size: 12px; }
    .events-slider .slick-track { padding: 1rem 0; }
    .events-slider .slider_nav .slider_dots ul li { border: 1px solid #555; }
    .events-slider .btn_wrap .btn { font-size: 14px; }
    /* -------------------------------------------- /events-slider sp */

    .filter .row { font-size: 13px; }
    .filter .row .th .icon { width: 1rem; }
    .filter .row .th span { padding-left: 0.25rem; }
    .filter .row .th .ttl::after { display: none; }
    .filter .row .td { width: 100%; padding: 0; }
    .filter .row .td .cell { padding: 0.375rem 0.125rem; font-size: 13px; }
    .filter .row .td .cell label span { display: inline-block; line-height: 120%; }
    .filter .row .td .cell label p::before { transform: translateY(1px); }
    .filter .row .td .group { padding: 0; }
    .filter .row .td .group .cell { padding: 0.375rem 0.25rem; }
    

    .page_navi2 { padding: 2rem 0 0; }
    .page_navi2 .page-numbers { width: 35px; height: 35px; line-height: 35px; }
    .page_navi2 .page-numbers.next { background-image: url(../img/common/arw-sp.png); }

    /* -------------------------------------------- form sp */
    .wpcf7-form-control-wrap input[type="text"],
    .wpcf7-form-control-wrap input[type="tel"],
    .wpcf7-form-control-wrap input[type="email"],
    .wpcf7-form-control-wrap input[type="date"],
    .wpcf7-form-control-wrap input[type="number"],
    .wpcf7-form-control-wrap select { height: 50px; line-height: 50px; min-width: 170px; }
    .wpcf7-form-control-wrap .custom-date { width: 170px; }
    .wpcf7-list-item-label { padding-left: 0.5rem; }
    .wpcf7-form .accept { font-size: 13px; }
    
    .wpcf7-form .accept label { display: inline-block; padding-top: 1rem; }
    .wpcf7-form .accept label span { padding: 0; }

    .wpcf7-form .wpcf7-submit { height: 50px; line-height: 50px; min-width: 280px; font-size: 1rem; background-size: 20px 20px; }
    .wpcf7-form .form-questionaire { padding: 2rem 0; } 
    .wpcf7-form .form-questionaire .form-caption { padding-bottom: 1rem; }
    .wpcf7-list-item { font-size: 13px; }

    .wpcf7-form .row .col { font-size: 13px; width: 100%; }
    .wpcf7-form .row .col.th { width: 100%; }

    .wpcf7-checkbox .wpcf7-list-item, 
    .wpcf7-radio .wpcf7-list-item { width: 50%; min-width: 0; }
 
    /* -------------------------------------------- /form sp */

    .f_banner { padding: 1rem 0; }
    .f_banner ul li { width: 100%; }

    .f_contact a { width: 100%; display: block; padding: 1.75rem 4%; }
    .f_contact a .label { font-size: 1.25rem; }
    .f_contact a .ttl { padding-top: 0.5rem !important; }
    .f_contact .yellow .ttl { line-height: 120%; }
    .f_contact .yellow .ttl span { font-size: 2.75rem; }
    .f_contact .green .ttl { font-size: 2rem; }
    .f_contact a .wrap { max-width: none; }
    .f_contact a .time { font-size: 1rem; }
    .f_contact .yellow .ttl span::before { width: 25px; height: 25px; }
    .f_contact a .ttl span { padding-left: 2.25rem; }
    
    footer { padding-bottom: 60px; }
    footer .f_logo { display: block; width: 220px; margin-left: 6%; }
    footer .f_upper  { padding-bottom: 0; }
    footer .f_upper .inner { width: 100%; }
    footer .f_nav { margin-top: 2rem; }
    footer .f_nav ul { margin: 0 !important; }
    footer .f_nav ul:nth-child(2n) { padding-bottom: 1rem; }
    footer .f_nav ul li.parent { border-top: 1px solid #E8E6E2; }
    footer .f_nav ul li { padding: 0; }
    footer .f_nav ul li.f_service { padding: 0.75rem 4%;}
    footer .f_nav ul li a { padding: 0.5rem 4%; padding-left: 3em; position: relative; }
    footer .f_nav ul li.parent a { padding: 1rem 4%; }
    footer .f_nav ul li .icon { width: 25px; }
    footer .f_nav ul li a::after { transform: rotate(-45deg); position: absolute; right: 6%; top: 0; bottom: 0; margin: auto; content: ''; display: block;
        width: 6px;
        height: 6px;
        border-right: 1px solid #56595A;
        border-bottom: 1px solid #56595A;
    }
    
    footer .copyright { padding-top: 2rem; }
    footer .copyright p:first-child { padding-bottom: 1rem; }

    .f_sns { padding-top: 2rem; justify-content: flex-start; }
    .f_sns a:first-child { margin-left: 0; }
    footer .f_sns a .icon { width: 25px; height: 25px; }

    .sc-insta { padding: 3rem 0; overflow: hidden; }
    .sc-insta .btn_wrap { padding-top: 2rem; position: relative; text-align: center; }
    .sc-insta .slider { overflow: visible; padding: 1rem 0; }
    .sc-insta .slider .slide { width: 140px; }
    .sc-insta .head_style2 .ttl { padding-left: 2.5rem; }
    .sc-insta .head_style2 .ttl::before { width: 30px; height: 30px; } 
    
    .follow_bnr { display: flex; position: fixed; bottom: 0; left: 0; width: 100%; background-color: #fff; z-index: 10; }
    .follow_bnr a { width: 50%; height: 60px; box-sizing: border-box; text-align: center; }
    .follow_bnr-form { font-size: 17px; }
    .follow_bnr-form span { display: block; padding-left: 0.25rem; padding-bottom: 0.25rem; }
    
    .follow_bnr-tel .tel { font-size: 22px; line-height: 100%; padding-bottom: 0.25rem; }
    .follow_bnr-tel .tel .icon { width: 17px; }
    .follow_bnr-tel .tel span { padding-left: 0.25rem; }
    .follow_bnr-tel .time { font-size: 9px; }
}