@charset "UTF-8";
:root {
  --primary: #940320;
  --secondary: #b38a46;
  --third: #daa520;
  --pagetop-bottom: 90px;
  --menu-toggle-pb: 90px;
  --footer-pb: 30vw;
}

/* noto-sans-jp-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/noto-sans-jp-v56-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* noto-sans-jp-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/noto-sans-jp-v56-latin-700.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/roboto-v51-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* roboto-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Roboto";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/roboto-v51-latin-700.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
html.iphone {
  --pagetop-bottom: 120px;
  --menu-toggle-pb: 200px;
  --footer-pb: 40vw;
}

html:not(.responsive) {
  min-width: 1000px; /* viewport */
}

@media screen and (max-width: 767px) {
  html.responsive {
    --paddingWrap: 11vw;
    --paddingWrap-negative: calc(var(--paddingWrap) * -1);
  }
}

/*=============================================
 * body
 *=============================================*/
body {
  min-width: inherit;
  min-height: inherit;
  max-height: 100%;
  background: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 2.1153846154;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 767px) {
  body {
    text-align: justify;
  }
  body.navOpen .menu_toggle {
    opacity: 1;
    visibility: visible;
    pointer-events: visible;
  }
}
@media screen and (min-width: 768px) {
  body {
    font-size: 18px;
    line-height: 30px;
  }
}

/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
  font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif !important;
}

.fnt-roboto {
  font-family: "Roboto", sans-serif !important;
}

.cl-red {
  color: #ff0000 !important;
}

.cl-yellow {
  color: #fbea15 !important;
}

.fw-700 {
  font-weight: 700 !important;
}

/*=============================================
 * <main>
 *=============================================*/
main {
  clear: both;
  width: 100%;
  position: relative;
  overflow: hidden;
}

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

.wrap {
  width: 1000px;
}

.bg-parallax {
  position: relative;
  z-index: -1;
}
.bg-parallax .img-parallax {
  clip: rect(0, auto, auto, 0);
  margin-bottom: 0;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}
.bg-parallax .img-parallax img {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  padding: 0;
  margin: 0;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 0;
  transform: translateZ(0);
}

.copy.copied {
  pointer-events: none;
  cursor: default;
}

@media all and (-ms-high-contrast: none) {
  p.btn a img, header .nav-fl a img {
    transition: opacity 0s ease !important;
    -moz-transition: opacity 0s ease !important;
    -webkit-transition: opacity 0s ease !important;
  }
  .btn-over img,
  .over-img img,
  img.over,
  img:not(.btn):not(.non-over),
  button img {
    opacity: 1;
    transform: translateX(0) translateZ(0);
    -moz-transform: translateX(0) translateZ(0);
    -webkit-transform: translateX(0) translateZ(0);
    transition: none;
    -moz-transition: none;
    -webkit-transition: none;
  }
}
@media screen and (max-width: 767px) {
  html.responsive .wrap {
    width: auto;
    padding: 0 var(--paddingWrap);
  }
  .txt:not(.except) br:not(.except):not(.sp) {
    display: none;
  }
  .pc {
    display: none !important;
  }
  #pagetop img {
    width: 90px;
  }
}
@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
  #pagetop img {
    width: 90px;
  }
}
.btn-reserve .catch {
  display: inline-block;
  padding: 0 30px;
  background: var(--primary);
  color: #fff;
  border-radius: 99px;
  font-size: 15px;
  letter-spacing: 0.05em;
  position: relative;
  z-index: 1;
  transform: translateY(5px);
}
.btn-reserve .catch::before {
  content: "";
  border: 7px solid transparent;
  border-top: 13px solid var(--primary);
  border-bottom: 0;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}
.btn-reserve .catch ~ a {
  padding-top: 10px;
  padding-bottom: 10px;
}
.btn-reserve a {
  width: 100%;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  padding: 5px 20px;
  box-sizing: border-box;
  background: var(--secondary);
  color: #fff;
  font-size: 18px;
  letter-spacing: 0.05em;
  position: relative;
}
.btn-reserve a:hover {
  text-decoration: none;
}
.btn-reserve a::before {
  content: "";
  width: 50px;
  height: 50px;
  display: block;
  background: url("../img/shared/icon_mail.png") center/contain no-repeat;
}
.btn-reserve a::after {
  content: "";
  height: 100%;
  width: 25px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 39 39'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M18.950,0.429 C29.080,0.429 37.292,8.652 37.292,18.797 C37.292,28.941 29.080,37.166 18.950,37.166 C8.820,37.166 0.608,28.941 0.608,18.797 C0.608,8.652 8.820,0.429 18.950,0.429 Z'/%3E%3Cg%3E%3Cpath fill-rule='evenodd' stroke='rgb(177, 138, 74)' stroke-width='2px' stroke-linecap='butt' stroke-linejoin='miter' fill='none' d='M17.495,9.469 L25.155,18.797 L17.495,28.124 '/%3E%3C/g%3E%3Cpath fill='none' stroke='rgb(177, 138, 74)' stroke-width='2px' stroke-linecap='butt' stroke-linejoin='miter' d='M17.495,9.469 L25.155,18.797 L17.495,28.124 '/%3E%3C/svg%3E") center/contain no-repeat;
  position: absolute;
  top: 0;
  right: 15px;
}
@media screen and (min-width: 768px) {
  .btn-reserve .catch {
    padding: 0 30px;
    border-radius: 20px;
    font-size: 22px;
    transform: translateY(10px);
  }
  .btn-reserve .catch::before {
    border: 7px solid transparent;
    border-top: 13px solid var(--primary);
  }
  .btn-reserve .catch ~ a {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .btn-reserve a {
    max-width: 380px;
    padding: 5px 20px;
    font-size: 25px;
  }
  .btn-reserve a:hover {
    opacity: 0.7;
  }
  .btn-reserve a::before {
    width: 57px;
    height: 57px;
  }
  .btn-reserve a::after {
    width: 25px;
    right: 20px;
  }
}

.ttl-style-1 {
  font-weight: 700;
  font-size: 7vw;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
.ttl-style-1 small {
  font-size: 5vw;
  letter-spacing: 0.05em;
}
.ttl-style-1 .en {
  display: block;
  margin-bottom: 3vw;
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 3vw;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.ttl-style-1 .jp {
  display: block;
}
@media screen and (min-width: 768px) {
  .ttl-style-1 {
    font-size: 42px;
  }
  .ttl-style-1 small {
    font-size: 30px;
  }
  .ttl-style-1 .en {
    margin-bottom: 11px;
    font-size: 14px;
  }
}

.tel dt {
  font-size: 15px;
  letter-spacing: 0.05em;
}
.tel .tel-number {
  font-family: "Roboto", sans-serif;
  font-weight: 700;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
.tel .tel-number small {
  font-size: 20px;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .tel dt {
    font-size: 25px;
  }
  .tel .tel-number {
    font-size: 44px;
  }
  .tel .tel-number small {
    font-size: 32px;
  }
}

/*=============================================
 * <header>
 *=============================================*/
.mainnav a {
  display: inline-block;
  padding: 0 10px 0 5px;
  font-style: italic;
  font-size: 16px;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.mainnav a:hover {
  text-decoration: none;
}
.mainnav a.active {
  background: var(--primary);
}
.mainnav li + li {
  margin-top: 10px;
}
@media screen and (min-width: 768px) {
  .mainnav {
    display: -ms-flexbox;
    display: flex;
    -moz-column-gap: 2px;
         column-gap: 2px;
    white-space: nowrap;  
  }
  .mainnav a {
    padding: 0 8px 0 3px;
    font-size: 13px;
  }
  .mainnav a:hover {
    background: var(--primary);
  }
  .mainnav li + li {
    margin-top: 0;
  }
}
@media screen and (min-width: 1366px) {
  .mainnav a {
    font-size: 16px;
  }
}
@media screen and (min-width: 1500px) {
  .mainnav a {
    padding: 0 10px 0 5px;
  }
}

header h1 {
  padding: 5px;
  box-sizing: border-box;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: 0;
}
@media screen and (min-width: 768px) {
  header {
    position: relative;
  }
  header h1 {
    padding: 0 20px;
    font-size: 11px;
    line-height: 15px;
    letter-spacing: 0.05em;
    position: absolute;
    top: 95px;
    left: 0;
    z-index: 1;
  }
  header .btn-reserve {
    margin-top: 7px;
  }
  header .btn-reserve a {
    max-width: 210px;
    padding: 0 30px 0 10px;
    font-size: 16px;
  }
  header .btn-reserve a::before {
    width: 36px;
    height: 36px;
  }
  header .btn-reserve a::after {
    width: 19px;
    right: 15px;
  }
  header .tel {
    margin-top: -1px;
  }
  header .tel .tel-number {
    font-size: 22px;
  }
  header .tel .tel-number small {
    font-size: 16px;
  }
  header .social {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -moz-column-gap: 10px;
         column-gap: 10px;
  }
  header .social img {
    width: auto;
    max-height: 36px;
  }
  header nav {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
  }
  header .mainnav a {
    font-style: normal;
  }
  header .hd-nav {
    padding: 45px 260px 42px 20px;
    position: relative;
    z-index: 1;
  }
  header .hd-nav .contactbox {
    width: 240px;
    padding: 22px 0 18px;
    background: #fff;
    color: #000;
    text-align: center;
    position: absolute;
    top: 0;
    right: 0;
  }
  header .hd-nav .contactbox .ttl {
    font-size: 20px;
    letter-spacing: 0.05em;
  }
}
@media screen and (min-width: 1366px) {
  header .btn-reserve a {
    max-width: 230px;
  }
  header .btn-reserve a::before {
    width: 46px;
    height: 46px;
  }
  header .hd-nav {
    padding-right: 295px;
  }
  header .hd-nav .contactbox {
    width: 280px;
  }
}
@media screen and (min-width: 1500px) {
  header h1 {
    padding: 0 56px;
  }
  header .social {
    -moz-column-gap: 18px;
         column-gap: 18px;
  }
  header .hd-nav {
    /*padding-left: 56px;*/
    padding-left: 40px;  
  }
}

.menu_toggle {
  width: 100% !important;
  display: block;
  margin-top: 0;
  padding: 50px var(--paddingWrap) var(--menu-toggle-pb);
  box-sizing: border-box;
  background: #000;
  color: #fff;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 99;
}
.menu_toggle .tel {
  margin-top: 5vw;
}
.menu_toggle .contactbox {
  padding-bottom: 5vw;
  border-bottom: 1px solid;
  text-align: center;
}
.menu_toggle nav {
  display: -ms-flexbox;
  display: flex;
  margin-top: 5vw;
}
.menu_toggle nav .mainnav {
  width: 50%;
  text-align: left;
}
.menu_toggle .social {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center;
  -moz-column-gap: 5vw;
       column-gap: 5vw;
  margin-top: 10vw;
}
.menu_toggle .social img {
  width: auto;
  max-height: 36px;
}
@media screen and (max-width: 767px) {
  .menu_toggle {
    height: 100vh;
    min-height: 100%;
    float: right;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: 0.5s ease, height 0s !important;
  }
}
@media screen and (min-width: 768px) {
  .menu_toggle {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    padding: 33px 260px 32px 20px;
    transform: translateY(-100%);
    transition: 0.5s ease-out;
  }
  .menu_toggle.fixed {
    transform: translateY(0%);
  }
  .menu_toggle .tel {
    -ms-flex-order: 1;
        order: 1;
    margin-top: 0;
  }
  .menu_toggle .tel .tel-number {
    font-size: 22px;
  }
  .menu_toggle .tel .tel-number small {
    font-size: 16px;
  }
  .menu_toggle .btn-reserve {
    -ms-flex-order: 2;
        order: 2;
    margin-top: 6px;
  }
  .menu_toggle .btn-reserve a {
    max-width: 210px;
    padding: 0 30px 0 10px;
    font-size: 16px;
  }
  .menu_toggle .btn-reserve a::before {
    width: 37px;
    height: 37px;
  }
  .menu_toggle .btn-reserve a::after {
    width: 19px;
    right: 15px;
  }
  .menu_toggle .contactbox {
    width: 240px;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    padding: 10px 0;
    box-sizing: border-box;
    background: #fff;
    border-bottom: 0;
    color: #000;
    position: absolute;
    top: 0;
    right: 0;
  }
  .menu_toggle .social {
    -moz-column-gap: 10px;
         column-gap: 10px;
    margin-top: 0;
  }
  .menu_toggle nav {
    margin-top: 0;
  }
  .menu_toggle nav .mainnav {
    width: auto;
  }
}
@media screen and (min-width: 1366px) {
  .menu_toggle {
    padding-right: 300px;
  }
  .menu_toggle .btn-reserve a {
    max-width: 230px;
  }
  .menu_toggle .btn-reserve a::before {
    width: 47px;
    height: 47px;
  }
  .menu_toggle .contactbox {
    width: 280px;
  }
}
@media screen and (min-width: 1500px) {
  .menu_toggle {
    padding-right: 320px;
    padding-left: 57px;
  }
  .menu_toggle .social {
    -moz-column-gap: 18px;
         column-gap: 18px;
  }
  .menu_toggle .contactbox {
    right: 30px;
  }
}

.hamburger {
  background-color: #000;
  -ms-flex: 0 0 60px;
      flex: 0 0 60px;
  line-height: 1;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: center;
      align-items: center;
  cursor: pointer;
  transition-property: opacity, filter;
  transition-duration: 0.15s;
  transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  margin: 0;
  overflow: visible;
}
.hamburger::after {
  content: "MENU";
  display: block;
  margin-top: 5px;
  font-size: 9px;
  line-height: 1;
  letter-spacing: 0.05em;
  text-align: center;
}
.hamburger .hamburger-box {
  width: 30px;
  height: 20px;
  display: block;
  position: relative;
}
.hamburger .hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -5px;
}
.hamburger .hamburger-inner, .hamburger .hamburger-inner::before, .hamburger .hamburger-inner::after {
  width: 100%;
  height: 2px;
  background-color: #fff;
  position: absolute;
  transition-property: transform;
  transition-duration: 0.15s;
  transition-timing-function: ease;
}
.hamburger .hamburger-inner::after {
  content: "";
  display: block;
  bottom: -10px;
}
.hamburger.is-active::after {
  content: "CLOSE";
}
@media screen and (min-width: 768px) {
  .hamburger {
    display: none;
  }
}

/** Vortex Reverse **/
.hamburger--vortex-r .hamburger-inner {
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}
.hamburger--vortex-r .hamburger-inner::after {
  transition-duration: 0s;
  transition-delay: 0.1s;
  transition-timing-function: linear;
  transition-property: bottom, transform;
}
.hamburger--vortex-r.is-active .hamburger-inner {
  transform: rotate(-765deg);
  transition-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}
.hamburger--vortex-r.is-active .hamburger-inner::after {
  transition-delay: 0s;
  bottom: 0;
  transform: rotate(-90deg);
}

/*=============================================
 * <footer>
 *=============================================*/
footer {
  padding: 10vw 0 var(--footer-pb);
}
footer .logo {
  text-align: center;
}
footer .logo img {
  width: 30vw;
}
footer .btn-reserve {
  margin-top: 3vw;
}
footer .tel {
  margin-top: 5vw;
}
footer .contactbox {
  margin: 5vw -7vw 0;
  padding: 5vw 7vw;
  box-sizing: border-box;
  background: #fff;
  color: #000;
  text-align: center;
}
footer .contactbox .ttl {
  font-size: 20px;
  letter-spacing: 0.05em;
}
footer .shopinfo dl {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 10px 0;
  border-bottom: 1px solid;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
footer .shopinfo dl dt {
  width: 90px;
}
footer .shopinfo dl dd {
  width: calc(100% - 90px);
}
footer .shopinfo dl:nth-child(2) dd:nth-child(3),
footer .shopinfo dl:nth-child(2) dd:nth-child(4) {
  width: 100%;
  padding: 10px 0 10px 90px;
  box-sizing: border-box;
  border-top: 1px solid;
}
footer .shopinfo dl:nth-child(2) dd:last-child {
  padding-bottom: 0 !important;
}
footer .btn-copy {
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: right;
}
footer .btn-copy .copy {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-align: center;
      align-items: center;
  -moz-column-gap: 5px;
       column-gap: 5px;
}
footer .btn-copy .copy::after {
  content: "";
  width: 12px;
  height: 12px;
  display: block;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox=' 0 0 22 22'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M21.608,7.257 C21.346,7.894 20.951,8.492 20.432,9.003 L16.276,13.100 C15.494,13.872 14.521,14.358 13.510,14.550 C12.499,14.741 11.445,14.648 10.476,14.260 C9.830,14.002 9.225,13.613 8.706,13.103 C8.041,12.165 8.373,11.453 8.795,10.949 L8.876,10.868 C9.016,10.728 9.180,10.620 9.360,10.548 C9.620,10.439 9.917,10.412 10.194,10.463 C10.207,10.466 10.219,10.468 10.231,10.471 C10.350,10.707 10.506,10.927 10.707,11.125 C11.081,11.491 11.530,11.715 12.006,11.808 C12.483,11.898 12.986,11.853 13.439,11.671 C13.742,11.551 14.022,11.371 14.271,11.125 L18.427,7.028 C18.799,6.661 19.026,6.220 19.120,5.750 C19.212,5.279 19.166,4.784 18.982,4.337 C18.859,4.041 18.676,3.764 18.427,3.517 C18.055,3.153 17.607,2.927 17.128,2.836 C16.652,2.744 16.150,2.791 15.698,2.973 C15.395,3.095 15.114,3.273 14.865,3.517 L12.314,6.031 C12.308,6.030 12.301,6.025 12.295,6.024 C11.141,5.570 9.886,5.458 8.665,5.699 C8.657,5.699 8.651,5.702 8.644,5.702 C8.663,5.681 8.683,5.659 8.704,5.640 L12.860,1.544 C13.641,0.774 14.614,0.286 15.624,0.093 C16.636,-0.099 17.692,-0.004 18.661,0.384 C19.306,0.642 19.912,1.031 20.432,1.544 C21.213,2.310 21.707,3.272 21.902,4.268 C22.097,5.265 22.000,6.305 21.608,7.257 ZM11.943,7.004 C12.588,7.262 13.194,7.648 13.713,8.162 C14.376,9.098 14.045,9.812 13.624,10.314 L13.543,10.395 C13.402,10.535 13.239,10.643 13.057,10.717 C12.799,10.822 12.502,10.853 12.224,10.802 C12.212,10.799 12.199,10.796 12.188,10.793 C12.069,10.558 11.912,10.336 11.710,10.138 C11.337,9.772 10.889,9.549 10.412,9.457 C9.933,9.365 9.433,9.410 8.980,9.593 C8.677,9.715 8.396,9.892 8.148,10.138 L3.991,14.236 C3.619,14.604 3.392,15.045 3.299,15.514 C3.206,15.985 3.253,16.479 3.436,16.926 C3.560,17.225 3.742,17.500 3.991,17.746 C4.363,18.113 4.812,18.337 5.290,18.430 C5.767,18.519 6.268,18.475 6.721,18.293 C7.023,18.170 7.305,17.991 7.553,17.746 L10.104,15.231 C10.110,15.233 10.116,15.236 10.124,15.239 C11.278,15.693 12.532,15.805 13.754,15.567 C13.761,15.567 13.769,15.563 13.775,15.563 C13.755,15.581 13.736,15.604 13.714,15.624 L9.557,19.720 C8.777,20.492 7.805,20.979 6.793,21.170 C5.781,21.363 4.727,21.268 3.758,20.881 C3.112,20.623 2.506,20.234 1.986,19.720 C1.205,18.953 0.712,17.995 0.516,16.997 C0.320,15.999 0.417,14.960 0.810,14.006 C1.071,13.369 1.466,12.771 1.986,12.262 L6.141,8.163 C6.923,7.396 7.896,6.906 8.906,6.715 C9.919,6.520 10.973,6.617 11.943,7.004 Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
footer #socialbuttons {
  margin-top: 10vw;
}
footer .cookies_link {
  margin-top: 5vw;
  text-align: center;
}
footer .cookies_link a {
  font-size: 14px;
  letter-spacing: 0.05em;
  text-decoration: underline;
  text-underline-offset: 3px;
}
footer .cookies_link a:hover {
  text-decoration: none;
}
footer address {
  margin: 7vw -4vw 0;
  font-size: 14px;
  letter-spacing: 0.05em;
  text-align: center;
}
footer #pagetop {
  margin-top: 7vw;
  text-align: center;
}
footer .set1 .gr2 {
  margin-top: 10vw;
}
footer .set1 .gr3 {
  margin-top: 15vw;
}
@media screen and (min-width: 768px) {
  footer {
    padding: 78px 0;
  }
  footer .wrap {
    width: 100%;
    max-width: 1400px;
    padding: 0 30px;
    box-sizing: border-box;
  }
  footer .ft-nav {
    width: 920px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    margin: 0 auto;
  }
  footer .ft-nav .mainnav {
    width: 644px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    row-gap: 10px;
    padding: 0 15px;
    box-sizing: border-box;
  }
  footer .social {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    -moz-column-gap: 18px;
         column-gap: 18px;
  }
  footer .social img {
    width: auto;
    max-height: 36px;
  }
  footer .logo img {
    width: auto;
  }
  footer .btn-reserve {
    margin-top: -10px;
  }
  footer .btn-reserve .catch {
    transform: translateY(17px);
  }
  footer .tel {
    margin-top: 13px;
  }
  footer .tel .tel-number {
    font-size: 32px;
  }
  footer .tel .tel-number small {
    font-size: 26px;
  }
  footer .contactbox {
    margin: 13px 0 0;
    padding: 30px 20px 25px;
  }
  footer .contactbox .ttl {
    font-size: 25px;
  }
  footer .shopinfo dl {
    padding: 14px 0 15px;
    font-size: 16px;
    line-height: 30px;
  }
  footer .shopinfo dl dt {
    width: 110px;
  }
  footer .shopinfo dl dd {
    width: calc(100% - 110px);
  }
  footer .shopinfo dl:nth-child(2) dd:nth-child(3),
  footer .shopinfo dl:nth-child(2) dd:nth-child(4) {
    padding: 14px 0 15px 110px;
  }
  footer .btn-copy {
    -ms-flex-order: 3;
        order: 3;
    font-size: 16px;
    text-align: left;
    margin: 10px 0 0 35px;
  }
  footer .btn-copy .copy {
    -moz-column-gap: 5px;
         column-gap: 5px;
    text-underline-offset: 3px;
  }
  footer .btn-copy .copy:hover {
    text-decoration: underline;
  }
  footer .btn-copy .copy::after {
    width: 16px;
    height: 16px;
  }
  footer #socialbuttons {
    -ms-flex-order: 1;
        order: 1;
    margin-top: 0;
  }
  footer .cookies_link {
    -ms-flex-order: 2;
        order: 2;
    margin: 17px 0 0 35px;
    text-align: left;
  }
  footer .cookies_link a {
    font-size: 14px;
  }
  footer address {
    margin-top: 20px;
    font-size: 13px;
    text-align: right;
  }
  footer #pagetop {
    margin-top: 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  footer .set1 {
    width: 1000px;
    display: grid;
    grid-template-columns: 440px 1fr;
    grid-template-rows: auto 1fr;
    -ms-flex-align: start;
        align-items: flex-start;
    -ms-flex-pack: justify;
        justify-content: space-between;
    margin: 20px auto 0;
    padding: 0 30px;
    box-sizing: border-box;
  }
  footer .set1 .gr1 {
    width: 440px;
    padding: 0 10px;
    box-sizing: border-box;
  }
  footer .set1 .gr2 {
    grid-area: 1/2/3/3;
    width: 420px;
    margin: 20px 0 0 auto;
  }
  footer .set1 .gr2 .social {
    margin-top: 20px;
  }
  footer .set1 .gr3 {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    width: 300px;
    margin: 50px auto 0;
  }
}

/*=============================================
 * ft_fixed
 *=============================================*/
#ft_fixed {
  z-index: 100;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}

.ft_fixed_shared {
  width: 100%;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row;
      flex-flow: row;
  text-align: center;
}
.ft_fixed_shared li {
  box-sizing: border-box;
  color: #fff;
  background-color: #000;
  border-right: 1px solid #fff;
}
.ft_fixed_shared li:last-child {
  border-right: 0;
}
.ft_fixed_shared li a {
  display: block;
  position: relative;
}
.ft_fixed_shared li:first-child {
  background: var(--primary);
}

/* iPhone X */
@media only screen and (min-device-width: 375px) and (min-device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait) {
  footer::after {
    height: 36px;
    content: "";
    background: #000;
    position: fixed;
    bottom: 0px;
    left: 0;
    right: 0;
    z-index: 7;
  }
  #ft_fixed {
    bottom: calc(env(safe-area-inset-bottom) - 0px);
  }
}
/* iPhone XR */
@media only screen and (min-device-width: 414px) and (min-device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait) {
  footer::after {
    height: 36px;
    content: "";
    background: #000;
    position: fixed;
    bottom: 0px;
    left: 0;
    right: 0;
    z-index: 7;
  }
  #ft_fixed {
    bottom: calc(env(safe-area-inset-bottom) - 0px);
  }
}
/* iPhone 11 */
@media only screen and (min-device-pixel-ratio: 3), only screen and (min-resolution: 458dpi), only screen and (min-resolution: 3dppx) {
  footer::after {
    height: 36px;
    content: "";
    background: #000;
    position: fixed;
    bottom: 0px;
    left: 0;
    right: 0;
    z-index: 7;
  }
  #ft_fixed {
    bottom: calc(env(safe-area-inset-bottom) - 0px);
  }
}
@media screen and (min-width: 768px) {
  footer::after, #ft_fixed {
    display: none;
  }
}
/*=============================================
 * key
 *=============================================*/
#key .img {
  width: 100%;
  height: 100%;
  text-align: center;
}
#key .img img {
  width: 100%;
  height: auto;
}
@media screen and (min-width: 768px) {
  #key {
    margin: 0 30px;
  }
}

/*=============================================
 * slick
 *=============================================*/
/* Slider */
.slick-loading .slick-list {
  background: #fff url("../img/shared/ajax-loader.gif") center center no-repeat;
}

/* Arrows */
.slick-prev, .slick-next {
  width: 20px;
  height: 32px;
  display: block;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: transparent;
  font-size: 0;
  line-height: 0;
  position: absolute;
  top: 50%;
  z-index: 1;
  outline: none;
  transform: translateY(-50%);
}
.slick-prev:hover, .slick-prev:focus, .slick-next:hover, .slick-next:focus {
  color: transparent;
  outline: none;
  background: transparent;
}
.slick-prev:hover:before, .slick-prev:focus:before, .slick-next:hover:before, .slick-next:focus:before {
  opacity: 1;
}
.slick-prev:before, .slick-next:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  speak: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 40.5 64.5'%3E%3Cpath fill-rule='evenodd' stroke='rgb(255, 255, 255)' stroke-width='5px' stroke-linecap='butt' stroke-linejoin='miter' fill='none' d='M6.142,3.073 L34.520,31.288 L6.142,59.502 '/%3E%3C/svg%3E") 0 0/contain no-repeat;
}
.slick-prev.slick-disabled:before, .slick-next.slick-disabled:before {
  opacity: 0.25;
}
@media (hover: hover) {
  .slick-prev:hover, .slick-next:hover {
    opacity: 0.7;
  }
}

.slick-prev {
  left: 3px;
}
.slick-prev:before {
  transform: scaleX(-1);
}

.slick-next {
  right: 3px;
}

/* Dots */
.slick-dots {
  position: absolute;
  bottom: -30px;
  left: 0;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 0;
}
.slick-dots li {
  position: relative;
  display: inline-block;
  margin: 0 6px;
  padding: 0;
  cursor: pointer;
}
.slick-dots li button {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 12px;
  height: 12px;
  cursor: pointer;
  color: transparent;
  outline: none;
  border-radius: 50%;
  border: 0;
  background: #fff;
}
.slick-dots li button:hover, .slick-dots li button:focus {
  outline: none;
}
.slick-dots li.slick-active button {
  background: #daa520;
}
@media (hover: hover) {
  .slick-dots li:hover button {
    background: #daa520;
  }
}
@media screen and (min-width: 768px) {
  .slick-dots li {
    margin: 0;
  }
  .slick-dots li button {
    width: 15px;
    height: 15px;
    margin: 0 11px;
  }
}


.area_box{
	width: 420px;
	margin: 20px auto;
	padding: 0 20px 20px;
	box-sizing:border-box;
	background-color: rgba( 255, 255, 255, 0.1 );
	font-size: 95%;
}
.area_box dl{
	margin-top: 20px;
}
.area_box dd{
	font-size: 90%;
}

@media only screen and (max-width: 768px) {
.area_box{
	width: 100%;
	padding: 5px 20px 20px;
}
}