section * {
  box-sizing: border-box;
}
section img {
  width: 100%;
  height: auto;
}
.fnt-notoserif {
  font-family: "Noto Serif JP", serif;
}
.block p {
  padding: 0;
}
h2,
h3,
h4 {
  padding: 0;
}
.sl {
  display: block !important;
}
body.navOpen,
body.navOpen *,
body.navOpen *:hover,
body.navOpen *:focus,
body.navOpen *:active {
  touch-action: none !important;
  pointer-events: none !important;
}
body.navOpen .hamburger,
body.navOpen #navigation,
body.navOpen #navigation * {
  touch-action: auto !important;
  pointer-events: visible !important;
}
.navOpen {
  overflow: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  touch-action: none !important;
  pointer-events: none !important;
}
.navOpen .ft-fixed *,
.navOpen .ft-fixed a,
.navOpen .ft-fixed img {
  touch-action: auto !important;
  pointer-events: visible !important;
}
.remodal-is-opened {
  touch-action: auto !important;
  pointer-events: visible !important;
}
#navigation {
  background: #2c2c2c;
  padding: 72px 6.5% 120px;
  box-sizing: border-box;
  width: 100%;
  position: fixed;
  top: 0;
  left: -100%;
  z-index: 999;
  bottom: 0;
  overflow: auto;
  pointer-events: none;
  transition: all 0.5s ease 0s;
  -moz-transition: all 0.5s ease 0s;
  -webkit-transition: all 0.5s ease 0s;
}
.navOpen #navigation {
  pointer-events: auto;
  left: 0;
}
.ft-fixed {
  position: fixed;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 99;
  overflow: hidden;
  transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
  display: flex;
  padding-right: 16%;
  background: #1e2332;
  color: #fff;
  text-align: center;
  height: 68px;
}
.ft-fixed li {
  padding: 14px 5px 7px;
}
.ft-fixed li a {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.ft-fixed li a img {
  height: 18px;
  width: auto;
  display: block;
  margin: 0 auto 0;
}
.ft-fixed .btn-map {
  width: 21%;
}
.ft-fixed .tel {
  width: 44%;
  background: #fff;
  padding: 20px 0 0;
}
.ft-fixed .tel img {
  height: 32px;
  width: auto;
}
.ft-fixed .btn-web {
  flex: 1;
  background:
    url(../img/shared/vertical_line.jpg) repeat-y left top/1px auto,
    url(../img/shared/vertical_line.jpg) repeat-y right top/1px auto,
    url(../img/shared/hor_line.png) repeat-x top left/auto 1px,
    url(../img/shared/hor_line.png) repeat-x bottom left/auto 1px;
}
#banner {
  margin: 5vw 4% 0;
}
.photo-line {
  position: relative;
}
.photo-line::before {
  content: "";
  background: url(../img/shared/bg7.jpg);
  position: absolute;
  top: -9px;
  right: 9px;
  left: -9px;
  bottom: 9px;
  z-index: -1;
}
#header * {
  box-sizing: border-box;
}
#header p {
  padding: 0;
}
#header img {
  width: 100%;
  height: auto;
}
#header .logo {
  position: absolute;
  top: 8.7vw;
  left: 50%;
  transform: translateX(-50%);
  width: 57.1%;
  z-index: 9;
}
#header #key {
  position: relative;
}
#header #belt .nav {
  border-top: 1px solid #434241;
}
#header #belt .nav li {
  padding: 9px 0 9px 29px;
  border-bottom: 1px solid #434241;
}
#header #belt .nav li a {
  font-size: 19px;
  letter-spacing: 0.06em;
  display: inline-block;
  position: relative;
}
#header #belt .nav li a::before {
  content: "";
  background: #b10505;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  position: absolute;
  top: -1px;
  left: -13px;
  z-index: -1;
  opacity: 0;
  visibility: hidden;
}
#header #belt .nav li a.active::before {
  opacity: 1;
  visibility: visible;
}
#header #belt .nav-sub {
  margin: 13px 14px 0;
  display: flex;
  flex-wrap: wrap;
}
#header #belt .nav-sub li {
  margin-right: 8px;
}
#header #belt .nav-sub li:nth-child(2n) {
  margin-right: 0;
}
#header #belt .nav-sub li a {
  font-size: 17px;
  letter-spacing: 0.06em;
  display: inline-block;
  border: 1px solid #b0aba3;
  padding: 0 7.5vw;
  line-height: 26px;
  text-align: center;
  min-width: 34.5vw;
}
#header #belt .nav-sub li a img {
  height: 15px;
  width: auto;
  margin-right: 4px;
  position: relative;
  top: -3px;
}
#header #belt .nav-sub .link2 {
  margin-bottom: 6px;
}
#header #belt .nav-sub .link2 a {
  padding: 0 5vw;
}
#header #belt .tel {
  margin: 25px 1% 5vw;
}
#header #belt .sns {
  display: flex;
  position: absolute;
  top: 24px;
  right: 24px;
}
#header #belt .sns li:not(:last-child) {
  margin-right: 20px;
}
#header #belt .sns li img {
  height: 27px;
  width: auto;
}
#footer {
  color: #270900;
  background: url(../img/shared/bg5.jpg) repeat;
  font-size: 13px;
  line-height: 22px;
}
#footer * {
  box-sizing: border-box;
}
#footer p {
  padding: 0;
}
#footer img {
  width: 100%;
  height: auto;
}
#footer .set1 {
  padding: 15vw 0 20vw;
}
#footer .set1 .item1 {
  text-align: center;
  padding-bottom: 35px;
  margin-bottom: 19px;
  border-bottom: 1px solid #2c2c2c;
}
#footer .set1 .item1 .logo {
  width: 73%;
  margin: 0 auto;
}
#footer .set1 .item1 .note {
  margin: 5px 0 16px;
  letter-spacing: 0.06em;
}
#footer .set1 .item1 .btn-web {
  margin: 21px 3% 25px;
}
#footer .set1 .item1 .btn-web a {
  font-size: 5vw;
  color: #000;
  display: block;
  padding: 3vw 5%;
  text-align: center;
  border: 1px solid #2c2c2c;
  position: relative;
}
#footer .set1 .item1 .btn-web a span {
  letter-spacing: 0.06em;
  display: inline-block;
  position: relative;
  padding-right: 8vw;
}
#footer .set1 .item1 .btn-web a span::after {
  content: "";
  background: url(../img/shared/ft_arr.png) no-repeat right center/100% auto;
  width: 2.7vw;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
}
#footer .set1 .item1 .sns {
  display: flex;
  justify-content: center;
}
#footer .set1 .item1 .sns li:not(:last-child) {
  margin-right: 23px;
}
#footer .set1 .item1 .sns li img {
  height: 27px;
  width: auto;
}
#footer .set1 .item2 {
  margin-top: 20px;
}
#footer .set1 .item2 .list dl {
  display: flex;
  letter-spacing: 0.06em;
}
#footer .set1 .item2 .list dl:not(:last-child) {
  margin-bottom: 10px;
}
#footer .set1 .item2 .list dl dt {
  width: 20%;
  text-align: right;
  margin-right: 16px;
}
#footer .set1 .item2 .list dl dd {
  flex: 1;
}
#footer .set1 .item2 .list dl dd span {
  margin-left: 48px;
}
#footer .set2 {
  background: url(../img/shared/bg2.jpg);
  padding: 10vw 0 35vw;
  text-align: center;
}
#footer .set2 .cookies_link a {
  display: inline-block;
  letter-spacing: 0.06em;
  position: relative;
  padding-right: 23px;
}
#footer .set2 .cookies_link a::before {
  content: "";
  border-top: 1px solid #4c473b;
  position: absolute;
  right: 0;
  bottom: 1px;
  left: -5px;
}
#footer .set2 .cookies_link a::after {
  content: "";
  background: url(../img/shared/icon_cookie.png) no-repeat 0 0/100% auto;
  width: 13px;
  height: 13px;
  position: absolute;
  top: 3px;
  right: 3px;
}
#footer .set2 #socialbuttons {
  margin: 27px 0 20px;
}
#footer .set2 address {
  letter-spacing: 0.06em;
}
.accordion-shared1 {
  color: #fff;
  background: #1e2332;
  margin-top: 5vw;
  position: relative;
  margin-right: 8px;
}
.accordion-shared1::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 8px;
  right: -8px;
  bottom: -4px;
  margin: 0;
  background:
    url(../img/shared/vertical_line.jpg) repeat-y left top,
    url(../img/shared/vertical_line.jpg) repeat-y right top,
    url(../img/shared/hor_line.png) repeat-x top left,
    url(../img/shared/hor_line.png) repeat-x bottom left;
  transition: 0.2s ease;
}
.accordion-shared1.active::after {
  top: 12px;
  bottom: -12px;
}
.accordion-shared1.active .toggle-link::before {
  transform: translateX(-50%) rotate(180deg);
}
.accordion-shared1 .toggle-link {
  font-size: 4vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 5.5vw 5%;
  position: relative;
}
.accordion-shared1 .toggle-link::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 5px solid rgba(0, 0, 0, 0);
  border-right: 5px solid rgba(0, 0, 0, 0);
  border-top: 9px solid #fff;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 2.5vw;
  transition: 0.5s ease;
}
.accordion-shared1 .toggle-link::after {
  content: none !important;
}
.accordion-shared1 .toggle-main {
  text-align: left;
  padding: 3vw 8% 6vw;
}
.accordion-popup .toggle-main {
  font-size: 14px;
  padding-bottom: 10vw;
}
.accordion-popup .toggle-main .content {
  margin-top: 30px;
}
.accordion-popup .toggle-main .content .item:not(:last-child) {
  margin-bottom: 22px;
}
.accordion-popup .toggle-main .content .item h3 {
  font-size: 16px;
  letter-spacing: 0.1em;
  padding: 0 5px 4px;
  border-bottom: 1px solid #fff;
  display: inline-block;
  min-width: 85%;
}
.accordion-popup .toggle-main .content .item ul {
  padding: 8px 5px;
}
.food-accordion .toggle-main {
  padding-bottom: 10vw;
}
.food-accordion .toggle-main .content {
  margin-top: 10vw;
}
.food-accordion .toggle-main .content .item:not(:last-child) {
  margin-bottom: 30px;
}
.food-accordion .toggle-main .content .item h3 {
  font-size: 4vw;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
  color: #fff;
  background: url(../img/shared/bg2.jpg);
  padding: 2vw 5%;
  margin-bottom: 4vw;
}
.box-shared {
  padding: 4vw 5% 7vw;
  margin: 9vw auto 0;
  background: #b10505;
  color: #fff;
  text-align: center;
}
.box-shared .tel dt {
  width: 68%;
  margin: 0 auto;
}
.box-shared .tel dd {
  font-size: 3vw;
  letter-spacing: 0.06em;
  margin-top: 0;
}
.box-shared .reserve {
  width: 58%;
  margin: 9px auto 0;
}
.box-shared .reserve a {
  background: url(../img/shared/bg2.jpg);
  padding: 1vw 9%;
  display: block;
  font-size: 3.5vw;
  letter-spacing: 0.22em;
  position: relative;
  text-align: left;
}
.box-shared .reserve a::after {
  content: "";
  background: url(../img/party/reserve_arr.png) no-repeat right center/100% auto;
  width: 6px;
  position: absolute;
  top: 2px;
  right: 6%;
  bottom: 0;
}
