@charset "UTF-8";
/*-----------------------------------
	base
-----------------------------------*/
html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-size: 62.5%; /*10px*/
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  scroll-behavior: smooth;
  scroll-snap-type: y proximity;
  scroll-padding-top: 160px;
}
body {
  font-size: 1.4rem;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  color: #000000;
  background: #ffffff;
  width: 100%;
  padding: 0;
  margin: 0;
  overflow-x: hidden;
  box-sizing: border-box;
  position: relative;
  z-index: 999;
}
.contents_inner {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
a,
a:link,
a:visited {
  display: block;
  text-decoration: none;
  color: #000000;
  transition: 0.3s;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.8;
  }
}
a[href^="tel:"] {
  pointer-events: none;
}
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
/* font */
.ns {
  font-family: "Noto Sans JP", sans-serif;
}
.zkg {
  font-family: "Zen Kaku Gothic New", sans-serif;
}
/* device */
.pc {
  display: block;
}
.sp {
  display: none;
}
/* flexbox */
.row_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
@media screen and (max-width: 640px) {
  html {
    scroll-padding-top: 124px;
  }
  a[href^="tel:"] {
    pointer-events: auto;
  }
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
/*-----------------------------------

	header

-----------------------------------*/
header {
  width: 100vw;
  margin: auto;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
}
header .contents_inner {
  width: 100%;
  max-width: initial;
}
/* sub_container */
header .sub_container {
  color: #ffffff;
  background: #7a62a8;
  padding: 15.5px 71px 14.5px 78px;
  align-items: center;
}
html[lang="en"] header .sub_container {
  flex-wrap: nowrap;
}
header .sub_container .lang_select_wrap {
  gap: 10px 9px;
}
header .sub_container .catchcopy {
  font-size: 14px;
  font-weight: 300;
  line-height: 1.79;
}
header .sub_container .lang_ttl {
  font-size: 15px;
  font-weight: 300;
}
header .sub_container .lang_select_wrap {
  align-items: center;
}
header .sub_container .lang_select_box {
  width: max-content;
  position: relative;
}
header .sub_container .gt_switcher {
  appearance: none;
  -webkit-appearance: none;
  font-size: 15px;
  font-weight: 300;
  color: #000000;
  width: 181px;
}
header .sub_container .gt_switcher .gt_selected a,
header .sub_container .gt_switcher .gt_option,
header .sub_container .gt_switcher .gt_option a {
  font-size: 15px;
  color: #000000;
  background: #ffffff;
  width: 161px;
  padding: 5px 10px;
  border: none;
  overflow-y: hidden !important;
}
header .sub_container .gt_switcher .gt_option {
  padding: 0 0 7px 0;
  width: 181px;
  max-height: 68px;
  position: absolute;
  top: 32px;
  left: 0;
  z-index: 10001;
}
header .sub_container .gt_switcher .gt_selected a:after {
  background: url(../img/common/icon_select_arw_btm.svg) no-repeat center /
    contain;
  width: 12px;
  height: 8px;
  margin: auto;
  top: 0;
  bottom: 0;
}
/* main_container */
header .main_container {
  background: #ffffff;
  padding: 1px 70px 1px 56px;
  align-items: center;
}
header .main_container .logo_box a {
  display: flex;
  align-items: center;
}
header .main_container .hd_logo {
  width: 84px;
}
header .main_container .logo_txt {
  width: 334px;
}
header .main_container #toggle {
  background: url(../img/common/icon_menu.svg) no-repeat center / contain;
  width: 55px;
  height: 33px;
  cursor: pointer;
  position: relative;
  z-index: 10000;
}
header .main_container #toggle.active {
  background: url(../img/common/icon_menu_close.svg) no-repeat center / contain;
  width: 51px;
  height: 51px;
}
header .main_container .menu_ttl {
  display: none;
}
header .main_container #overlay {
  background: #fbeddd;
  min-width: 374px;
  width: max-content;
  max-width: 100%;
  height: 100vh;
  padding: 144px 51.5px 32px;
  overflow-y: auto;
  position: fixed;
  top: 0;
  right: -100%;
  z-index: 9999;
  transition: 0.6s right;
}
header .main_container #overlay.open {
  right: 0%;
}
header .main_container #overlay .mb {
  margin-bottom: 27px;
}
header .main_container #overlay a,
header .main_container #overlay .lw_title {
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  padding-left: 1em;
  position: relative;
  cursor: pointer;
}
header .main_container #overlay .lw_menu a {
  margin-left: 0.9em;
}
header .main_container #overlay a::before,
header .main_container #overlay .lw_title::before {
  content: "■";
  display: block;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  color: #d4145a;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
header .main_container #overlay .lw_menu a::before {
  color: #c69c6d;
}
header .main_container #overlay .lw_menu {
  display: none;
}
@media screen and (max-width: 1200px) {
  html[lang="en"] header .sub_container .catchcopy .sp {
    display: block;
  }
}
@media screen and (max-width: 1024px) {
  html[lang="en"] header .sub_container {
    padding: 15.5px 37px 14.5px 27px;
  }
  html[lang="en"] header .sub_container .catchcopy {
    font-size: 10px;
  }
}
@media screen and (max-width: 840px) {
  header .sub_container .catchcopy .sp {
    display: block;
  }
}
@media screen and (max-width: 640px) {
  /* sub_container */
  header .sub_container {
    padding: 6px 14px !important;
    flex-wrap: nowrap;
  }
  header .sub_container .catchcopy {
    font-size: 10px;
    line-height: 1.3;
  }
  html[lang="en"] header .sub_container .catchcopy {
    max-width: 152px;
  }
  html[lang="en"] header .sub_container .lang_select_wrap {
    flex-wrap: nowrap;
  }
  header .sub_container .lang_ttl {
    font-size: 10px;
  }
  header .sub_container .lang_select_box::before {
    width: 12px;
    left: 7px;
  }
  header .sub_container .lang_select_box::after {
    width: 7px;
    height: 4px;
    right: 6px;
  }
  header .sub_container .gt_switcher {
    font-size: 10px;
    width: 109px;
    height: 22px;
  }
  header .sub_container .gt_switcher .gt_selected a,
  header .sub_container .gt_switcher .gt_option,
  header .sub_container .gt_switcher .gt_option a {
    font-size: 10px;
    width: 101px;
    padding: 5px 4px;
  }
  header .sub_container .gt_switcher .gt_option {
    max-height: 44px;
    padding: 0;
    width: 109px;
    top: 22px;
  }
  header .sub_container .gt_switcher .gt_selected a:after {
    width: 7px;
    height: 4px;
    right: 6px;
  }
  header .sub_container .gt_switcher a img {
    width: 12px;
    height: 12px;
  }
  /* main_container */
  header .main_container {
    padding: 7.25px 17px 7.25px 4px;
  }
  header .main_container .logo_box a {
    align-items: center;
  }
  header .main_container .hd_logo {
    width: 68px;
  }
  header .main_container .logo_txt {
    width: 128px;
    padding-bottom: 0;
    margin-left: -2px;
  }
  header .main_container #toggle {
    background: url(../img/common/sp/icon_menu.svg) no-repeat center / contain;
    width: 34px;
    height: 27px;
  }
  header .main_container #toggle.active {
    background: url(../img/common/sp/icon_menu_close.svg) no-repeat center /
      contain;
    width: 43px;
    height: 43px;
  }
  header .main_container .menu_ttl {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 6px;
  }
  header .main_container #overlay {
    align-items: flex-start;
    background: #a67c52;
    min-width: 287px;
    height: calc(100dvh - 167.3px);
    padding: 50px 39px 15px 46px;
    top: 114.1px;
  }
  html[lang="en"] header .main_container #overlay {
    top: 140px;
    height: calc(100dvh - 193.2px);
  }
  header .main_container #overlay .mb {
    margin-bottom: 52px;
  }
  header .main_container #overlay a,
  header .main_container #overlay .lw_title {
    font-size: 12.7px;
    color: #ffffff;
  }
  header .main_container #overlay .lw_menu a {
    font-weight: 300;
    color: #f2f2f2;
  }
  header .main_container #overlay a::before,
  header .main_container #overlay .lw_title::before {
    font-size: 12.7px;
    color: #ffffff;
  }
  header .main_container #overlay .lw_menu a::before {
    color: #c7b299;
  }
  header .main_container #overlay .lw_title::after {
    background: url(../img/common/icon_select_arw_btm_wh.svg) no-repeat center /
      contain;
    width: 12px;
    height: 8px;
    top: 10px;
    left: 76px;
  }
  header .main_container #overlay .lw_title.active::after {
    top: 9px;
  }
}
@media screen and (max-width: 350px) {
  header .sub_container #lang_select {
    width: 89px;
  }
}
/*-----------------------------------

	fixed_menu

-----------------------------------*/
#fixed_menu {
  background: #8c6239;
  width: 100vw;
  position: relative;
  bottom: 0;
  z-index: 9998;
}
#fixed_menu .left {
  display: none;
  background: #8c6239;
  width: 352px;
  height: 121px;
  border-bottom-right-radius: 15px;
  position: fixed;
  left: 75px;
  bottom: 25px;
}
#fixed_menu .left a {
  padding: 19px 25px;
}
#fixed_menu .right {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 380px;
  right: 25px;
  gap: 33px 0;
}
@media screen and (max-height: 770px) {
  #fixed_menu .right {
    top: 300px;
  }
}
#fixed_menu .right a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  background: #7a62a8;
  width: 96px;
  height: 73px;
  border-bottom-left-radius: 7px;
}
#fixed_menu .right a.onlineshop img {
  width: 36px;
  margin-bottom: 4px;
}
#fixed_menu .right a.takeout img {
  width: 30px;
  margin-bottom: 7px;
}
#fixed_menu .right a.reserve img {
  width: 20px;
  margin-bottom: 5px;
}
#fixed_menu .right p {
  font-size: 13px;
}
#fixed_menu #overlay_reserve {
  display: none;
}
#fixed_menu .bottom {
  background: #8c6239;
  width: 100vw;
  margin: auto;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  transition: 1.2s;
}
#fixed_menu .bottom.hide {
  bottom: -100%;
}
#fixed_menu .btm_wrap {
  width: 90%;
  max-width: 943px;
  margin: 0 auto 3px;
  align-items: center;
}
#fixed_menu .bottom p {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.79;
  letter-spacing: 0;
  text-align: center;
  color: #ffffff;
}
html[lang="en"] #fixed_menu .bottom p {
  font-size: 13px;
}
#fixed_menu .btm_lt {
  background: url(../img/common/icon_bg_crowdlevel.svg) no-repeat center left /
    contain;
  width: 220px;
  padding: 16px 24px;
}
#fixed_menu .btm_rt {
  width: calc(100% - 236px);
  padding: 6px 0;
  gap: 6px 0;
}
#fixed_menu .btm_rt_box {
  width: calc(calc(100% - 12px) / 3);
  padding: 3.5px 10px;
  border: 1px solid rgba(255, 255, 255, 0.5);
}
@media screen and (max-width: 640px) {
  #fixed_menu {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    left: 0;
  }
  #fixed_menu img {
    margin: 0 auto;
  }
  #fixed_menu .left,
  #fixed_menu .right {
    position: static;
  }
  #fixed_menu .left {
    display: block;
    width: calc(100% / 4);
    height: auto;
    border-radius: none;
  }
  #fixed_menu .left a {
    padding: 6px 0;
  }
  #fixed_menu .left a img {
    background: #714f2b;
    width: 65px;
  }
  #fixed_menu .right {
    flex-direction: row;
    width: 100%;
  }
  #fixed_menu .right a {
    justify-content: flex-end;
    background: none;
    width: calc(100% / 3);
    height: auto;
    padding: 3px 0 4px;
  }
  #fixed_menu .right a + a {
    border-left: 1px solid rgba(255, 255, 255, 0.3);
  }
  #fixed_menu .right a.onlineshop img {
    width: 28px;
    margin-bottom: 3px;
  }
  #fixed_menu .right a.takeout img {
    width: 23px;
    margin-bottom: 4px;
  }
  #fixed_menu .right a.reserve img {
    width: 16px;
    margin-bottom: 3px;
  }
  #fixed_menu .right p {
    font-size: 10px;
  }
  #fixed_menu #overlay_reserve {
    display: flex;
    align-items: flex-start;
    background: #7a62a8;
    min-width: 249px;
    width: max-content;
    max-width: 100%;
    height: calc(100dvh - 167.3px);
    padding: 50px 55px 15px 46px;
    overflow-y: auto;
    position: fixed;
    top: 114.1px;
    right: -100%;
    z-index: 9999;
    transition: 0.6s right;
  }
  html[lang="en"] #fixed_menu #overlay_reserve {
    top: 140px;
    height: calc(100dvh - 193.2px);
  }
  #fixed_menu #overlay_reserve.open {
    right: 0%;
  }
  #fixed_menu #overlay_reserve .menu_ttl {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 10px;
  }
  #fixed_menu #overlay_reserve .menu_ttl_sub {
    font-size: 13px;
    font-weight: 400;
  }
  #fixed_menu #overlay_reserve li {
    position: relative;
  }
  #fixed_menu #overlay_reserve li:not(:last-of-type) {
    margin-bottom: 17px;
  }
  #fixed_menu #overlay_reserve li::before,
  #fixed_menu #overlay_reserve li::after {
    content: "";
    display: block;
    background: rgba(255, 255, 255, 0.25);
    margin: auto;
    position: absolute;
    left: -11px;
    bottom: -8px;
    z-index: 1;
  }
  #fixed_menu #overlay_reserve li::before {
    width: 1px;
    height: calc(100% + 5px);
  }
  #fixed_menu #overlay_reserve li::after {
    width: calc(100% + 28px);
    height: 1px;
  }
  #fixed_menu #overlay_reserve a {
    font-size: 12.7px;
    font-weight: 400;
    line-height: 1.33;
    color: #ffffff;
    padding-left: 1em;
    position: relative;
  }
  #fixed_menu #overlay_reserve a::before {
    content: "☎︎";
    display: block;
    font-size: 12.7px;
    font-weight: 400;
    line-height: 1.33;
    color: #ffffff;
    position: absolute;
    top: 0;
    left: 0;
  }
  #fixed_menu .bottom {
    display: none;
  }
}
/*-----------------------------------

	contents

-----------------------------------*/
#contents {
  position: relative;
}
/* error_block */
#contents #error_block {
  margin-top: 192px;
}
#contents #error_block p {
  text-align: center;
  padding: 8em 0;
}
/* link_btn */
#contents .link_btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ffffff;
  width: 243px;
  padding: 10.5px 14px 10.5px 12px;
  position: relative;
}
#contents .link_btn::before,
#contents .link_btn::after {
  content: "";
  display: block;
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
}
#contents .link_btn::before {
  background: #7a62a8;
  width: 6px;
  height: 14px;
  left: 0;
}
#contents .link_btn::after {
  background: url(../img/common/icon_btn_arw_rt.svg) no-repeat center / contain;
  width: 6px;
  height: 11px;
  left: 93px;
}
#contents .link_btn * {
  text-align: left;
  color: #000000 !important;
}
#contents .link_btn .en {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
}
#contents .link_btn .ja {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  white-space: pre-line;
  max-width: 120px;
}
/* scroll_box */
#scroll_box .scroll_txt {
  font-size: 19px;
  font-weight: 400;
  text-align: center;
  margin-bottom: 10px;
}
#scroll_box .scroll_line_wrap {
  overflow: hidden;
}
#scroll_box .scroll_line {
  background: rgba(0, 0, 0, 0.5);
  width: 1px;
  height: 162.5px;
  margin: 0 auto;
  animation: scroll_line_anim 2.4s ease-out infinite backwards;
}
@keyframes scroll_line_anim {
  0% {
    transform: translateY(-162.5px);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(162.5px);
  }
}
@media screen and (max-width: 640px) {
  /* error_block */
  #contents #error_block {
    margin-top: 99.5px;
  }
  #contents #error_block p {
    padding: 8em 0 4em;
  }
  /* link_btn */
  #contents .link_btn {
    width: 162px;
    padding: 7px 9px 7px 10px;
  }
  #contents .link_btn::before {
    width: 4px;
    height: 10px;
  }
  #contents .link_btn::after {
    width: 4px;
    height: 8px;
    left: 62px;
  }
  #contents .link_btn .en,
  #contents .link_btn .ja {
    font-size: 10px;
  }
  /* scroll_box */
  #scroll_box .scroll_txt {
    font-size: 11.7px;
    margin-bottom: 5px;
  }
  #scroll_box .scroll_line {
    height: 44px;
    animation: scroll_line_anim 2s ease-out infinite backwards;
  }
  @keyframes scroll_line_anim {
    0% {
      transform: translateY(-44px);
    }
    50% {
      transform: translateY(0);
    }
    100% {
      transform: translateY(44px);
    }
  }
}
/*-----------------------------------

	shopmap_block

-----------------------------------*/
#shopmap_block {
  margin-bottom: 88px;
}
#shopmap_block .contents_inner {
  max-width: 1138px;
}
#shopmap_block h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 34px;
  font-weight: 500;
  letter-spacing: 0.1em;
  background: url(../img/index/icon_shopmap_ttl.svg) no-repeat center / contain;
  width: 477px;
  height: 332px;
  margin: 0 auto 73.5px;
}
#shopmap_block .shopmap_wrap {
  gap: 38px 51px;
}
#shopmap_block .shopmap_box {
  width: calc((100% - 51px) / 2);
}
#shopmap_block .map_box {
  margin-bottom: 12px;
}
#shopmap_block iframe {
  width: 100%;
  height: min(24vw, 324px);
}
#shopmap_block .txt_box {
  align-items: flex-start;
}
#shopmap_block .shop_tel {
  font-size: 25px;
  font-weight: 500;
  width: calc(100% - 161px);
}
#shopmap_block .shop_tel a {
  display: inline;
  position: relative;
}
#shopmap_block .shop_tel a::before {
  content: "☎︎";
  display: inline;
  font-size: 25px;
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0;
}
#shopmap_block .shop_link_btn {
  font-size: 15px;
  font-weight: 600;
  background: #ffffff;
  width: 161px;
  padding: 7.5px 10px 9.5px 31px;
  border: 1px solid rgba(0, 0, 0, 0.5);
  position: relative;
}
#shopmap_block .shop_link_btn::after {
  content: "";
  display: block;
  background: url(../img/common/icon_btn_arw_rt.svg) no-repeat center / contain;
  width: 6px;
  height: 11px;
  margin: auto;
  position: absolute;
  top: 0;
  left: 14px;
  bottom: 0;
}
@media screen and (max-width: 640px) {
  #shopmap_block {
    padding-top: 56px;
    margin-bottom: 44px;
  }
  #shopmap_block .contents_inner {
    width: 87.25%;
  }
  #shopmap_block h2 {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.1em;
    width: 235px;
    height: 160px;
    margin: 0 auto 36px;
  }
  #shopmap_block .shopmap_wrap {
    gap: 24px 0;
  }
  #shopmap_block .shopmap_box {
    width: 100%;
  }
  #shopmap_block .shopmap_box:nth-child(1) {
    order: 2;
  }
  #shopmap_block .shopmap_box:nth-child(2) {
    order: 3;
  }
  #shopmap_block .shopmap_box:nth-child(3) {
    order: 4;
  }
  #shopmap_block .shopmap_box:nth-child(4) {
    order: 5;
  }
  #shopmap_block .shopmap_box:nth-child(5) {
    order: 1;
  }
  #shopmap_block .shopmap_box:nth-child(6) {
    order: 6;
  }
  #shopmap_block iframe {
    height: max(52vw, 195px);
  }
  #shopmap_block .map_box {
    margin-bottom: 8px;
  }
  #shopmap_block .shop_tel {
    font-size: 15.5px;
    line-height: 1.5;
    width: calc(100% - 97px);
  }
  #shopmap_block .shop_tel a::before {
    font-size: 15.5px;
    line-height: 1.4;
  }
  #shopmap_block .shop_link_btn {
    font-size: 10px;
    width: 97px;
    padding: 3px 7px 5px 18px;
  }
  #shopmap_block .shop_link_btn::after {
    width: 4px;
    height: 7px;
    left: 8%;
  }
}
/*-----------------------------------

	footer

-----------------------------------*/
footer {
  background: #595757;
  padding: 94px 0 78px;
}
footer .contents_inner {
  max-width: 1138px;
}
footer .footer_nav {
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 0 54px;
}
footer .footer_menu a {
  font-size: 18px;
  line-height: 2;
  color: #ffffff;
  padding-left: 1.2em;
  position: relative;
}
footer .footer_menu a::before {
  content: "";
  display: block;
  background: url(../img/common/icon_ft_link.svg) no-repeat center / contain;
  width: 18.7px;
  height: 30px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
@media screen and (max-width: 640px) {
  footer {
    padding: 44px 0;
  }
  footer .contents_inner {
    width: 87.25%;
  }
  footer .footer_nav {
    gap: 0 36px;
  }
  footer .footer_menu a {
    font-size: 12px;
  }
  footer .footer_menu a::before {
    width: 13.4px;
    height: 24px;
  }
}
/*-----------------------------------
	copy
-----------------------------------*/
#copy {
  text-align: center;
  padding: 14px 0 20px;
}
#copy small {
  font-size: 18px;
  font-weight: 600;
  line-height: 2;
}
@media screen and (max-width: 640px) {
  #copy {
    padding: 21px 0 76px;
  }
  #copy small {
    font-size: 11px;
  }
}
