@charset "UTF-8";
/*!
Theme Name: ibuku
Description: ibuku
Author: seeds
*/
@import url("./sanitize.css");
@import url(https://fonts.googleapis.com/css?family=Lato:400);
@import url(https://fonts.googleapis.com/css?family=Lato:700);
@import url(https://fonts.googleapis.com/earlyaccess/notosansjp.css);
/* --- media query --------------------------------------------------- */
/* IE10以上 */
/* ---------------------------------------------------------------- *
  全体の設定
 * ---------------------------------------------------------------- */
body {
  color: #1a1a1a;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.05em; }

img {
  max-width: 100%;
  height: auto; }

p {
  margin: 1.2em 0; }

ul,
ol,
dl {
  margin: 0;
  padding: 0; }

ul li {
  margin: 0;
  padding: 0;
  list-style-type: none; }

@media screen and (max-width: 640px) {
  body {
    color: #333;
    font-size: 12px;
    line-height: 1.6; } }
/* --- 表示非表示設定 --------------------------------------------------- */
.hide {
  display: none; }

.pc {
  display: block; }

.smp {
  display: none; }

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

  .smp {
    display: block; } }
/* --- フォント設定 --------------------------------------------------- */
body {
  font-family: Lato, "Noto Sans JP", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.mincho {
  font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif; }

hr.line {
  margin: 60px 1em;
  border: 0;
  height: 1px;
  background-image: -webkit-linear-gradient(left, #f0f0f0, #ccc, #f0f0f0);
  background-image: -moz-linear-gradient(left, #f0f0f0, #ccc, #f0f0f0);
  background-image: -ms-linear-gradient(left, #f0f0f0, #ccc, #f0f0f0);
  background-image: -o-linear-gradient(left, #f0f0f0, #ccc, #f0f0f0); }

/* --- リンク設定 --------------------------------------------------- */
header a,
main.contents a,
footer a {
  color: #1a1a1a;
  transition: 0.6s;
  text-decoration: none; }

header a:visited,
main.contents a:visited {
  color: #1a1a1a; }

header a:hover,
main.contents a:hover,
footer a:hover {
  opacity: 0.7 !important;
  color: #1a1a1a; }

.btn_01 {
  display: block;
  margin: 0 0 0.5em;
  padding: 0.3em 1.4em;
  font-size: 18px;
  color: #fff;
  letter-spacing: 0.2em;
  border: 3px solid #fff;
  text-align: center;
  transition: 0.7s; }

.btn_01:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1); }

.btn_02 {
  display: block;
  margin: 0 0 0.5em;
  padding: 0.3em 1.4em;
  width: 80%;
  font-size: 18px;
  color: #fff;
  letter-spacing: 0.2em;
  border: 2px solid #fff;
  border-radius: 6px;
  text-align: center;
  transition: 0.7s; }

.btn_02:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1); }

.btn_02.pc {
  display: block; }

.btn_02.smp {
  display: none; }

@media screen and (max-width: 640px) {
  .footer_info a.btn_01 {
    margin: 1.2em auto;
    padding: 0.6em 1em;
    font-size: 13px;
    border: 2px solid #fff; }

  .btn_02 {
    margin: 0.7em 0;
    padding: 0.3em 1.4em;
    width: 100%;
    font-size: 18px;
    color: #fff;
    letter-spacing: 0.2em;
    border: 2px solid #fff;
    border-radius: 6px;
    text-align: center;
    transition: 0.7s; }

  .btn_02.pc {
    display: none; }

  .btn_02.smp {
    display: block; } }
/* --- flexbox用空ボックス設定 --------------------------------------------------- */
.empty {
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important; }

/* --- オンマウス設定 --------------------------------------------------- */
.scale {
  display: block;
  overflow: hidden;
  border: none !important; }

.scale img {
  -moz-transition: -moz-transform 3s linear;
  -webkit-transition: -webkit-transform 3s linear;
  -o-transition: -o-transform 3s linear;
  -ms-transition: -ms-transform 3s linear;
  transition: transform 3s linear; }

.scale img:hover {
  -webkit-transform: scale(1.2);
  -moz-transform: scale(1.2);
  -o-transform: scale(1.2);
  -ms-transform: scale(1.2);
  transform: scale(1.2); }

a.scale:hover {
  opacity: 1 !important; }

/* --- 見出し設定 --------------------------------------------------- */
.h_01 {
  font-family: "Prata", serif;
  margin: 0.5em auto 0.3em;
  text-align: center;
  font-size: 64px;
  font-weight: bold;
  letter-spacing: 0.2em;
  color: #bbb6b2; }

.h_02 {
  margin: 1.2em auto 0.6em;
  font-size: 24px;
  font-weight: normal;
  letter-spacing: 0.15em;
  text-align: center; }

.h_02:after {
  content: " ";
  display: block;
  margin: 0.8em auto 0.6em;
  width: 40px;
  height: 2px;
  background: #000; }

.h_03 {
  font-family: "Prata", serif;
  margin: 2em auto 1em;
  text-align: center;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.2em; }

.h_04 {
  margin: 1.2em auto 0.6em;
  font-size: 26px;
  font-weight: normal;
  letter-spacing: 0.15em; }

.h_05 {
  font-weight: normal;
  font-size: 18px; }

.h_06 {
  font-weight: normal;
  font-size: 24px; }

.label_01 {
  display: inline-block;
  margin: 0 0 0 8px;
  padding: 3px 6px;
  line-height: 1;
  font-size: 16px;
  color: #fff;
  background-color: #323232; }

.label_02 {
  display: inline-block;
  margin: 21px 0 0;
  padding: 6px 12px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  background-color: #a78a57; }

.h_faic {
  display: flex;
  align-items: center; }

@media screen and (max-width: 640px) {
  .h_01 {
    margin: 40px auto 40px;
    font-size: 24px; }

  .label_02 {
    margin: 24px 0 0;
    padding: 3px 12px;
    font-size: 16px;
    font-weight: bold; } }
/* ---------------------------------------------------------------- *
  カラムの設定
 * ---------------------------------------------------------------- */
.container {
  position: relative;
  overflow: hidden; }
  @media (max-width: 834px) {
    .container {
      padding-top: 0; } }

main.contents {
  position: relative; }

.contents_box {
  margin: auto;
  padding: 0 1em 160px;
  max-width: 1000px; }

@media screen and (max-width: 833px) {
  .container {
    padding-top: 50px !important; }

  .contents_box {
    padding: 0 1em 30px; } }
/* ---------------------------------------------------------------- *
  ヘッダーの設定
 * ---------------------------------------------------------------- */
header {
  padding: 0.3em 0 0.6em;
  background-color: #dfdfdf;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  transition: 0.7s; }
  @media (max-width: 834px) {
    header {
      padding: 0;
      width: 100%;
      height: 68px;
      position: fixed;
      top: 0;
      z-index: 10;
      background: #fff;
      border-bottom: 1px solid #dedede; } }

header a {
  transition: 0.6s;
  text-decoration: none; }

header a:hover {
  opacity: 0.6; }

.header {
  padding: 0;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  transition: 0.7s; }
  @media (max-width: 834px) {
    .header {
      width: 100%;
      height: 68px;
      position: fixed;
      top: 0;
      z-index: 10;
      background: #fff;
      border-bottom: 1px solid #dedede; } }

.header a {
  transition: 0.6s;
  text-decoration: none; }

.header a:hover {
  opacity: 0.6; }

.gnav {
  margin: auto;
  padding: 0 1em;
  max-width: 1100px;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 834px) {
    .gnav {
      margin: auto;
      padding: 0;
      max-width: 1100px;
      display: block; } }

.logo {
  margin: 0;
  padding: 0;
  max-width: 180px;
  transition: 0.7s; }
  @media (max-width: 834px) {
    .logo {
      display: flex;
      justify-content: center;
      align-items: center;
      margin: 0;
      padding-top: 0.1em;
      background: #fff;
      position: relative;
      z-index: 10;
      width: 100%;
      max-width: 100%; } }

.logo img {
  width: 100%; }
  @media (max-width: 834px) {
    .logo img {
      width: 140px; } }

.nav_list {
  display: flex;
  align-items: center;
  justify-content: space-between; }
  @media (max-width: 834px) {
    .nav_list {
      background-color: #fff;
      position: absolute;
      width: 100%;
      top: -300px;
      left: 0;
      z-index: 7;
      transition: 0.7s;
      flex-wrap: wrap;
      border-bottom: 1px solid #dedede; } }

@media (max-width: 834px) {
  .nav_list.showUp {
    top: 50px; } }

@media (max-width: 834px) {
  .nav_list li {
    width: 33.33333%;
    text-align: center;
    border-right: 1px solid #dedede;
    border-top: 1px solid #dedede; } }

@media (max-width: 834px) {
  .nav_list li:nth-child(7),
  .nav_list li:nth-child(8) {
    width: 50%; } }

.nav_list li a {
  display: block;
  margin: 0 1.3em;
  font-size: 14px;
  letter-spacing: 0.1em; }
  @media (max-width: 834px) {
    .nav_list li a {
      margin: 1em auto;
      outline: none !important; } }

.sns_nav {
  margin: 180px 2em;
  padding: 1em 5em;
  border-top: 1px solid #808080;
  border-bottom: 1px solid #808080;
  display: flex;
  justify-content: space-around; }

.sns_nav li img {
  width: 18px; }

.gnavi {
  margin: auto;
  max-width: 1280px;
  display: flex;
  align-items: center;
  padding: 0; }
  @media (max-width: 834px) {
    .gnavi {
      max-width: 1100px;
      display: block; } }

.navi_logo {
  margin: 0 1em 0 0;
  padding: 0;
  max-width: 230px;
  transition: 0.7s; }
  @media (max-width: 834px) {
    .navi_logo {
      display: flex;
      justify-content: center;
      align-items: center;
      margin: 0 0.5em;
      padding-top: 0.1em;
      background: #fff;
      position: relative;
      z-index: 10;
      width: 100%;
      max-width: 150px; } }

.navi_logo img {
  width: 100%; }

.navi_list {
  max-width: 620px;
  width: 90%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto; }
  @media (max-width: 834px) {
    .navi_list {
      padding: 0;
      flex-wrap: wrap;
      border: none; } }

.navi_list li {
  text-align: center; }
  @media (max-width: 834px) {
    .navi_list li {
      width: 33.33333%;
      text-align: center;
      border: none; } }

@media (max-width: 834px) {
  .navi_list li:nth-child(3n) {
    border-right: none; } }

.navi_list li a {
  display: block;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-align: center; }
  @media (max-width: 834px) {
    .navi_list li a {
      margin: 3px auto;
      outline: none !important;
      text-align: left;
      font-size: 10px; } }

.header_room_list_box ul li {
  text-align: center;
  border: 1px solid #000;
  border-radius: 4px;
  position: relative;
  letter-spacing: 2px;
  margin-right: 6px; }
  @media (max-width: 834px) {
    .header_room_list_box ul li {
      margin: 3px 0;
      width: 32%; } }

.header_room_list_box ul li a {
  display: inline-block;
  line-height: 1;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 0 7px;
  width: 96px;
  color: #1a1a1a; }
  @media (max-width: 834px) {
    .header_room_list_box ul li a {
      width: 100%;
      font-size: 10px;
      padding: 4px 0; } }

.header_room_list_box ul li span {
  display: block;
  padding-top: 4px;
  font-size: 10px;
  letter-spacing: 0.02em;
  line-height: 1; }

.header_room_list_box ul li a:hover {
  background-color: #1a1a1a;
  color: #fff;
  transition: 0.6s; }

.header_room_list {
  margin-top: 0.3em;
  display: flex; }
  @media (max-width: 834px) {
    .header_room_list {
      flex-wrap: wrap;
      justify-content: space-between; } }

.header_room_list_h_anex {
  width: 202px;
  height: 41px;
  border: none !important;
  display: flex;
  align-items: center;
  letter-spacing: 0.3em;
  font-size: 18px; }
  @media (max-width: 834px) {
    .header_room_list_h_anex {
      width: 100% !important;
      height: auto; } }

.header_room_list_h_main {
  width: auto;
  height: 41px;
  border: none !important;
  display: flex;
  align-items: center;
  letter-spacing: 0.3em;
  font-size: 18px; }
  @media (max-width: 834px) {
    .header_room_list_h_main {
      width: 100% !important;
      height: auto; } }

.header_room_list_h_anex span,
.header_room_list_h_main span {
  display: inline-block !important;
  line-height: 1;
  margin: 0 0 0 1em;
  padding: 2px 8px 4px;
  font-weight: bold;
  color: #fff;
  background-color: #ab8955; }

.header_main_build {
  margin-left: 10px; }

.icon_header_tel {
  display: none; }

.gnavi_navi_block {
  top: 0;
  position: absolute;
  right: -100%;
  visibility: hidden;
  opacity: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.9);
  transition: 0.45s; }
  @media (max-width: 834px) {
    .gnavi_navi_block {
      top: 50px; } }

.gnavi_navi_block.showUp {
  top: 0;
  right: 0;
  visibility: visible;
  opacity: 1;
  transition: 0.45s; }
  @media (max-width: 590px) {
    .gnavi_navi_block.showUp {
      top: 50px; } }

.header_annex {
  margin: 100px auto 30px;
  padding: 0;
  border: none;
  width: 90%;
  max-width: 620px; }
  @media (max-width: 834px) {
    .header_annex {
      margin: 50px auto 20px;
      padding: 1.2em 0;
      border-bottom: 1px solid #ccc; } }
  @media (max-width: 590px) {
    .header_annex {
      margin: 0 auto 10px;
      padding: 10px 0; } }

.header_main_build {
  margin: 0 auto 50px;
  border-bottom: 1px solid;
  padding-bottom: 30px;
  width: 90%;
  max-width: 620px; }
  @media (max-width: 834px) {
    .header_main_build {
      margin: 0 auto 10px;
      padding-bottom: 10px; } }

.header_sns_nav {
  display: flex;
  align-items: center;
  margin: 30px auto;
  width: 90%;
  max-width: 620px;
  position: relative; }
  @media (max-width: 590px) {
    .header_sns_nav {
      margin: 10px auto; } }

.header_sns_nav .lang {
  display: flex;
  flex-wrap: nowrap;
  position: absolute;
  right: 0; }

.header_sns_nav .lang dd {
  margin: 0 auto; }

.header_sns_nav .lang dd:first-child:after {
  content: '｜'; }

.header_sns_nav img {
  display: block;
  margin: 0 0.6em;
  width: 21px;
  height: 21px; }

@media (max-width: 590px) {
  .icon_header_tel {
    display: block;
    width: 28px;
    height: 28px;
    position: absolute;
    top: 10px;
    right: 68px; } }

@media screen and (max-width: 640px) {
  header {
    height: 50px; }

  .header {
    height: 50px; } }
/* ---------------------------------------------------------------- *
  フッターの設定
 * ---------------------------------------------------------------- */
footer {
  padding: 1em 1em 80px;
  color: #fff;
  background-color: #333; }

.footer_info p {
  margin: 0;
  padding: 0.6em 0; }

.footer_wp {
  overflow: hidden;
  margin: auto;
  padding: 1em;
  max-width: 1000px; }

.footer_info {
  width: 16%;
  float: right;
  text-align: right; }

.footer_item {
  width: 50%;
  float: left; }

.footer_logo {
  width: 240px; }

.bottom_nav {
  font-size: 14px;
  letter-spacing: 0.1em;
  display: flex; }

.bottom_nav li {
  margin: 0 0.5em 0 0;
  padding: 0 0.5em 0 0; }

.bottom_nav li img {
  height: 1em; }

.bottom_sns {
  font-size: 14px;
  letter-spacing: 0.1em;
  display: flex;
  margin-top: 30px; }
  @media (max-width: 590px) {
    .bottom_sns {
      justify-content: space-around;
      width: 200px;
      margin: 0 auto;
      align-items: center; } }

.bottom_sns li {
  margin: 0 1em 0 0;
  padding: 0 1em 0 0;
  display: flex;
  align-items: flex-end; }

.bottom_sns li img {
  display: block;
  height: 2.4em;
  width: auto; }

.bottom_sns .bnr_tripadvisor {
  margin-top: 0 !important; }

.bottom_sns .bnr_tripadvisor img {
  height: 4em; }

footer p.copy {
  padding: 0.5em 0; }

.tel {
  color: #fff !important; }

.bottom_cta {
  position: fixed;
  bottom: 0;
  right: 0;
  display: flex;
  width: 460px;
  border-top: 1px solid #fff;
  z-index: 5; }

.bottom_cta > * {
  width: 50%;
  border-left: 1px solid #fff; }

.bottom_cta > * a {
  display: block;
  padding: 0.7em 1em;
  text-align: center;
  color: #fff !important;
  background-color: #333;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: 0.7s;
  line-height: 1;
  position: relative;
  overflow: hidden; }

.bottom_cta > * a:hover {
  opacity: 0.7; }

.cta_tel:before {
  position: absolute;
  top: 7px;
  left: 11%;
  content: " ";
  display: inline-block;
  margin-right: 0.4em;
  width: 17px;
  height: 14px;
  background-image: url(./images/icon_tel.svg);
  background-size: contain;
  background-repeat: no-repeat; }

.cta_mail:before {
  position: absolute;
  top: 7px;
  left: 24%;
  content: " ";
  display: inline-block;
  margin-right: 0.4em;
  width: 17px;
  height: 14px;
  background-image: url(./images/icon_mail.svg);
  background-size: contain;
  background-repeat: no-repeat; }

.bnr_tripadvisor {
  display: block;
  margin: 2em 0 0; }

.float_cta_block {
  position: fixed;
  bottom: 0;
  right: 0;
  display: flex;
  align-items: center;
  width: 100%;
  background-color: #802228;
  color: #fff;
  border-top: 1px solid #fff;
  z-index: 5; }
  @media (max-width: 590px) {
    .float_cta_block {
      display: flex; } }

@media (max-width: 590px) {
  .float_cta_block.noactive {
    display: flex !important; } }

@media screen and (min-width: 999px) {
  .float_cta_block.noactive {
    display: none !important; } }
.float_cta_block > * {
  text-align: center; }

.float_cta_block > *:nth-child(1) {
  margin: 0;
  padding: 0;
  line-height: 1;
  width: 40%; }

.float_cta {
  display: flex;
  width: 60%; }

.float_cta > * {
  width: 50%;
  font-weight: bold;
  letter-spacing: 0.1em; }

.go_to_top {
  display: block;
  width: 32px;
  height: 32px;
  position: fixed;
  right: 20px;
  bottom: 80px;
  z-index: 5;
  text-decoration: none;
  color: #000; }

.footer_yoyaku {
  font-weight: bold;
  font-size: 18px; }

@media screen and (min-width: 834px) {
  .float_cta_block {
    display: none !important; } }
@media screen and (max-width: 833px) {
  .float_cta_block.noactive {
    display: flex !important;
    padding: 20px 0; }

  .float_cta_block > * {
    text-align: center; }

  .float_cta_block > *:nth-child(1) {
    margin: 0;
    padding: 0;
    line-height: 1;
    font-size: 16px;
    font-weight: 500;
    width: 100%; }

  .float_cta {
    margin: 0 auto;
    display: flex;
    justify-content: space-around;
    width: 90%; }

  .float_cta > * {
    width: 46%;
    font-weight: bold;
    letter-spacing: 0.1em; }

  .float_cta > * .btn_reserve {
    margin-top: 0;
    padding: 0;
    background: #D25945;
    width: 100%; } }
@media screen and (max-width: 640px) {
  footer {
    padding: 1em 1em 86px; }

  .footer_item,
  .footer_info {
    width: 100%;
    float: none; }

  .footer_info p {
    margin: 0 0 2em 0;
    text-align: center; }

  .footer_info_text_sp {
    text-align: left !important;
    font-size: 11px; }

  .footer_logo {
    margin: 2em auto;
    width: 240px; }

  .footer_yoyaku.smp {
    text-align: left !important;
    font-size: 14px; }

  .bottom_nav {
    justify-content: center; }

  .bottom_nav li {
    margin: 0;
    padding: 0 1em; }

  .bottom_sns li {
    margin: 0 10px 0 0;
    padding: 0; }

  .bottom_sns li img {
    height: 1.8em; }

  .bottom_sns .bnr_tripadvisor {
    margin-top: 0 !important; }

  .bottom_sns .bnr_tripadvisor img {
    height: 2.4em; }

  footer p.copy {
    position: absolute;
    bottom: 72px;
    right: 30px; }

  .go_to_top {
    display: block;
    width: 24px;
    height: 24px;
    right: 10px;
    bottom: 140px; }

  .bottom_cta {
    width: 100%;
    z-index: 5; }

  .footer_item .bnrs {
    display: flex;
    justify-content: space-around;
    margin-bottom: 30px;
    align-items: center; }

  .bnr_tripadvisor {
    margin: 2em auto 0;
    width: 140px; } }
/* ---------------------------------------------------------------- *
  パンくずの設定
 * ---------------------------------------------------------------- */
.breadcrumbs {
  display: none;
  margin: 0 auto 40px;
  padding: 0.6em 2em;
  color: #777;
  font-size: 10px; }

.breadcrumbs a {
  color: #777 !important;
  font-size: 10px; }

@media screen and (max-width: 640px) {
  .breadcrumbs {
    font-size: 10px; }

  .breadcrumbs a {
    font-size: 10px; }

  .breadcrumbs span[property="name"] {
    display: inline-block;
    padding: 0;
    margin-top: -3px;
    vertical-align: middle;
    max-width: 140px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; } }
/* ---------------------------------------------------------------- *
  トップページの設定
 * ---------------------------------------------------------------- */
.front_fv {
  height: 75vh;
  display: flex;
  justify-content: center;
  align-items: center; }

.flont_fv_image {
  padding: 1em;
  width: 480px; }

.flont_fv_image img {
  width: 100%; }

.btn_fv {
  display: block;
  width: 100%;
  margin: 2em auto;
  padding: 0.6em;
  font-size: 26px;
  letter-spacing: 0.15em;
  text-align: center;
  color: #1d1d1d !important;
  border: 2px solid #1d1d1d;
  border-radius: 10px;
  position: relative; }

.btn_fv:before {
  content: "＞";
  font-family: "Yu Gothic", YuGothic, Verdana, Meiryo;
  font-size: 36px;
  font-weight: bold;
  transform: scale(0.6, 1);
  position: absolute;
  top: 6px;
  right: 18px; }

/* 旧 */
.front_about {
  overflow: hidden;
  margin-top: -50px;
  padding-top: 50px;
  padding-bottom: 60px; }

.front_about_bg {
  background-image: url(./images/front_about_bg.png);
  background-size: 70%;
  background-position: bottom right; }

.about_image {
  display: block;
  padding: 1em;
  width: 50%;
  float: right; }

.about_copy {
  display: block;
  width: 50%;
  float: left;
  font-size: 16px;
  line-height: 2.5;
  letter-spacing: 0.15em; }

/* 新 */
.front_about_02 {
  overflow: hidden;
  margin: -30px 0 60px;
  padding: 80px 1em;
  text-align: center; }

.front_about_bg_02 {
  background-image: url(./images/front_about_bg_02.jpg);
  background-size: cover;
  background-position: center; }

.about_copy_02 {
  margin-top: 40px;
  font-size: 16px;
  line-height: 2.5;
  letter-spacing: 0.15em;
  text-align: center; }

.ibuku_bekkan {
  display: inline-block;
  padding: 0.5em 1em;
  font-size: 0.8em;
  background: #fff;
  border: 1px solid #d1c08c; }

.readmore {
  margin-top: -2em;
  padding: 0 2em;
  text-align: right; }

.front_rooms {
  margin-bottom: 100px;
  text-align: center; }

.front_rooms_item {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 60px auto; }

.front_rooms_item .pic {
  text-align: left; }
  @media (max-width: 590px) {
    .front_rooms_item .pic {
      margin: 0; } }

.front_rooms_item.left .pic {
  text-align: right; }
  @media (max-width: 590px) {
    .front_rooms_item.left .pic {
      margin: 0; } }

.front_rooms_item .box {
  position: absolute;
  right: 0;
  top: 25%;
  bottom: 0;
  background: #802228;
  padding: 40px 20px 20px;
  width: 320px;
  text-align: justify;
  color: #fff;
  height: fit-content; }
  @media (max-width: 590px) {
    .front_rooms_item .box {
      position: relative;
      margin: -50px auto 0; } }
   @media (max-width: 320px) {
    .front_rooms_item .box {
      width: 100%;
       } }

.front_rooms_item.left .box {
  right: inherit;
  left: 0; }

.front_rooms_item .box .ttl {
  font-size: 36px;
  margin: 0;
  letter-spacing: 8px; }

.front_rooms_item .box p {
  color: #fff; }

.front_rooms_item .box .ico {
  position: absolute;
  right: 30px;
  top: -30px;
  margin: 0; }

@media (max-width: 590px) {
  .front_rooms_item .box .btn {
    display: flex;
    flex-wrap: wrap; } }

.front_rooms_item.left .box .btn {
  justify-content: space-between; }

.front_rooms_item .box .btn li {
  width: 15%;
  margin-right: 1%;
  border: 1px solid #fff;
  color: #fff;
  border-radius: 5px;
  letter-spacing: 4px;
  margin-bottom: 10px;
  text-align: center;
  display: flex;
  align-content: center;
  justify-content: center;
  padding: 10px 0;
  font-size: 18px; }

.front_rooms_item.left .box .btn li {
  width: 32%; }

.front_rooms_item .box .btn li a {
  writing-mode: vertical-rl;
  color: #fff; }

.front_rooms_item.left .box .btn li a {
  writing-mode: inherit; }

.h_rooms_r {
  display: block;
  margin-top: 0.1em;
  letter-spacing: 0.1em;
  font-size: 0.6em;
  color: #802126; }

.index_menu_stay,
.index_menu_foods,
.index_menu_location {
  display: flex;
  font-size: 14px;
  min-height: 520px; }

.index_menu_stay,
.index_menu_location {
  flex-direction: row-reverse; }

.index_menu_stay > *:first-child,
.index_menu_foods > *:first-child,
.index_menu_location > *:first-child {
  width: 60%;
  background-size: cover;
  background-position: center; }

.index_menu_stay > *:last-child,
.index_menu_foods > *:last-child,
.index_menu_location > *:last-child {
  padding: 2em;
  width: 40%;
  position: relative;
  background-color: #fafaf5; }

.index_menu_stay > *:last-child > *,
.index_menu_foods > *:last-child > *,
.index_menu_location > *:last-child > * {
  position: relative;
  z-index: 2; }

.index_menu_stay > *:last-child:before,
.index_menu_foods > *:last-child:before,
.index_menu_location > *:last-child:before {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background-image: url(./images/pattern_top.jpg);
  background-repeat: repeat;
  background-size: 25%;
  z-index: 1; }

.index_menu_stay > *:first-child {
  background-image: url(./images/bg_index_stay@2x.jpg); }

.index_menu_foods > *:first-child {
  background-image: url(./images/bg_index_foods@2x.jpg); }

.index_menu_location > *:first-child {
  background-image: url(./images/bg_index_location@2x.jpg); }

.index_menu_stay a,
.index_menu_foods a,
.index_menu_location a {
  display: block;
  margin-top: 30px; }

.index_menu_onsen {
  margin: 0 0 60px;
  padding: 80px 1em 80px;
  background-color: #f1ecdd; }

.index_menu_onsen_item {
  margin: auto;
  padding: 1px 3em 3em;
  max-width: 900px;
  min-height: 280px;
  background-color: #fff;
  background-image: url(./images/index_menu_onsen.png);
  background-size: contain;
  background-position: right;
  position: relative; }

.index_menu_onsen_item p {
  line-height: 2.1; }

.index_menu_onsen_item:before {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 230px;
  height: 100%;
  opacity: 0.5;
  background-image: url(./images/pattern_vertical@2x.png);
  background-size: 60%; }

.blog_list {
  margin: 60px auto;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

.blog_list li {
  background-color: #fff;
  margin-bottom: 2em;
  padding: 0 1.6em;
  width: 33.33333%;
  font-size: 14px;
  font-weight: normal;
  border-right: 1px solid #d7d7d7; }

.blog_list li:nth-child(3n) {
  border-right: none; }

.blog_list li h2 {
  font-size: 1.2em;
  font-weight: bold; }

.blog_list li p {
  margin: 0;
  padding: 0;
  font-size: 0.9em;
  color: #808080; }

.blog_list--cat {
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  width: auto; }
  .blog_list--cat--label {
    display: inline-block;
    margin: 5px .8em 0 0;
    padding: .45em .7em .3em;
    line-height: 1;
    font-size: 12px !important;
    font-weight: bold;
    border: 1px solid #323232;
    border-radius: 3px;
    color: #323232 !important; }

.blog_list--tag {
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  width: auto; }
  .blog_list--tag--label {
    display: inline-block;
    margin: 5px .8em 0 0;
    padding: .5em .9em .6em;
    line-height: 1;
    font-size: 11px !important;
    font-weight: 500;
    border-radius: 20px;
    color: #7d7d7d !important;
    background-color: #ececec; }

.u-catTagList {
  margin: 26px 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center; }
  .u-catTagList--catLabel {
    display: inline-block;
    margin: 5px .8em 0 0;
    padding: .45em .7em .3em;
    line-height: 1;
    font-size: 12px !important;
    font-weight: bold;
    border: 1px solid #323232;
    border-radius: 3px;
    color: #323232 !important; }
  .u-catTagList--tagLabel {
    display: inline-block;
    margin: 5px .8em 0 0;
    padding: .5em .9em .6em;
    line-height: 1;
    font-size: 11px !important;
    font-weight: 500;
    border-radius: 20px;
    color: #323232 !important;
    border: 1px solid #323232; }

.c-catList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; }
  .c-catList > * {
    margin: 1em; }
    .c-catList > * a.is-active {
      font-weight: bold !important; }

.front_access {
  margin-top: -80px;
  padding-top: 80px; }
  @media (max-width: 590px) {
    .front_access {
      margin-top: 0;
      padding-top: 0; } }

.access_info {
  margin: 1em auto 3em;
  display: flex;
  justify-content: space-around; }

.access_item {
  padding: 1em;
  font-size: 0.95em;
  width: 44%; }

.access_item h3 {
  font-size: 1.7em;
  font-weight: normal;
  border-bottom: 6px solid #cbcbcb; }

.front_news_list {
  margin-top: 80px; }

.lower_news_list {
  margin-top: 180px; }

.lower_blog_list {
  margin-top: 180px; }

.news_list li {
  margin: 0;
  padding: 0; }

.news_list li a {
  display: block;
  margin: 0;
  padding: 1.2em 2em;
  font-size: 1.2em;
  border-bottom: 1px solid #000; }

.news_list li a span {
  display: inline-block;
  margin-right: 2em; }

.fv_youtube {
  margin: auto;
  text-align: center; }

.youtube_eng {
  font-size: 12px;
  font-weight: normal; }

.front_stay {
  padding: 5px 0 46px;
  background-color: #fbf5f0; }

.front_stay_nav_item {
  overflow: hidden;
  padding: 0 2em 0 4em;
  border-right: 1px solid #dfdfdf; }

.front_stay_nav_image {
  width: 56%;
  float: right; }

.front_stay_nav_image img {
  display: block;
  width: 100%;
  height: auto; }

.front_stay_nav_data {
  padding-top: 50px;
  width: 36%;
  float: left; }

.slick-slide {
  outline: none; }

.front_stay_nav .slick-dots {
  bottom: -48px !important; }

.thumb_square {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border: 1px solid #231816; }

.slick-active .thumb_square {
  background-color: #231816; }

.front_plan_block {
  margin: 100px auto;
  padding: 0 1em;
  max-width: 960px; }

.front_plan_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 2em 0;
  border-top: 1px solid #bfbfbf;
  border-bottom: 1px solid #bfbfbf; }

.front_plan_list > * {
  margin: 0 0 1em;
  padding: 0;
  width: 49%; }

.front_plan_image {
  display: block;
  padding-bottom: 65%;
  background-size: cover;
  background-position: center; }

.front_plan_title {
  margin: 0.4em 0;
  font-size: 18px;
  font-weight: 500; }

.front_plan_text {
  margin: 0;
  font-size: 14px; }

.front_blog_hori_list {
  margin: 0 auto;
  padding: 1.4em 0 0;
  border-top: 1px solid #9f9f9f; }

.front_blog_hori_list li {
  margin: 0 0 1.4em;
  padding: 0 0 1.4em;
  font-size: 14px;
  font-weight: normal;
  border-bottom: 1px solid #d7d7d7;
  overflow: hidden; }

.front_blog_hori_list li:last-child {
  border-bottom: 1px solid #9f9f9f; }

.front_blog_hori_list_image {
  display: block;
  width: 140px;
  float: left;
  margin-right: 1em; }

.front_blog_hori_list li h2 {
  font-size: 1.2em;
  font-weight: normal; }

.front_blog_hori_list li p {
  margin: 0;
  padding: 0;
  font-size: 0.9em;
  color: #808080; }

/* 旧 */
.front_other_block {
  margin: 60px auto;
  max-width: 980px; }

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

.front_other_nav > * {
  width: 49%;
  position: relative; }

.front_other_nav > * h3 {
  position: absolute;
  top: 44px;
  width: 100%;
  text-align: center;
  font-weight: 500;
  font-size: 28px;
  color: #fff;
  letter-spacing: 0.2em; }

.front_other_nav > * p {
  font-size: 14px; }

.other_nav_restaurant {
  display: block;
  padding-top: 41.1308203991%;
  background-image: url(./images/front_bg_restaurant.jpg);
  background-size: cover; }

.other_nav_sightseeing {
  display: block;
  padding-top: 41.1308203991%;
  background-image: url(./images/front_bg_sightseeing.jpg);
  background-size: cover; }

/* 新 */
.front_other {
  margin: 60px auto;
  border-top: 1px solid #bfbfbf; }

.front_other_item {
  border-bottom: 1px solid #bfbfbf;
  display: flex;
  justify-content: center; }

.front_other_item > * {
  width: 50%; }

.front_other_image {
  display: flex; }

.front_other_image > * {
  width: 50%; }

.front_other_image > * img {
  display: block;
  width: 100%;
  height: auto; }

.front_other_text {
  padding: 1em 4em; }

.front_other_link {
  display: block;
  margin: 10px 0 18px;
  width: auto;
  height: 21px; }

.front_other_link img {
  display: block;
  width: auto;
  height: 100%; }

.front_other_image_sp {
  display: none; }

@media screen and (max-width: 768px) {
  .front_other_text {
    padding: 0.5em 1em;
    font-size: 12px; }

  .front_other_text .h_04 {
    margin-top: 1em; }

  .front_other_link {
    display: inline-block;
    margin: 0 0 0 18px;
    width: auto;
    height: 21px; } }
@media screen and (max-width: 640px) {
  .btn_fv {
    margin: 2em auto 0;
    padding: 0.6em 0.2em;
    font-size: 16px;
    letter-spacing: 0.05em; }

  .btn_fv:before {
    font-size: 24px;
    top: 2px;
    right: 7px; }

  .front_fv {
    height: 88vh; }

  .flont_fv_image {
    width: 280px; }

  .about_image {
    width: 100%;
    float: none; }

  .front_about {
    padding-top: 20px; }

  .front_about_bg {
    margin: 0;
    padding-bottom: 200px;
    background-size: 100%;
    background-position: bottom right; }

  .front_about_bg .h_04 {
    padding: 0 30px;
    font-size: 18px;
    text-align: left; }

  .about_copy {
    padding: 0 30px;
    width: 100%;
    float: none;
    font-size: 14px;
    line-height: 2.5;
    letter-spacing: 0.15em;
    text-align: left; }

  .index_menu_stay,
  .index_menu_foods,
  .index_menu_location {
    display: block;
    min-height: auto;
    border-top: 1px solid #ccc; }

  .index_menu_location {
    margin-bottom: 30px;
    border-bottom: 1px solid #ccc; }

  .index_menu_stay,
  .index_menu_location {
    flex-direction: row; }

  .index_menu_stay > *:first-child,
  .index_menu_foods > *:first-child,
  .index_menu_location > *:first-child {
    min-height: 320px;
    width: 100%; }

  .index_menu_stay > *:last-child,
  .index_menu_foods > *:last-child,
  .index_menu_location > *:last-child {
    padding: 1em;
    width: 100%; }

  .index_menu_stay .h_03,
  .index_menu_foods .h_03,
  .index_menu_location .h_03 {
    margin-top: 20px; }

  .index_menu_stay a,
  .index_menu_foods a,
  .index_menu_location a {
    margin-bottom: 30px; }

  .index_menu_onsen {
    margin-bottom: 0; }

  .index_menu_onsen_item {
    margin: auto;
    max-width: 900px;
    min-height: 280px;
    padding-bottom: 260px;
    background-size: 86%;
    background-position: center bottom 30px;
    background-color: #fff;
    background-image: url(./images/index_menu_onsen_sp.png);
    position: relative; }

  .index_menu_onsen_item:before {
    display: none; }

  .blog_list li h2 {
    font-size: 1.1em; }

  .blog_list li {
    padding-bottom: 1.2em;
    margin-bottom: 3em;
    border-right: none;
    width: 100%; }

  .access_info {
    display: block; }

  .access_item {
    margin: auto;
    width: 98%; }

  .access_item h3 {
    font-size: 1.6em;
    border-bottom: 2px solid #cbcbcb;
    text-align: center; }

  .news_list li a {
    border-bottom: 1px solid #dedede; }

  .lower_news_list {
    margin-top: 80px; }

  .lower_blog_list {
    margin-top: 80px; }

  .front_stay {
    padding: 30px 0; }

  .front_stay .h_04 {
    margin-top: 0; }

  .front_stay_nav_item {
    overflow: hidden;
    padding: 0 1em;
    border-right: none; }

  .front_stay_nav_image {
    width: 100%;
    float: none; }

  .front_stay .stay_type {
    margin: 0.5em 0;
    text-align: left; }

  .front_stay .h_05 {
    margin: 0.5em 0; }

  .front_stay_nav_data {
    padding-top: 0;
    width: 100%;
    float: none; }

  .front_stay_nav .slick-dots {
    bottom: -54px !important; }

  .front_plan_block {
    margin: 40px auto; }

  .front_plan_block .h_04 {
    margin-bottom: 0;
    padding: 0 0.3em;
    text-align: left; }

  .front_plan_block .readmore {
    padding: 0; }

  .front_plan_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 2em 0;
    border-top: 1px solid #9f9f9f;
    border-bottom: none; }

  .front_plan_list > * {
    margin: 0 0 1em;
    padding: 0 0 1em;
    width: 100%;
    overflow: hidden;
    border-bottom: 1px solid #bfbfbf; }

  .front_plan_image {
    display: block;
    width: 25%;
    padding-bottom: 25%;
    background-size: cover;
    background-position: center;
    float: left;
    margin-right: 1em; }

  .front_plan_title {
    margin: 0;
    font-size: 14px;
    font-weight: 500; }

  .front_plan_text {
    display: none; }

  .front_blog_block .h_03 {
    margin-bottom: 0;
    padding: 0 0.3em;
    font-size: 26px;
    font-weight: 500;
    text-align: left; }

  .front_blog_block .readmore {
    padding: 0; }

  .front_blog_hori_list {
    margin: 0 auto;
    padding: 1.4em 0 0;
    border-top: 1px solid #9f9f9f; }

  .front_blog_hori_list li {
    margin: 0 0 1em;
    padding: 0 0 1em;
    font-size: 14px; }

  .front_blog_hori_list li:last-child {
    border-bottom: 1px solid #9f9f9f; }

  .front_blog_hori_list_image {
    display: block;
    width: 80px;
    float: left;
    margin-right: 1em; }

  .front_blog_hori_list li h2 {
    margin: 0;
    font-size: 1.15em;
    font-weight: normal; }

  .front_blog_hori_list li p {
    font-size: 12px; }

  .front_other_block {
    margin: 0 -1em; }

  .front_other_nav {
    display: block; }

  .front_other_nav > * {
    width: 100%; }

  .front_other_nav > * h3 {
    position: absolute;
    top: 16px;
    left: 16px;
    text-align: left;
    font-size: 23px; }

  .front_other_nav > * h3:after {
    display: inline-block;
    content: "＞";
    padding-left: 0.3em;
    transform: scaleX(0.6); }

  .front_other_nav > * p {
    position: absolute;
    top: 74px;
    left: 16px;
    padding-right: 16px;
    font-size: 12px;
    z-index: 2;
    color: #fff; }

  .other_nav_restaurant {
    padding-top: 48%; }

  .other_nav_sightseeing {
    padding-top: 48%; }

  .front_about_02 {
    margin: -30px 0 20px;
    padding: 30px 1em;
    text-align: center; }

  .front_about_02 .h_04 {
    font-size: 21px; }

  .about_copy_02 {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: left; }

  .front_rooms {
    margin-bottom: 60px;
    text-align: left; }

  .front_rooms .h_03 {
    margin-top: 40px;
    padding: 0 18px;
    font-size: 28px;
    text-align: left; }

  .front_rooms_item {
    margin: 30px 0 60px; }

  .front_rooms_item p {
    margin: 1em;
    font-size: 14px;
    line-height: 1.8; }

  .h_rooms_r {
    display: inline-block;
    margin: 0.1em 0 0 0.6em;
    letter-spacing: 0.05em;
    font-size: 13px; }

  .front_rooms_open {
    display: block;
    text-align: center; }

  .front_other {
    margin: 60px auto;
    border-top: none; }

  .front_other_item {
    border-top: none;
    display: block; }

  .front_other_item > * {
    width: 100%; }

  .front_other_image {
    display: none; }

  .front_other_image_sp {
    display: block; }

  .front_other_image_sp > * {
    margin: 2px 0;
    padding: 0; }

  .front_other_text {
    padding: 1em 0; }

  .front_other_text .h_04 {
    padding-left: 12px;
    padding-right: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between; }

  .front_other_text p {
    padding-left: 12px;
    padding-right: 12px;
    font-size: 14px;
    letter-spacing: 0.1em; }

  .front_other_link {
    display: inline-block;
    margin: 0 0 0 0;
    width: auto;
    height: 21px; }

  .front_other_link img {
    display: block;
    width: auto;
    height: 100%; } }
@media screen and (max-width: 320px) {
  .btn_fv {
    font-size: 14px; }

  .btn_fv:before {
    font-size: 18px;
    top: 4px;
    right: 10px; } }
/* ---------------------------------------------------------------- *
  固定ページ用の設定
 * ---------------------------------------------------------------- */
.page {
  margin: auto;
  padding: 0 1em 160px;
  max-width: 1000px; }

.rooms .h_01 {
  margin-top: 120px; }

@media screen and (max-width: 640px) {
  .page {
    padding: 0 1em 30px; } }
/* ---------------------------------------------------------------- *
  stay/type/foods/location用の設定
 * ---------------------------------------------------------------- */
.stay_copy {
  font-size: 16px;
  line-height: 2.7;
  letter-spacing: 0.15em;
  text-align: center; }

.stay_image_list {
  margin: 30px 0 10px;
  display: flex;
  justify-content: space-between; }

.stay_image_list > * {
  width: 16%; }

.stay_nav {
  display: flex;
  justify-content: space-between;
  margin: 60px auto; }

.stay_nav p {
  font-size: 0.95em; }

.stay_nav > * {
  width: 33%;
  padding: 0 1em;
  border-right: 1px solid #c1c1c1;
  font-size: 14px; }

.stay_nav > *:last-child {
  border-right: none; }

.stay_type {
  font-size: 21px;
  font-weight: bold; }

.type_blcok {
  margin: 30px auto;
  display: flex;
  justify-content: space-between; }

.type_blcok > *:nth-child(1) {
  width: 20%;
  position: relative;
  border-right: 1px solid #e9e9e9; }

.type_blcok > *:nth-child(2) {
  width: 76%; }

.bnr_reserve {
  display: inline-block;
  padding: 0.2em 1em;
  color: #fff !important;
  background: #000;
  font-size: 14px;
  letter-spacing: 0.1em;
  position: absolute;
  bottom: 30px; }

.bnr_reserve_bottom {
  display: block;
  margin: 60px auto 80px;
  padding: 0.3em 2em;
  max-width: 200px;
  color: #fff !important;
  background: #000;
  font-size: 16px;
  letter-spacing: 0.1em;
  text-align: center; }

.foods_fv {
  position: relative;
  padding-bottom: 90px; }

.foods_label {
  display: block;
  width: 180px;
  position: absolute;
  bottom: 0px;
  right: 100px; }

.foods_blcok {
  margin: 100px auto 80px;
  display: flex;
  justify-content: space-between; }

.foods_blcok_re {
  flex-direction: row-reverse; }

.foods_blcok > *:nth-child(1) {
  width: 56%; }

.foods_blcok > *:nth-child(2) {
  width: 38%; }

.foods_blcok p.food_menu {
  margin: 0;
  padding: 1em 0;
  line-height: 2.7;
  position: relative; }

.foods_blcok p.food_menu:before {
  content: " ";
  display: block;
  margin: 0 0 2em;
  height: 1px;
  width: 40px;
  background: #000; }

.food_menu_s {
  font-size: 14px; }

.food_text {
  font-size: 12px; }

.restaurant_menu {
  margin: 30px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }

.restaurant_menu > * {
  margin-bottom: 1em;
  width: 47%; }

.about_gallery {
  margin: 30px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }

.about_gallery > * {
  margin-bottom: 1em;
  width: 49%; }

.about_gallery > * img {
  display: block;
  width: 100%;
  height: auto; }

.type_gallery {
  margin: 30px auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between; }

.type_gallery > * {
  margin-bottom: 1em;
  width: 49%; }

.type_data {
  display: flex;
  flex-wrap: wrap; }

.type_data dt {
  margin: 0;
  padding: 0.1em 0;
  width: 15%; }

.type_data dd {
  margin: 0;
  padding: 0.1em 0;
  width: 85%; }

.location {
  font-size: 14px;
  letter-spacing: 0.05em; }

.location_01 {
  position: relative; }

.location_01:after {
  content: "";
  display: block;
  position: absolute;
  top: 100px;
  right: 0;
  width: 209px;
  height: 621px;
  background-image: url(./images/pattern.jpg);
  background-repeat: repeat;
  background-size: 50%; }

.location_01 > * {
  position: relative;
  z-index: 2; }

.location_01 p {
  width: 75%; }

.location_02 {
  margin: 100px auto 50px;
  overflow: hidden; }

.location_02 img {
  display: block;
  float: left;
  margin-right: 30px; }

.location_02 .h_04 {
  margin-top: 100px; }

.location_03 {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  position: relative; }

.location_03 > * {
  position: relative;
  z-index: 2; }

.location_03 .h_04 {
  margin-top: 100px;
  margin-left: 20px; }

.location_03 p {
  margin-left: 20px;
  width: 90%; }

.location_03:after {
  content: "";
  display: block;
  position: absolute;
  top: 380px;
  left: 0;
  width: 826px;
  height: 107px;
  background-image: url(./images/pattern.jpg);
  background-repeat: repeat;
  background-size: 12.5%; }

.location_04 {
  margin: 50px auto;
  overflow: hidden; }

.location_04 > * {
  position: relative;
  z-index: 2; }

.location_04 img {
  display: block;
  float: left;
  margin-right: 30px; }

.location_04 .h_04 {
  margin-top: 160px; }

.location_05 {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  position: relative; }

.location_05 > * {
  position: relative;
  z-index: 2; }

.location_05 .h_04 {
  margin-top: 100px;
  margin-left: 130px; }

.location_05 p {
  margin-left: 130px;
  width: 75%; }

.location_05:after {
  content: "";
  display: block;
  position: absolute;
  top: -260px;
  left: -100px;
  width: 209px;
  height: 621px;
  background-image: url(./images/pattern.jpg);
  background-repeat: repeat;
  background-size: 50%; }

.about_nav {
  margin: auto;
  padding: 1em;
  max-width: 900px;
  display: flex;
  justify-content: space-between; }

.about_nav > * {
  width: 30%; }

.about_h {
  margin: 60px 0;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 360px;
  color: #fff;
  background: #eee;
  letter-spacing: 0.2em;
  font-size: 32px;
  font-weight: normal;
  background-size: cover;
  background-position: center; }

#shisetsu .about_h {
  background-image: url(./images/about_05@2x.jpg); }

#kodawari .about_h {
  background-image: url(./images/about_10@2x.jpg); }

#syuuhen .about_h {
  background-image: url(./images/about_14@2x.jpg); }

#syuuhen,
#kodawari,
#shisetsu {
  margin-top: -12px;
  padding-top: 12px; }

.about_box {
  margin: auto;
  padding: 30px 1em;
  max-width: 1000px; }

.about_text {
  margin: 30px 1em 80px;
  text-align: center; }

.about_logo {
  margin: 80px auto;
  max-width: 380px; }

@media screen and (max-width: 640px) {
  .stay_copy {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.05em; }

  .stay_nav {
    display: block;
    margin: 30px auto; }

  .stay_nav > * {
    width: 100%;
    margin-bottom: 40px;
    padding: 0 1em;
    font-size: 14px; }

  .type_blcok {
    margin: 30px auto;
    display: block; }

  .type_blcok > * {
    width: 100%; }

  .type_blcok > *:nth-child(1),
  .type_blcok > *:nth-child(2) {
    width: 100%; }

  .type_blcok img {
    display: block;
    margin: auto;
    width: 80%; }

  .stay_type {
    text-align: center; }

  .type_data {
    display: flex;
    flex-wrap: wrap; }

  .type_data dt {
    margin: 1.1em 0 0;
    padding: 0.1em 0;
    width: 100%;
    font-weight: bold; }

  .type_data dd {
    margin: 0;
    padding: 0.1em 0;
    width: 100%; }

  .restaurant_menu {
    margin: 30px auto; }

  .restaurant_menu > * {
    margin-bottom: 1em;
    width: 100%; }

  .restaurant_menu > * img {
    display: block;
    margin: auto;
    width: 80%;
    height: auto; }

  .about_gallery {
    margin: 30px auto; }

  .about_gallery > * {
    margin-bottom: 1em;
    width: 100%; }

  .about_gallery > * img {
    display: block;
    margin: auto;
    width: 100%;
    height: auto; }

  .bnr_reserve {
    display: block;
    margin: 0 auto 2em;
    padding: 0.2em 1em;
    max-width: 50%;
    font-size: 14px;
    text-align: center;
    position: static; }

  .foods_blcok {
    margin: 60px auto 40px;
    display: block; }

  .foods_blcok > *:nth-child(1) {
    width: 100%; }

  .foods_blcok > *:nth-child(2) {
    width: 100%; }

  .foods_fv {
    padding-bottom: 40px; }

  .foods_label {
    width: 80px;
    position: absolute;
    bottom: 0px;
    right: 20px; }

  .location_01:after {
    display: none; }

  .location_01 p {
    width: 100%; }

  .location_02 {
    margin: 40px auto 30px; }

  .location_02 img {
    float: none;
    margin-right: 0; }

  .location_02 .h_04 {
    margin-top: 20px; }

  .location_03 {
    display: block; }

  .location_03 .h_04 {
    margin-top: 20px;
    margin-left: 0; }

  .location_03 p {
    margin-left: 0;
    width: 100%; }

  .location_03:after {
    top: 430px;
    opacity: 0.25; }

  .location_04 {
    margin: 30px auto; }

  .location_04 img {
    display: block;
    width: 100%;
    float: none;
    margin-right: 0; }

  .location_04 .h_04 {
    margin-top: 30px; }

  .location_05 {
    display: block; }

  .location_05 .h_04 {
    margin-top: 20px;
    margin-left: 0; }

  .location_05 p {
    margin-left: 0;
    width: 100%; }

  .location_05 img {
    display: block;
    width: 100%; }

  .location_05:after {
    top: -260px;
    left: -100px;
    opacity: 0.25; }

  .about_box {
    padding: 30px 1em 30px; }

  .about_h {
    margin: 30px 0;
    min-height: 140px;
    font-size: 16px; }

  #syuuhen,
  #kodawari,
  #shisetsu {
    margin-top: -30px;
    padding-top: 30px; }

  .about_text {
    margin: 2px 1em 40px;
    text-align: center;
    font-size: 14px; }

  .foods_blcok p.food_menu {
    font-size: 14px;
    line-height: 2.1; }

  .about_logo {
    margin: 60px auto;
    max-width: 180px; } }
/* ---------------------------------------------------------------- *
  記事ページ用の設定
 * ---------------------------------------------------------------- */
.blog {
  margin: 1em auto;
  padding: 0 1em 160px;
  max-width: 1000px;
  letter-spacing: 0.1em;
  line-height: 1.8;
  overflow: hidden; }

.blog_item {
  margin: 40px auto 2em;
  padding: 2em;
  max-width: 800px;
  background: #f3f3f3; }

.blog_info {
  margin-bottom: -1.6em;
  text-align: center; }

.blog_contents {
  margin-top: 60px;
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: 0.12em; }

.blog_contents img {
  display: block;
  margin: 3em 0; }

.blog_contents img.alignleft {
  float: left;
  padding-right: 2em; }

.blog_contents img.alignright {
  float: right;
  padding-left: 2em; }

.blog_contents h2 {
  font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif !important;
  margin: 2em auto;
  font-size: 24px;
  font-weight: normal;
  letter-spacing: 0.1em; }

.blog_contents h3 {
  font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif !important;
  margin: 1em auto 0.5em;
  padding: 0;
  font-size: 16px; }

.blog_contents table {
  width: 100% !important;
  background: #f3f3f3; }

.blog_contents th,
.blog_contents td {
  border: 1px solid #ddd;
  padding: 0.5em; }

.blog_contents p {
  margin: 1em auto;
  padding: 0; }

.blog_contents strong {
  color: #cd0011; }

.blog_contents a {
  text-decoration: underline !important;
  color: #ba473f !important; }

@media screen and (max-width: 640px) {
  .blog {
    margin: 0; }

  .blog .h_01 {
    margin-top: 0;
    padding-top: 10px; }

  .blog_item {
    margin: 20px auto 1em;
    padding: 1em;
    background: #f3f3f3; }

  .blog_contents h2 {
    font-size: 18px; }

  .blog_contents h3 {
    font-size: 14px; }

  .blog_contents img.alignleft,
  .blog_contents img.alignright {
    float: none;
    width: 60%;
    margin: 2em auto 1em;
    padding: 0; } }
/* ---------------------------------------------------------------- *
  予約用の設定
 * ---------------------------------------------------------------- */
.reserve_block {
  margin: 80px auto;
  padding: 1em; }

/* ---------------------------------------------------------------- *
  予約用の設定
* ---------------------------------------------------------------- */
.bottom_form {
  position: fixed;
  bottom: 0;
  left: 0;
  margin: 0;
  padding: 1em 0;
  width: 100%;
  background-color: #dfdfdf;
  z-index: 6; }

.bottom_form_block {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: auto;
  padding: 0 1em;
  max-width: 1000px; }

.bottom_form_item {
  margin: 0;
  padding: 0; }

.bottom_form_h {
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400; }

.bottom_form_item input.reserve_submit[type="button"] {
  margin: 0; }

@media screen and (max-width: 640px) {
  .bottom_form {
    display: none; } }
/* ---------------------------------------------------------------- *
  別邸 の設定
* ---------------------------------------------------------------- */
.bettei_block_full img {
  display: block;
  width: 100%;
  height: auto; }

.bettei_block {
  margin: 0 auto;
  max-width: 1280px;
  text-align: center; }

.bettei_image {
  display: block; }

.bettei_image.bettei_image_01 {
  margin: 160px auto 40px; }

.bettei_image.bettei_image_02 {
  margin: 80px auto 120px; }

.bettei_image.bettei_image_03 {
  margin: 80px auto 100px; }

.bettei_image.bettei_image_04 {
  margin: 80px auto 100px; }

.bettei_image.bettei_image_05 {
  margin: 80px auto 100px;
  max-width: 980px;
  height: auto; }

.bettei_image.bettei_image_06 {
  margin: 120px auto 160px;
  max-width: 980px;
  height: auto; }

.bettei_image.bettei_image_07 {
  margin: 80px auto 80px; }

.bettei_image.bettei_image_08 {
  margin: 80px auto 80px 0; }

.bettei_image.bettei_image_09 {
  margin: 80px 0 80px auto; }

.bettei_access {
  margin: auto;
  max-width: 900px; }

@media screen and (max-width: 768px) {
  .bettei_block {
    padding: 0 24px; }

  .bettei_block img {
    display: block;
    width: 100%;
    height: auto; }

  .bettei_image.bettei_image_01 {
    margin: 80px auto 40px; }

  .bettei_image.bettei_image_02 {
    margin: 40px auto 60px; }

  .bettei_image.bettei_image_03 {
    margin: 40px auto 50px; }

  .bettei_image.bettei_image_04 {
    margin: 40px auto 50px; }

  .bettei_image.bettei_image_05 {
    margin: 40px auto 50px;
    max-width: 980px;
    height: auto; }

  .bettei_image.bettei_image_06 {
    margin: 60px auto 80px;
    max-width: 980px;
    height: auto; }

  .bettei_image.bettei_image_07 {
    margin: 40px auto 40px; }

  .bettei_image.bettei_image_08 {
    margin: 40px auto 40px 0; }

  .bettei_image.bettei_image_09 {
    margin: 40px 0 40px auto; }

  .bettei_access {
    padding: 0 20px; } }
/* ---------------------------------------------------------------- *
  google map / youtube用の設定
 * ---------------------------------------------------------------- */
#gmap {
  background: #f3f3f3;
  min-height: 380px;
  border: 4px solid #cbcbcb; }

.youtube {
  position: relative;
  margin: 3em 0;
  padding-bottom: 56%;
  height: 0;
  overflow: hidden; }

.youtube iframe {
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

.gmap {
  height: 0;
  overflow: hidden;
  min-height: 380px;
  position: relative;
  border: 4px solid #cbcbcb; }
  .gmap iframe {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 100%; }

@media screen and (max-width: 640px) {
  #gmap {
    min-height: 280px; }

  .gmap {
    min-height: 280px; } }
/* ---------------------------------------------------------------- *
  slickの設定
 * ---------------------------------------------------------------- */
.index_fv_logo {
  position: relative; }

.index_fv_image {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: 360px;
  height: 279px;
  z-index: 2; }

.fv_slider img {
  display: block;
  width: 100%; }

.front_slider_wp {
  position: relative; }

.front_slider img {
  width: 100%; }

.fv_slider_page {
  margin-top: -70px; }

.container .fv_slider_page {
  margin-top: 0; }

.fv_slider_page img {
  display: block;
  width: 100%;
  height: auto; }

#front_slider_arrows .slick-prev,
#front_slider_arrows .slick-next {
  width: 18px;
  height: 18px;
  top: 48%; }

#front_slider_arrows .slick-prev {
  left: 5%; }

#front_slider_arrows .slick-next {
  right: 5%; }

#front_slider_arrows .slick-prev:before,
#front_slider_arrows .slick-next:before {
  content: ""; }

.slick-dots {
  bottom: 20px !important; }

.slick-dots li button:before {
  color: #fff !important; }

@media screen and (max-width: 640px) {
  .index_fv_image {
    width: 120px;
    height: 93px; }

  #front_slider_arrows .slick-prev,
  #front_slider_arrows .slick-next {
    display: none; }

  .slick-dots {
    bottom: -30px !important; } }
/* ---------------------------------------------------------------- *
  pagenaviの設定
 * ---------------------------------------------------------------- */
.single_pagenavi {
  margin: 5em 0 2em;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  clear: both; }

.single_pagenavi > * {
  padding: 0.5em;
  width: 50%;
  min-height: 80px;
  border: 1px solid #ccc;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px; }

.single_pagenavi > *:nth-child(1) {
  border-right: none; }

.single_pagenavi a {
  display: block;
  margin: 0 1em;
  font-size: 12px;
  line-height: 1.7; }

.wp-pagenavi {
  margin: 3em auto;
  clear: both;
  text-align: center; }

.wp-pagenavi a,
.wp-pagenavi span {
  color: #1a1a1a !important;
  border: solid 1px #1a1a1a !important;
  padding: 8px 15px;
  margin: 0 2px;
  white-space: nowrap;
  -webkit-transition: 0.2s ease-in-out;
  -moz-transition: 0.2s ease-in-out;
  -o-transition: 0.2s ease-in-out;
  transition: 0.2s ease-in-out;
  text-align: center;
  text-decoration: none; }

.wp-pagenavi a:hover {
  color: #fff !important;
  background-color: #1a1a1a;
  border-color: #1a1a1a;
  opacity: 1 !important; }

.wp-pagenavi span.current {
  color: #fff !important;
  background-color: #1a1a1a;
  border-color: #1a1a1a;
  font-weight: bold; }

/* ---------------------------------------------------------------- *
  予約フォームの設定
 * ---------------------------------------------------------------- */
.reserve_form {
  margin: 3em auto;
  padding: 2em;
  max-width: 800px;
  color: #1a1a1a;
  background: #f7f7f7; }

.mitei {
  float: right; }

.select-wrap {
  display: inline-block;
  overflow: hidden;
  margin: 0;
  padding: 0;
  text-align: center;
  position: relative; }

.select-wrap select {
  border: 1px solid #bbb;
  border-radius: 2px;
  padding: 8px 40px 8px 24px;
  width: 100%;
  cursor: pointer;
  text-indent: 0.01px;
  text-overflow: ellipsis;
  letter-spacing: 0.05em;
  outline: none;
  background: #fff;
  background-image: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
  color: #666; }

.select-wrap select::-ms-expand {
  display: none; }

.select-wrap::before {
  position: absolute;
  top: 0.8em;
  right: 0.9em;
  padding: 0;
  content: "";
  width: 10px;
  height: 10px;
  border: 1px solid;
  border-color: transparent transparent #565656 #565656;
  transform: rotate(-45deg);
  pointer-events: none; }

input.reserve_submit[type="button"] {
  display: block;
  margin: 1.4em auto 100px;
  padding: 0.6em 0.8em;
  width: 260px;
  border: 1px solid #1a1a1a;
  color: #fff;
  background: #1a1a1a;
  letter-spacing: 0.15em;
  transition: 0.5s;
  position: relative; }

input.reserve_submit[type="button"]:hover {
  background: #fff;
  color: #1a1a1a;
  cursor: pointer; }

.form_h {
  font-weight: normal;
  font-size: 16px; }

select[disabled] {
  background: #ddd; }

@media screen and (max-width: 768px) {
  .reserve_form {
    margin: 3em 1em;
    padding: 1em;
    max-width: 100%; }

  .select-wrap {
    padding: 0 0 0 0.3em; }

  .select-wrap select {
    padding: 0.1em 1em 0.1em 0.5em; }

  .select-wrap::before {
    top: 0.7em;
    right: 0.9em;
    width: 6px;
    height: 6px; }

  .select-wrap select {
    padding: 4px 26px 4px 4px;
    color: #666; }

  input.reserve_submit[type="button"] {
    display: block;
    margin: 1.4em auto 100px;
    padding: 0.6em 0.8em;
    width: 260px;
    border: 1px solid #1a1a1a;
    color: #fff;
    background: #1a1a1a;
    letter-spacing: 0.15em;
    transition: 0.5s;
    position: relative; }

  input.reserve_submit[type="button"]:hover {
    background: #fff;
    color: #1a1a1a;
    cursor: pointer; }

  .form_h {
    font-weight: normal;
    font-size: 16px; } }
/* ---------------------------------------------------------------- *
  フォームの設定
 * ---------------------------------------------------------------- */
/* --- mw wp form ベース設定 ----------------------------------- */
table.contact_form {
  margin: 3em auto;
  max-width: 800px;
  text-align: left;
  border-collapse: separate;
  border-spacing: 0 4px; }

table.contact_form th {
  padding: 0.4em 0.7em;
  width: 30%;
  font-size: 0.9em;
  font-weight: normal;
  color: #1a1a1a;
  background: #fff;
  border: 1px solid #808080;
  border-right: none; }

table.contact_form td {
  padding: 0.4em 0.7em;
  width: 70%;
  color: #1a1a1a;
  background: #fff;
  border: 1px solid #808080; }

table.contact_form input[type="text"],
table.contact_form input[type="email"],
table.contact_form button,
table.contact_form textarea,
table.contact_form select {
  margin: 0.2em 0;
  padding: 0.1em 0.4em;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

table.contact_form input[type="text"],
table.contact_form input[type="email"],
table.contact_form textarea {
  padding: 0.3em; }

p.file_comment {
  font-size: 13px; }

input[type="submit"] {
  margin: 1.4em 0 0;
  padding: 0.6em 0.8em;
  width: 300px;
  border: 1px solid #1a1a1a;
  color: #1a1a1a;
  letter-spacing: 0.15em;
  transition: 0.5s;
  position: relative; }

.submit_box {
  margin-bottom: 60px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center; }

.submit_box input {
  margin: 1em; }

.mw_wp_form_input .submit_back {
  display: none; }

.submit {
  display: block;
  margin: 0 auto 2em;
  position: relative; }

.submit:after {
  content: ">";
  display: block;
  color: #1a1a1a;
  position: absolute;
  top: 38px;
  right: 20px;
  font-size: 16px;
  line-height: 1;
  z-index: 8;
  transition: 0.5s; }

.submit:hover:after {
  top: 38px;
  right: 15px; }

input[type="submit"]:hover {
  background: #fff;
  color: #1a1a1a; }

table.contact_form textarea {
  width: 100%; }

.required {
  margin-left: 1em;
  padding: 0.4em 0.8em;
  font-size: 10px;
  color: #1a1a1a;
  background: #f3f3f3;
  border-radius: 4px; }

@media screen and (max-width: 768px) {
  table.contact_form th,
  table.contact_form td {
    display: block;
    padding: 0.3em 0.7em;
    width: 100%;
    font-size: 16px; }

  table.contact_form th {
    border: 1px solid #808080; }

  table.contact_form td {
    border: 1px solid #808080;
    border-top: none; }

  p.file_comment {
    font-size: 12px; }

  table.contact_form input[type="text"],
  table.contact_form input[type="email"],
  table.contact_form textarea {
    width: 100%; }

  table.contact_form input[type="radio"] {
    position: relative;
    -webkit-appearance: button;
    appearance: button;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    content: "";
    background-color: #fff;
    border: 1px solid #999;
    -webkit-border-radius: 18px;
    border-radius: 18px;
    -webkit-box-shadow: inset 4px 4px 10px rgba(0, 0, 0, 0.2);
    box-shadow: inset 4px 4px 10px rgba(0, 0, 0, 0.2);
    vertical-align: middle;
    cursor: pointer; }

  table.contact_form input[type="radio"]:checked:after {
    display: block;
    position: absolute;
    top: 3px;
    left: 3px;
    content: "";
    width: 10px;
    height: 10px;
    background: #1a1a1a;
    -webkit-border-radius: 10px;
    border-radius: 10px; }

  .submit:after {
    top: 24px; }

  .submit:hover:after {
    top: 24px; } }
/* ---------------------------------------------------------------- *
  ハンバーガーの設定
 * ---------------------------------------------------------------- */
header.lower_header .hamburger {
  display: none; }

.hamburger {
  position: fixed;
  top: 30px;
  right: 46px;
  z-index: 80;
  border-radius: 4px;
  background: #323232;
  border: 1px solid #fff; }
  @media (max-width: 834px) {
    .hamburger {
      top: 17px;
      right: 5px;
      background: inherit; } }

.toggle {
  display: none; }

.toggle-label {
  cursor: pointer;
  display: block;
  width: 44px;
  height: 46px;
  user-select: none;
  -webkit-tap-highlight-color: transparent; }
  @media (max-width: 590px) {
    .toggle-label {
      width: 36px;
      height: 36px; } }

.toggle-label:active {
  -webkit-tap-highlight-color: transparent; }

.toggle-label {
  cursor: pointer; }

.toggle-label .toggle-icon,
.toggle-label .toggle-icon:before,
.toggle-label .toggle-icon:after {
  position: relative;
  display: block;
  top: 50%;
  left: 50%;
  height: 2px;
  width: 28px;
  background: #fff;
  content: "";
  transition: all 500ms ease-in-out; }
  @media (max-width: 590px) {
    .toggle-label .toggle-icon,
    .toggle-label .toggle-icon:before,
    .toggle-label .toggle-icon:after {
      background: #000; } }

.toggle-label .toggle-text {
  position: relative;
  display: block;
  top: calc(100% - 18px);
  height: 14px;
  font-size: 4px;
  color: #fff;
  text-align: center; }
  @media (max-width: 590px) {
    .toggle-label .toggle-text {
      color: #000;
      top: calc(100% - 13px); } }

.toggle-label .toggle-text:before {
  position: absolute;
  width: 100%;
  left: 0;
  content: 'MENU';
  transition: all 500ms ease-in-out;
  visibility: visible;
  opacity: 1; }

.toggle-label .toggle-text:after {
  position: absolute;
  width: 100%;
  left: 0;
  /* content: 'CLOSE'; */
  transition: all 500ms ease-in-out;
  visibility: hidden;
  opacity: 0; }

.toggle-label .toggle-icon {
  transform: translate3d(-50%, -5px, 0); }

.toggle-label .toggle-icon:before {
  transform: translate3d(-50%, -9.5px, 0); }

.toggle-label .toggle-icon:after {
  transform: translate3d(-50%, 5px, 0); }

.toggle:checked ~ .toggle-label .toggle-icon {
  background-color: transparent; }

.toggle:checked ~ .toggle-label .toggle-icon:before,
.toggle:checked ~ .toggle-label .toggle-icon:after {
  top: 0;
  background: #fff; }
@incldue sp {
  .toggle:checked ~ .toggle-label .toggle-icon:before,
  .toggle:checked ~ .toggle-label .toggle-icon:after {
    color: #000;
    background: inherit; } }
.toggle:checked ~ .toggle-label .toggle-icon:before {
  transform: translateX(-50%) rotate(45deg);
  top: 1.1px; }

.toggle:checked ~ .toggle-label .toggle-icon:after {
  transform: translateX(-50%) translateY(-10px) rotate(-45deg);
  top: 8.5px; }

.toggle:checked ~ .toggle-label .toggle-text:before {
  color: #fff; }
  @media (max-width: 590px) {
    .toggle:checked ~ .toggle-label .toggle-text:before {
      color: #000; } }

.toggle:checked ~ .toggle-label .toggle-text:after {
  visibility: visible;
  opacity: 1;
  color: #fff; }

@media screen and (max-width: 834px) {
  header.lower_header .hamburger {
    display: block; }

  .toggle-label .toggle-icon,
  .toggle-label .toggle-icon:before,
  .toggle-label .toggle-icon:after {
    background: #000; }

  .toggle-label .toggle-text {
    color: #000; }

  .toggle:checked ~ .toggle-label .toggle-icon {
    background-color: none;
    box-shadow: none; }

  .toggle:checked ~ .toggle-label .toggle-icon:before,
  .toggle:checked ~ .toggle-label .toggle-icon:after {
    background: #1a1a1a;
    box-shadow: none; }

  .toggle:checked ~ .toggle-label .toggle-text:after {
    color: #1a1a1a !important;
    text-shadow: none; } }
@media screen and (max-width: 640px) {
  .hamburger {
    position: fixed;
    top: .5%; } }
/* ---------------------------------------------------------------- *
  フェードイン・フェードインスライドの設定
 * ---------------------------------------------------------------- */
.fi {
  transition: 1s;
  opacity: 0; }

.fi_add {
  opacity: 1; }

.fis {
  transition: 1s;
  opacity: 0;
  transform: translate(0, 12px);
  -webkit-transform: translate(0, 12px); }

.fis_add {
  opacity: 1;
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0); }

.fisl {
  transition: 1s;
  transform: translate(-20%, 0);
  -webkit-transform: translate(-20%, 0); }

.fisl_add {
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0); }

.fisr {
  transition: 1s;
  transform: translate(20%, 0);
  -webkit-transform: translate(20%, 0); }

.fisr_add {
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0); }

.fis_nav {
  transition: 1s;
  opacity: 0;
  transform: translate(0, 10px);
  -webkit-transform: translate(0, 10px); }

.fis_nav_add {
  opacity: 1;
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0); }

@media screen and (max-width: 640px) {
  .fisl {
    transform: translate(-20%, 0);
    -webkit-transform: translate(-20%, 0); }

  .fisl_add {
    transform: translate(0, 0);
    -webkit-transform: translate(0, 0); }

  .fisr {
    transform: translate(20%, 0);
    -webkit-transform: translate(20%, 0); }

  .fisr_add {
    transform: translate(0, 0);
    -webkit-transform: translate(0, 0); }

  ul.fis_nav li {
    transition: 0.4s;
    opacity: 0;
    transform: translate(0, 18%);
    -webkit-transform: translate(0, 18%); }

  ul.fis_nav_add li {
    opacity: 1;
    transform: translate(0, 0);
    -webkit-transform: translate(0, 0); }

  ul.fis_nav h1.logo {
    transition: 1s;
    opacity: 0;
    transform: translate(0, 0);
    transition-delay: 0.1s; }

  ul.fis_nav_add h1.logo {
    opacity: 1;
    transform: translate(0, 0);
    -webkit-transform: translate(0, 0); }

  ul.fis_nav li:nth-child(1) {
    transition-delay: 0.05s; }

  ul.fis_nav li:nth-child(2) {
    transition-delay: 0.1s; }

  ul.fis_nav li:nth-child(3) {
    transition-delay: 0.15s; }

  ul.fis_nav li:nth-child(4) {
    transition-delay: 0.2s; }

  ul.fis_nav li:nth-child(5) {
    transition-delay: 0.25s; }

  ul.fis_nav li:nth-child(6) {
    transition-delay: 0.3s; }

  ul.fis_nav li:nth-child(7) {
    transition-delay: 0.35s; }

  ul.fis_nav li:nth-child(8) {
    transition-delay: 0.4s; }

  ul.fis_nav li:nth-child(9) {
    transition-delay: 0.45s; }

  ul.fis_nav li:nth-child(10) {
    transition-delay: 0.5s; }

  .fis_sns {
    transform: translate(0, -60%);
    transition: 0.6s; }

  .fis_sns_add {
    transform: translate(0, 0); } }
/* ---------------------------------------------------------------- *
  その他
 * ---------------------------------------------------------------- */
.tAc {
  text-align: center; }

.tAl {
  text-align: left; }

.tAr {
  text-align: right; }

.font-s {
  font-size: 0.8em; }

@media screen and (max-width: 640px) {
  .sp_tAl {
    text-align: left; } }
.p-1 {
  padding: 1em; }

.w-10 {
  width: 10%; }

.w-20 {
  width: 20%; }

.w-30 {
  width: 30%; }

.w-40 {
  width: 40%; }

.w-50 {
  width: 50%; }

.w-60 {
  width: 60%; }

.w-70 {
  width: 70%; }

.w-80 {
  width: 80%; }

.w-90 {
  width: 90%; }

.w-100 {
  width: 100%; }

@media screen and (max-width: 640px) {
  .sw-10 {
    width: 10%; }

  .sw-20 {
    width: 20%; }

  .sw-30 {
    width: 30%; }

  .sw-40 {
    width: 40%; }

  .sw-50 {
    width: 50%; }

  .sw-60 {
    width: 60%; }

  .sw-70 {
    width: 70%; }

  .sw-80 {
    width: 80%; }

  .sw-90 {
    width: 90%; }

  .sw-100 {
    width: 100%; } }
/* ---------------------------------------------------------------- *
  追加分
 * ---------------------------------------------------------------- */
.slick-dotted.slick-slider {
  margin: 0 !important; }

.gentei {
  margin: 0 0 30px;
  padding: 20px 0;
  background-image: url(./images/bg_gentei.png);
  background-size: 100%;
  background-repeat: repeat; }
  @media (max-width: 590px) {
    .gentei {
      padding: 20px 0; } }
  .gentei_bnr {
    margin: 0 auto;
    max-width: 800px;
    display: block;
    width: 100%;
    height: auto; }
    @media (max-width: 834px) {
      .gentei_bnr {
        max-width: 90%; } }

.fv_bnr {
  margin: auto;
  max-width: 1180px;
  display: flex;
  align-items: center;
  justify-content: center; }
  @media (max-width: 590px) {
    .fv_bnr {
      display: block; } }
  .fv_bnr > * {
    margin: 0 .5%;
    width: 40%; }
    @media (max-width: 590px) {
      .fv_bnr > * {
        margin: 0 4% 10px;
        width: 92%; } }
  .fv_bnr img {
    display: block;
    width: 100%;
    height: auto; }

.p-restaurant_copy {
  text-align: center !important;
  line-height: 2.8 !important; }
.p-restaurant_item {
  margin: 120px 0;
  text-align: center; }
  @media (max-width: 590px) {
    .p-restaurant_item {
      margin: 100px 0; } }
  .p-restaurant_item--slider {
    margin: 30px auto 0; }
    @media (max-width: 590px) {
      .p-restaurant_item--slider {
        width: 100%; } }
    .p-restaurant_item--slider .slick-list {
      padding: 0 16% 0 0; }
      @media (max-width: 590px) {
        .p-restaurant_item--slider .slick-list {
          padding: 0; } }
    .p-restaurant_item--slider .slick-dots {
      right: 20%;
      width: 180px !important;
      display: flex !important;
      justify-content: flex-end !important; }
      @media (max-width: 590px) {
        .p-restaurant_item--slider .slick-dots {
          right: 10px !important;
          bottom: 10px !important; } }
      .p-restaurant_item--slider .slick-dots li button:before {
        width: 10px;
        height: 10px;
        background-color: transparent !important;
        content: "";
        border: 1px solid #fff;
        border-radius: 50%;
        opacity: 1 !important; }
      .p-restaurant_item--slider .slick-dots li.slick-active button:before {
        background-color: #fff !important; }
    .p-restaurant_item--slider li {
      margin: 0 20px 0 0; }
      @media (max-width: 590px) {
        .p-restaurant_item--slider li {
          margin: 0; } }
    .p-restaurant_item--slider img {
      display: block;
      width: 100%;
      height: auto; }
  .p-restaurant_item--text {
    text-align: center !important; }

.p-restaurant_info {
  margin: 30px auto 180px;
  max-width: 1000px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  text-align: center; }
  .p-restaurant_info > * {
    margin-bottom: 1em;
    width: 47%;
    width: 100%;
     }
    @media (max-width: 590px) {
      .p-restaurant_info > * {
        margin-bottom: 60px;
        width: 100%; } }
    @media (max-width: 590px) {
      .p-restaurant_info > * img {
        display: block;
        width: 94%;
        height: auto;
        margin: auto; } }
  .p-restaurant_info--title {
    letter-spacing: .05em; }
    .p-restaurant_info--title span {
      display: block;
      font-weight: 500;
      font-size: 13px;
      color: #7d7d7d;
      letter-spacing: .25em; }
  .p-restaurant_info--text {
    margin: auto;
    width: 86%;
    font-size: 14px; }
    @media (max-width: 590px) {
      .p-restaurant_info--text {
        width: 92%;
        text-align: left !important; } }

.p-restaurant_info li{
  display: flex;
  flex-direction: row;}
   @media (max-width: 590px) {
    .p-restaurant_info li{
      flex-direction: column;
       }}
   .p-restaurant_info li img{
    width: 70%;
   }
    @media (max-width: 590px) {
.p-restaurant_info li img{
  width: 94%;
}}
  .p-restaurant_info li div h3, .p-restaurant_info li div p{
  text-align: left;
  width: 86%;
  margin-left: auto;
  margin-right: auto;
  }
@media (max-width: 590px) {
 .p-restaurant_info li div h3{
 text-align: center;
}}

.p-oshinagaki {
  margin: 30px auto;
  padding: 1.6em 1.6em 1.6em 4em;
  max-width: 900px;
  background-color: #e7e6e3;
  display: flex;
  flex-wrap: wrap; }
  @media (max-width: 590px) {
    .p-oshinagaki {
      padding: 1em; } }
  .p-oshinagaki_data {
    width: 40%;
    display: flex;
    align-items: center; }
    @media (max-width: 590px) {
      .p-oshinagaki_data {
        padding: 30px 0 40px;
        width: 100%;
        justify-content: center;
        text-align: center; } }
    .p-oshinagaki_data--subTitle {
      margin: 0;
      color: #7d7d7d;
      font-size: 14px; }
    .p-oshinagaki_data--title {
      margin: .4em 0;
      font-weight: 500;
      letter-spacing: .28em;
      font-size: 26px; }
      @media (max-width: 590px) {
        .p-oshinagaki_data--title {
          font-size: 21px; } }
    .p-oshinagaki_data--link {
      display: inline-block;
      margin: 1.4em 0 0;
      padding: .6em 2.3em;
      line-height: 1;
      font-size: 15px;
      color: #fff !important;
      background-color: #323232; }
      @media (max-width: 590px) {
        .p-oshinagaki_data--link {
          padding: .6em 2em; } }
  .p-oshinagaki_image {
    width: 60%; }
    @media (max-width: 590px) {
      .p-oshinagaki_image {
        width: 100%; } }

.yoyaku_right {
  display: flex;
  writing-mode: vertical-rl;
  align-items: center;
  background: #323232;
  border: 1px solid #fff;
  color: #fff;
  padding: 10px 6px;
  margin-top: 10px;
  letter-spacing: 1.4px;
  position: absolute;
  right: 48px;
  top: 80px;
  height: max-content; }
  @media (max-width: 834px) {
    .yoyaku_right {
      display: none; } }

.yoyaku_right .btn_reserve {
  padding: 0.8em 0;
  font-size: 16px;
  margin: 1em 0 0 0;
  background: #D25945; }
  @media (max-width: 590px) {
    .yoyaku_right .btn_reserve {
      font-size: 12px; } }
