@import url("https://fonts.googleapis.com/css2?family=Shippori+Mincho+B1:wght@400;500;600;700;800&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  position: relative;
  color: #231815;
  font-family: "Shippori Mincho B1", serif;
  font-size: min(2vw, 25px);
  font-weight: 400; }
  @media screen and (max-width: 750px) {
    body {
      max-width: 750px;
      font-size: min(3.3vw, 25px);
      -webkit-text-size-adjust: 100%; }
      body .pc {
        display: none !important; } }
  @media screen and (min-width: 751px) {
    body a {
      transition: 0.3s; }
      body a:hover {
        opacity: 0.8; }
    body .sp {
      display: none !important; } }
  body a {
    text-decoration: none; }
  body img {
    width: 100%;
    height: auto; }

/* font */
.red {
  color: #d20000; }

.fs23 {
  font-size: 80%; }

strong {
  font-weight: 900; }

p.l_1em {
  padding: 0 0 0 1em;
  text-indent: -1em;
  line-height: 1.7; }

.fixed {
  position: fixed; }

.mv_slider {
  opacity: 0;
  transition: opacity 0.3s linear; }

.mv_slider.slick-initialized {
  opacity: 1; }

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 2.5s;
  animation-fill-mode: forwards;
  animation-timing-function: ease;
  opacity: 0; }

.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1.6s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-out;
  animation-delay: 1.1s;
  opacity: 0; }

.fadeIn2 {
  animation-name: fadeInAnime;
  animation-duration: 2.1s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-out;
  animation-delay: 1.9s;
  opacity: 0; }

@-webkit-keyframes fadeUpAnime {
  0% {
    opacity: 0;
    transform: translateY(30px); }
  80% {
    transform: translateY(0); }
  100% {
    opacity: 1; } }
@keyframes fadeUpAnime {
  0% {
    opacity: 0;
    transform: translateY(30px); }
  80% {
    transform: translateY(0); }
  100% {
    opacity: 1; } }
@-webkit-keyframes fadeInAnime {
  0% {
    opacity: 0; }
  10% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes fadeInAnime {
  0% {
    opacity: 0; }
  10% {
    opacity: 0; }
  100% {
    opacity: 1; } }
.fadeUpTrigger,
.delay {
  opacity: 0; }

.btn {
  opacity: 0; }

@-webkit-keyframes btn_animation {
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0; }
  20% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5; }
  21% {
    transform: scale(4) rotate(45deg);
    opacity: 1; }
  40% {
    transform: scale(50) rotate(45deg);
    opacity: 0; }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0; } }
.fakeLoader {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100vh;
  font-size: 0; }
  .fakeLoader .fl {
    position: relative !important;
    width: 100% !important;
    max-width: 750px !important;
    margin: 0 auto !important;
    left: 0 !important;
    top: 0 !important;
    text-align: center; }
    @media screen and (min-width: 751px) {
      .fakeLoader .fl {
        max-width: 664px !important; } }
  .fakeLoader img {
    width: 40%; }

/*********************************
 *
 * HEADER
 *
 *********************************/
header {
  position: sticky;
  width: 100%;
  max-width: 750px;
  top: 0;
  margin: 0 auto;
  background: #fff;
  z-index: 10; }
  @media screen and (min-width: 751px) {
    header {
      max-width: 664px; } }
  header .inner {
    display: flex; }
  header .h_logo {
    flex: 1; }
  header .reserve a {
    overflow: hidden;
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    background: #000; }
    header .reserve a .txt {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 50%;
      transform: translate(-50%, -50%); }
      header .reserve a .txt .cls-1 {
        fill: #fff;
        stroke-width: 0px;
        transition: 0.3s; }
    header .reserve a::before {
      position: absolute;
      content: "";
      display: block;
      top: -100%;
      left: 0;
      width: 30px;
      height: 100%;
      background: #fbfbfb; }
    header .reserve a:hover, header .reserve a:active {
      opacity: 1; }
      header .reserve a:hover::before, header .reserve a:active::before {
        animation: btn_animation 2.7s ease-in-out infinite; }
  header .nav_btn {
    background: url("../images/nav_btn_open.png") center center no-repeat;
    background-size: contain;
    cursor: pointer; }

/*********************************
 *
 * NAV
 *
 *********************************/
nav {
  display: none;
  position: fixed;
  overflow-y: auto;
  width: 100%;
  max-width: 750px;
  top: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 50; }
  @media screen and (min-width: 751px) {
    nav {
      max-width: 664px;
      height: 100%;
      left: calc(50% - 332px); } }
  @media screen and (max-width: 750px) {
    nav {
      height: 100%; } }
  nav .btn_box {
    display: flex;
    justify-content: flex-end; }
  nav .nav_btn_close {
    width: 12.8%;
    background: url("../images/nav_btn_close.png") center center no-repeat;
    background-size: contain;
    cursor: pointer; }
  nav ul {
    width: 64%;
    max-width: 478px;
    margin: 0 auto;
    padding: 1em 0; }
    nav ul li {
      margin: 4em 0 0 0; }
      @media screen and (max-width: 750px) {
        nav ul li {
          margin: 5em 0 0 0; } }
      nav ul li:first-child, nav ul li:last-child {
        margin: 4em 0 0 0; }
        @media screen and (max-width: 750px) {
          nav ul li:first-child, nav ul li:last-child {
            margin: 5em 0 0 0; } }

/*********************************
 *
 * MV
 *
 *********************************/
#mv {
  position: relative;
  width: 100%;
  max-width: 750px;
  margin: 0 auto; }
  @media screen and (min-width: 751px) {
    #mv {
      max-width: 664px; } }
  #mv .progress {
    position: absolute;
    right: 5.8%;
    top: 42.6%;
    width: 2px;
    height: 14%;
    background: transparent; }
  #mv .bar {
    display: block;
    width: 2px;
    height: 0%;
    background: #fff; }

/*********************************
 *
 * MAIN
 *
 *********************************/
main {
  width: 100%;
  max-width: 750px;
  margin: 0 auto; }
  @media screen and (min-width: 751px) {
    main {
      max-width: 664px; } }
  main p {
    line-height: 1.6; }

/*********************************
 * lead
 *********************************/
#lead {
  padding: 7em 0 6em 0; }
  #lead ul {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    width: 44%;
    max-width: 650px;
    margin: 0 auto; }
    #lead ul li:nth-child(1) {
      width: 80%; }
    #lead ul li:nth-child(2) {
      width: 20%; }
    #lead ul li:nth-child(3) {
      width: 1000%; }

/*********************************
 * dinner
 *********************************/
#dinner {
  padding: 0 0 5em 0;
  background: #000;
  color: #fff;
  text-align: center; }
  #dinner h2 {
    margin-top: 2.5em; }
  #dinner h3 {
    margin-top: 0.5em;
    font-size: 120%; }
  #dinner .img01 + div {
    margin-top: 1.8em; }
  #dinner p {
    margin-top: 0.8em;
    letter-spacing: 0.04em; }
  #dinner .fs23 {
    line-height: 1.9; }
  #dinner .btn {
    width: 76.4%;
    max-width: 573px;
    margin: 1.5em auto 0 auto; }
  #dinner .img01 {
    width: 91.6%;
    max-width: 687px;
    margin: 3.5em auto 0 auto; }
  #dinner .note {
    margin-top: 1.5em; }
  #dinner .img02 {
    width: 48%;
    max-width: 360px;
    margin: 4.5em auto 0 auto; }
  #dinner .img02 + p {
    margin-top: 1em; }

/*********************************
 * lunch
 *********************************/
#lunch {
  text-align: center; }
  #lunch h2 {
    margin-top: 2.5em; }
  #lunch p {
    margin-top: 0.8em;
    letter-spacing: 0.04em; }
  #lunch .img01 + p {
    margin-top: 1.5em; }
  #lunch .fs23 {
    line-height: 1.9; }
  #lunch .btn {
    width: 76.4%;
    max-width: 573px;
    margin: 1.5em auto 0 auto; }
  #lunch ul.photo_list {
    padding-top: 3.5em; }
    #lunch ul.photo_list li {
      margin-top: 0.8em; }
  #lunch .txt01 {
    width: 59%;
    max-width: 437px;
    margin: 5em auto 0 auto; }
  #lunch .img01 {
    width: 59%;
    max-width: 437px;
    margin: 2em auto 0 auto; }
  #lunch .img01 + p {
    margin-top: 2em;
    line-height: 1.8; }
  #lunch .name {
    margin-top: 1.5em; }
  #lunch .img02 {
    margin: 4em auto 0 auto; }

/*********************************
 * instagram
 *********************************/
#instagram {
  padding: 4.5em 0 5.5em 0; }
  #instagram .atn_box {
    display: flex;
    justify-content: center;
    margin-top: 0.5em; }
    #instagram .atn_box ul {
      display: inline-block;
      width: auto; }
  #instagram p {
    margin-top: 1.6em;
    font-size: 80%; }
  #instagram .ig_list p {
    margin-top: 2em;
    font-size: 80%;
    text-align: center; }
  #instagram .ig_list ul {
    display: flex;
    flex-wrap: wrap;
    width: 86%;
    margin: 1.4em auto 0 auto; }
    #instagram .ig_list ul li {
      overflow: hidden;
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 32%;
      margin: 0 2% 0.5em 0; }
      #instagram .ig_list ul li:nth-child(3n) {
        margin-right: 0; }
      #instagram .ig_list ul li::before {
        content: "";
        display: block;
        padding-top: 100%; }
      #instagram .ig_list ul li a {
        position: absolute;
        top: 0;
        left: 0; }
      #instagram .ig_list ul li img {
        object-fit: cover; }

/*********************************
 * access
 *********************************/
#access {
  text-align: center; }
  #access h2 {
    margin-top: 3em; }
  #access .gmap iframe {
    width: 100%; }
  #access .address {
    margin-top: 2em;
    letter-spacing: 0.04em; }
  #access .tel_ttl {
    margin-top: 0.5em; }
  #access .tel {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 180%;
    line-height: 1; }
    #access .tel span {
      margin-right: 0.5em;
      font-size: 50%; }
    #access .tel a {
      color: #231815; }
  #access .time {
    margin-top: 1.5em;
    letter-spacing: 0.04em; }
  #access .fs22 {
    margin-top: 2em;
    font-size: 80%;
    letter-spacing: 0.04em; }
  #access .img {
    width: 52%;
    max-width: 383px;
    margin: 1em auto 0 auto; }

/*********************************
 * footer
 *********************************/
footer {
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
  padding: 4.5em 0 3.5em 0;
  font-size: 65%;
  letter-spacing: 0.04em;
  text-align: center; }
  @media screen and (min-width: 751px) {
    footer {
      max-width: 664px; } }
  @media screen and (max-width: 750px) {
    footer {
      font-size: 70%; } }
