@charset 'UTF-8';
@layer basic, reset;
@layer common {
/* CSS Document */

/* ========BASIC======== */
@-ms-viewport {
  width: auto;
  initial-scale: 1;
}

@viewport {
  width: device-width;
  initial-scale: 1;
}

@font-face {
  font-family: 'Font Awesome 5 Brand';
  font-style: normal;
  font-weight: 400;
  src: url("https://use.fontawesome.com/releases/v5.1.0/webfonts/fa-brand-400.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  src: url("https://use.fontawesome.com/releases/v5.1.0/webfonts/fa-regular-400.woff2") format("woff2");
  src: url("https://use.fontawesome.com/releases/v5.1.0/webfonts/fa-solid-900.woff2") format("woff2");
  font-display: swap;
}

* {
  box-sizing: border-box;
}

html {
	height: 100%;
	overflow-y: scroll;
  scroll-behavior: smooth;
  scroll-padding-top: 36px;
}

html.no-ie {
  height: 100%;
  /*overflow-y: scroll;*/
}

html.ie {
  min-height: 100dvh;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}

.ie * {
  min-height: 100dvh;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}


body {
	color: #fff;
	font-size: 16px;
  font-family: 'Lato', 'Noto Serif JP', '游ゴシック Medium', '游ゴシック体', 'Yu Gothic Medium', YuGothic, 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  font-weight: 200;
  letter-spacing: 1px;
	line-height: 1.6;
  background-color: #000;
	background-attachment: fixed;
	margin: 0;
	padding: 0;
}

#Honten, #Bettei {
  scroll-padding-top: 100px
}
/*
.sp body {
  font-size: 13px;
}
*/
h1,h2,h3,h4,h5,h6 {
   margin:0;
   padding:0;
}

p {
   margin:0 0 1em 0;
   padding:0;
}

br {
   letter-spacing: normal;
}

img {
  width: 100%;
  height: 100%;
  border: 0;
}

a {
  color: #fff;
  text-decoration:none;
}

a:hover {
  color:#92C45B;
}

dl,ol,ul {
   margin:0 0 1em 0;
   padding:0;
}
/*
li {
   margin:0 0 0 40px;
   padding:0;
}
*/

figure {
  margin: 0;
}

.flex {
  display: flex;
}

.flex-wrap-h {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  flex-wrap: wrap;
  padding: 16px 0;
}

.flex-wrap-h-inner {
  margin: 16px 0;
}

/* ================================== */
/* Layout
/* ================================== */
h2[class$="_title"] {
  text-align: center;
  background: url(/common/images/heading_frame.svg) no-repeat center center;
  width: fit-content;
  min-width: 300px;
  padding-block: 1.5rlh 1rlh;
  margin-inline: auto;
  margin-block-end: 1.5rlh;
}

h2[class^="menu"] {
  padding-block-end: 1.5rlh;
}

/* ================================== */
/* header section
/* ================================== */
#header {
  max-height: 100svh;
}

#header_ticker,
#notation_ticker {
  font-size: .8rem;
  font-weight: normal;
  background-color: transparent;
  line-height: 2;
  width:100%;
  padding:0 0.5em 0;
  margin: 0;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid #CECFCE;
}

#notation_ticker {
  line-height: 3;
}

#header_ticker span:after,
#notation_ticker span:after{
  content: "";
  white-space: nowrap;
  padding-right: 50px;
}

#header_ticker span,
#notation_ticker span {
  font-size: .8rem;
  display: inline-block;
  white-space: nowrap;
  padding-left: 100%;
  margin: 0;
  -webkit-animation-name: marquee;
  -webkit-animation-timing-function: linear;
  -webkit-animation-duration: 20s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-name: marquee;
  -moz-animation-timing-function: linear;
  -moz-animation-duration: 20s;
  -moz-animation-iteration-count: infinite;
  -ms-animation-name: marquee;
  -ms-animation-timing-function: linear;
  -ms-animation-duration: 20s;
  -ms-animation-iteration-count: infinite;
  -o-animation-name: marquee;
  -o-animation-timing-function: linear;
  -o-animation-duration: 20s;
  -o-animation-iteration-count: infinite;
  animation-name: marquee;
  animation-timing-function: linear;
  animation-duration: 20s;
  animation-iteration-count: infinite;
}

@-webkit-keyframes marquee {
  from   { -webkit-transform: translate(0%);}
  99%,to { -webkit-transform: translate(-100%);}
}

@-moz-keyframes marquee {
  from   { -moz-transform: translate(0%);}
  99%,to { -moz-transform: translate(-100%);}
}

@-ms-keyframes marquee {
  from   { -ms-transform: translate(0%);}
  99%,to { -ms-transform: translate(-100%);}
}

@-o-keyframes marquee {
  from   { -o-transform: translate(0%);}
  99%,to { -o-transform: translate(-100%);}
}

@keyframes marquee {
  from   { transform: translate(0%);}
  99%,to { transform: translate(-100%);}
}

#hero {
  position: relative;
}

.dt #hero {
  height: calc(100svh - 32px);
}

.tb.android #hero {
  height: calc(var(--vh) - 24px);
}

.iphone #hero,
.ipad #hero {
  height: calc(100svh - 24px - 40px - 42px);
}

.sp.android #hero {
  height: calc(var(--vh) - 24px);
}

:is(#Honten, #Bettei) #hero {
  height: calc(100svh - 24px);
}

#hero_img,
.hero_image {
  /* width: 100%;
  height: 100%; */
  object-fit: cover;
  max-height: 100vh;
  overflow:hidden;
}

.dt :is(#hero_img, .hero_image).active,
.tb :is(#hero_img, .hero_image).active {
  object-position: 0% 0%;
  -webkit-animation: ltr 100s alternate infinite;
  animation: ltr 100s alternate infinite;
}

@keyframes ltr {
  0% {
  -webkit-object-position: 0% 0%;
  object-position: 0% 0%;
  }
  25% {
  -webkit-object-position: 20% 0%;
  object-position: 20% 0%;
  }
  100% {
  -webkit-object-position: 100% 100%;
  object-position: 100% 100%;
  }
}

:where(#Index #shop_logo) {
  width: auto;
  height: fit-content;
  max-width: 220px;
  max-height: calc(var(--vh) * 0.7);
}
:where(#Index #shop_logo) {
  aspect-ratio: 11 / 30;
}
:where(#Honten #shop_logo) {
  aspect-ratio: 8 / 25;
}
:where(#Bettei #shop_logo) {
  aspect-ratio: 105 / 150;
}
@media(orientation: portrait){
  :where(#Honten #shop_logo) {
    height: 72svh;
  }
  :where(#Bettei #shop_logo) {
    width: 70vw;
  }
}
@media(orientation: landscape) {
  :where(#Honten #shop_logo) {
    height: 72svh;
  }
  :where(#Bettei #shop_logo) {
    height: 72svh;
  }
}

:where(#shop_logo) {
  /* width: auto;
  max-width: 220px;
  max-height: calc(var(--vh) * 0.7); */
  /* width: fit-content; */
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  /* object-fit: contain; */
}

/* .sp :is(#Honten, #Bettei) #shop_logo {
  max-width: unset;
} */

:where(#Index #shop_logo) {
  transform: translate(-50%, -50%);
  height: 100%; /* トップページでのみ高さを100%にする */
}
:is(#Honten, #Bettei) #shop_logo {
  background-color: hsla(255, 100%, 100%, .5);
  /* padding: .5rem; */
  border: 6px solid;
  border-image: linear-gradient(135deg, #FFD700, #C07C15, #FFFBE6, #FFD700) 1;
  outline: 2px solid #fff;
  outline-offset: 6px;
  /* transform: translate(-50%, -52%); */
  transform-origin: center;
}
#Honten #shop_logo {
  min-width: 20vw;
  padding: .5rem 1rem;
  transform: translate(-50%, -54%);
}
#Bettei #shop_logo {
  padding: .5rem;
  transform: translate(-50%, -56%) scale(.8);
  transform-origin: center;
}

@media(orientation:portrait) and (width < 440px) {
  #Bettei #shop_logo {
    padding: .5rem .5rem .5rem 0;
    transform: translate(-50%, -56%) scale(1.0);
  }
}
/* :is(#Honten, #Bettei) #shop_logo::after {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 24px;
  pointer-events: none;
  z-index: 1;
  border: 4px solid transparent;
  background: conic-gradient(from var(--angle, 0deg), #FFD700, #C07C15, #FFFBE6, #FFD700);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  box-shadow: 0 0 24px 4px #FFD70055;
  animation: rotate-gold-outline 3s linear infinite;
}
@property --angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}
@keyframes rotate-gold-outline {
  to { --angle: 360deg; }
} */


/* @media(orientation:landscape) {
  :is(#Honten, #Bettei) #shop_logo {
    width: 50vw;
    max-width: 600px;
    height: auto;
    aspect-ratio: 27 / 13;
  }
} */

#header_copy01 {
  width: 5vw;
  min-width: 24px;
  max-width: 36px;
  height: auto;
  max-height: calc(var(--vh)*0.4);
  min-height: 40vh;
  position: absolute;
  /* top: calc(var(--vh)*0.3 - 32px); */
  top: 50%;
  right: 10vw;
  transform: translateY(-50%);
  /* object-fit: contain; */
  aspect-ratio: 65.23 / 581.89; /* レイアウトシフト防止のためアスペクト比を明示 */
}

/* @media(orientation:landscape) {
  #header_copy01 {
    right: 10vw;
  }
} */

@media(orientation:portrait) {
  #Bettei #header_copy01 {
    left: 5vw;
  }
}

#header_copy02 {
  /*background-color: rgba(0, 0, 0, .5);*/
  width: 80vw;
  max-width: 300px;
  min-width: 100px;
  height: auto;
  max-height: calc(var(--vh)*0.06);
  min-height: calc(var(--vh)*0.04);
  /*padding: 4px 8px;*/
  position: absolute;
  top: 16px;
  left: 24px;
  /* object-fit: contain; */
}
@media(orientation:portrait) {
  #header_copy02 {
    left: 50%;
    transform: translateX(-50%);
  }
}
/*
.iphone .header_copy02 {
  top: 16px;
}
*/
#header_copy03 {
  background-color: rgba(0, 0, 0, .5);
  width: 80vw;
  max-width: 300px;
  min-width: 100px;
  height: auto;
  max-height: calc(var(--vh)*0.06);
  min-height: calc(var(--vh)*0.04);
  padding: 4px 8px;
  position: absolute;
  bottom: calc(8px + 36px); /*36px => navigation height*/
  right: 32px;
  /* object-fit: contain; */
}
@media(orientation:portrait) {
   #header_copy03 {
    bottom: 21svh;
    right: 50%;
    transform: translateX(50%);
  }
}
@media(orientation:portrait) {
  :is(#Honten, #Bettei) #header_copy03 {
    bottom: 8svh;
  }
}

@media (max-width: 320px) and (-webkit-min-device-pixel-ratio: 3) {
  #shop_logo {
    max-height: calc(var(--vh) * 0.7);
    transform: translate(-50%, -50%) scale(.6);
  }


  #header_copy01 {
    top: calc(var(--vh)*0.3 - 32px);
  }
}

/* ================================== */
/* global navigation
/* ================================== */
#gnav {
  background-color: #000;
  width: 100%;
  margin-top: -36px;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 100;
}

#gnav .nav__flex-row__list:last-of-type {
  background-color: #ac0002;
}

.nav__flex-row {
  display: flex;
  flex-direction: row;
  justify-content: center;
  padding-bottom: 2px;
  margin: 0 auto;
  box-shadow: 0 2px 2px -2px #fff;
}

.nav__flex-row__list {
  background-color: #000;
  flex: 1 1 auto;
  max-width: calc(1024px / 4);
  overflow: hidden;
}

.nav__flex-row__list__anchor {
  color: #fff!important;
  text-align: center;
  line-height: 40px;
  display: block;
  width: 100%;
}

/* ================================== */
/* menu navigation
/* ================================== */
#menu_nav {
  background-color: #000;
  position: -webkit-sticky;
  position: sticky;
  top: 36px;
  transform: translate3d(0, 0, 0);
  z-index: 100;
}

/* ================================== */
/* main Block
/* ================================== */
#main {
  max-width: 1024px;
  min-height: 100svh;
  padding: 0 2rem;
  margin: 0 auto;
  & > section {
    padding-block-start: 54px;
    /* margin-bottom: 94px; */
    section {
      padding-block-start: 8px;
    }
  }
}

/* ================================== */
/* Brand & Concept
/* ================================== */
#brand {
  margin-bottom: 32px;
}

.brand_title {
  /*font-family: 'Pinyon Script', cursive;*/
  font-family: 'Noto Serif JP', serif;
  font-size: 2em;
  font-weight: 100;
  line-height: 1;
  text-align: center;
  padding-top: 100px;
}

.sp .brand_title {
  font-size: 1.5em;
}

.brand_title span {
  /*font-family: 'Parisienne', cursive;*/
  font-size: .8em;
}

.brand_title::after {
  content: 'ー　' attr(title) '　ー';
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .5em;
  text-align: center;
  line-height: 1;
  display: block;
  padding: 4px 4px 0;
  margin: 0 0 16px;
}

.brand_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.brand_list li {
  font-size: 2em;
  font-family: 'Noto Serif JP', serif;
}

.sp .brand_list li {
  font-size: 1em;
}

/* ================================== */
/* Concept & Information */
/* ================================== */
#concept {
  margin-bottom: 2rlh;
}

.concept_title {
  font-family: 'Noto Serif JP', serif;
  font-size: 2em;
  font-weight: 100;
  line-height: 1;
  text-align: center;
  margin-bottom: 2rem;
}

.sp .concept_title {
  font-size: 1.5em;
}

.concept_title::after {
  content: 'ー　' attr(title) '　ー';
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .5em;
  text-align: center;
  line-height: 1;
  display: block;
  padding: 4px 4px 0;
  margin: 0 0 16px;
}

.concept_inner {
  display: flex;
  flex-wrap: wrap;
  /* margin-bottom: 32px; */
  gap: 1rem;
}

.concept_inner img {
   display: block;
   width:100%;
   height:100%;
   object-fit:cover;
   border:solid 1px #fff;
}

.concept_desc {
  flex: 1 1 48%;
}

@media (width <= 768px) {
  .concept_img {
    width: 50%;
    /* padding: 0 1rem 1rlh; */
  }

  #concept p {
    width: 50%;
    padding: 0 16px 0px;
  }
}

@media (width < 767px) {
  #concept {
    padding: 8px;
  }

  .concept_img {
    width: 100%;
    /* padding: 0 0 32px; */
    margin: 0 auto;
  }

  #concept p {
    width: 100%;
    /* padding: 0 0 32px; */
  }
}

/* ================================== */
/* Private Room & VIP Room
/* ================================== */
.vip_title {
  /*font-family: 'Pinyon Script', cursive;*/
  font-family: 'Noto Serif JP', serif;
  font-size: 2em;
  font-weight: 100;
  line-height: 1;
  text-align: center;
  /*padding-top: 100px;*/
}

.sp .vip_title {
  font-size: 1.5em;
}

.vip_title span {
  /*font-family: 'Parisienne', cursive;*/
  font-size: .8em;
}

.vip_title::after {
  content: 'ー　' attr(title) '　ー';
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .5em;
  text-align: center;
  line-height: 1;
  display: block;
  padding: 4px 4px 0;
  margin: 0 0 16px;
}

.vip_title + p {
  width: fit-content;
  margin-inline: auto;
}

.vip_inner {
  display: flex;
  flex-direction: row-reverse;
  flex-wrap: wrap;
  /* margin-bottom: 32px; */
  gap: 1rem;
}

.vip_desc {
  text-align: justify;
  width: 100%;
  max-width: 768px;
  padding: 16px;
  margin: 0 auto;
  flex: 1 1 48%;
  img {
    object-fit: cover;
  }
}

.vip_desc:first-of-type {
  border: solid 1px #fff;
}

.slideshow {
  position: relative;
  width: 100%;
  max-width: 768px; /* Or other max-width */
  max-height: 500px; /* Adjust as needed */
  aspect-ratio: 9 / 16;
  margin: auto;
  overflow: hidden;
}

.slide-item {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: fadeZoom 15s infinite;
}

.slide-item:nth-child(1) {
  animation-delay: 0s;
}

.slide-item:nth-child(2) {
  animation-delay: 5s;
}

.slide-item:nth-child(3) {
  animation-delay: 10s;
}

@keyframes fadeZoom {
  0% {
    opacity: 0;
    transform: scale(1);
  }
  16.66% { /* Fade in for 2.5s */
    opacity: 1;
    transform: scale(1.1);
  }
  33.33% { /* Stay for 2.5s */
    opacity: 1;
    transform: scale(1.1);
  }
  50% { /* Fade out for 2.5s */
    opacity: 0;
    transform: scale(1.2);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}


/* ================================== */
/* menu
/* ================================== */
#menu {
  padding-top: 100px;
}

.menu {
  font-size: clamp(13px, calc(100vw * 16 / 768), 16px);
  /* max-width: 768px; */
  /* padding-top: 80px; */
  margin: 0 auto;
}

.menu_title {
  /*font-family: 'Pinyon Script', cursive;*/
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, calc(100vw * 24 / 768), 1.5em);
  font-weight: 100;
  /*line-height: 1;*/
  text-align: center;
  /*margin-bottom: 24px;*/
}
/*
.sp .menu_title {
  font-size: 1.5em;
}
*/
.menu_title span {
  /*font-family: 'Parisienne', cursive;*/
  font-size: .8em;
}
/*
.menu_title::after {
  content: '（　' attr(title) '　）';
  font-size: .5em;
  text-align: center;
  line-height: 1;
  display: block;
  padding: 4px 4px 0;
  margin: 0;
}
*/
.tax_notation {
  font-size: .8em;
  text-indent: -1em;
  width: fit-content;
  padding-left: 1.5em;
  margin: 0 auto 32px;
}

h3.course_menu_title.menu_title {
  font-size: 2rem;
  font-family: san-serif;
  text-align: center;
}

@media (width >= 440px) {
  h4.course_menu_title.menu_title::before {
    content: '■';
    padding-right: 0.25em;
  }
}

.menu_details {
  display: flex;
  /*padding-bottom: 2em;*/
  margin-bottom: 16px;
  box-shadow: 0 1px 2px -2px #fff;
}

.menu_details dt {
  min-width: 9em;
}

.menu_alc.menu__list--title {
  font-size: 2em;
  /*font-family: 'Darker Grotesque', sans-serif;*/
  font-family: 'Noto Serif JP', serif;
  font-weight: 400;
  line-height: 2;
 /* text-align: center; */
  background: linear-gradient(transparent 0%, transparent 57%, rgba(255, 255, 255, 1) 58%, transparent 60%);
  margin-top: 32px;
  margin-bottom: .5em;
}

.menu_alc.menu__list--title::before {
  content: '■';
  background-color: #000;
}

.menu_alc.menu__list--title span {
  font-size: .8em;
  background-color: #000;
  padding: 0 16px 0 8px;
}
/*
.sp .menu__list--title {
  font-size: 1.2em;
}
*/
.menu__list--subtitle {
  font-size: 1.5em;
  padding: 0 0 .25em;
}
.menu__list--subtitle:not(:first-of-type) {
  padding-top: 1em;
}

.menu__term-flex {
  display: flex;
  margin-bottom: 0;
}

.menu__term-flex__dt {
  text-align-last: justify;
  width: 8em;
  padding-right: 1em;
}

.menu__term-flex__dd {
  flex: 1;
}

/* ------ course menu ------ */
.course {
  margin-block-end: 48px;
}

#course_menu {
  padding-top: 0;
}

.course_menu:not(:last-of-type) {
  margin-block-end: 2.5rlh;
}

.course_menu_title {
  /*background: linear-gradient(transparent 0%, transparent 57%, rgba(255, 255, 255, 1) 58%, transparent 60%);*/
  text-align: left;
  /*margin-top: 32px;*/
}

h4.course_menu_title {
  background-color: hsla(255, 100%, 100%, .1);
  width: 100%;
  max-width: 920px;
  padding: .25rem;
  margin-block: 1rlh;
  margin-inline: auto;
  border: 3px solid;
  border-image: linear-gradient(135deg, #FFD700, #C07C15, #FFFBE6, #FFD700) 1;
  outline: 1px solid #fff;
  outline-offset: 4px;
}

@media(width <= 440px) {
  h4.course_menu_title {
    font-weight: bold;
  }
}

.course_menu_title span:last-of-type {
  background-color: #000;
  padding: 0 16px 0 8px;
}

.course_menu_title span:last-of-type::before {
  content: '■';
  background-color: #000
}

.course_menu__note {
  display: inline-block;
  margin-left : 50%;
  transform: translateX(-50%);
}

.course_menu__note * {
  align-content: center;
}

.course_menu_type_title {
  /*font-size: 1.5em;*/
  line-height: 2;
  margin-bottom: .5em;
}

.course_menu_type_title span {
  font-family: 'Noto Sans JP', sans-serif;
  padding: 0 4px;
  box-shadow: 0 4px 1px -3px #fff;
}

@media not screen and (min-width: 768px) {
  .menu_details.course_drink,
  .menu_details.course_detail,
  .menu_details.course_caution {
    display: block;
  }

  :is(.menu_details.course_drink, .menu_details.course_detail, .menu_details.course_caution) dt {
    padding-bottom: 0.25em;
  }
}
/*
.sp .course_menu_type_title {
  font-size: 1em;
}
*/
.course_hero_container {
  width: 100%;
  padding: 0 0 16px;
  margin-bottom: 16px;
  overflow: hidden;
}

@media (min-width:1024px) {
  .course_hero_container {
    height: calc(1024px * 0.4);
  }
}

@media (max-width:1024px) {
  .course_hero_container {
    height: calc(100vw * 0.4);
  }
}

button.free_drink_menu {
  color: #444;
  font-family: sans-serif;
  font-weight: bold;
  padding: .2rem .5rem .3rem;
  border-radius: .75rem;
}

.course_hero {
  /*position: absolute;
  top: 0;*/
  object-fit: fill;
  display: block;
  width: 100%;
  max-width: 800px;
  padding: 16px;
  margin-inline: auto;
}

.course_hero img {
  aspect-ratio: 8 / 5;
}

.course_menu_catch {
  margin-bottom: 1em;
}

.course_detail dd span {
  text-indent: -1.1em;
  display: inline-block;
  padding-left: 1em;
}

.course_drink dd span:nth-of-type(odd){
  display: block;
}

.course_detail dd span::before,
.course_drink dd span:nth-of-type(odd)::before {
  content: '・';
}

.course_drink dd span:nth-of-type(even){
  display: inline-block;
  padding-left: 1em;
}



/* ---------- 一品料理＆ドリンク ---------- */
/*
.menu__figure.right-side {
  margin: 0 0 0 16px;
}

.menu__figure.left-side {
  margin: 0 16px 0 0;
}

.menu__list__dish {
  padding: 0 0 16px;
  margin: 0 0 16px 0;
}
*/
.menu__figure {
  height: fit-content;
  overflow: hidden;
}

.menu__figure img {
  transition: transform .3s ease-in-out;
}

.menu__figure:hover img {
  transform: scale(1.25);
}

/* ---------- Grid Layout Wrapper ---------- */
.grid-wrap-col2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-template-rows: auto;
  grid-gap: 0 32px;
}

.menu__wrap {
  display: contents;
}

@media(max-width: 647px) {
  .grid-wrap-col2 {
    grid-gap: 0;
  }
    
  .menu__wrap {
    order: 2;
  }
}

/* ------ Grid Layout Commom Setting ------ */
[class^="grid-wrap"] {
  margin-bottom: 1em;
}

[class^="menu__list__dish--img_grid-col"] {
  padding-top: .5em;
}

/* ---------- 2column unit grid ----------  */
/* 商品画像あり */
.grid-col3 {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr;
  grid-template-rows: auto 1fr;
  /*width: fit-content;*/
  /*box-shadow: 0 2px 2px -3px #fff;*/
}

.menu__list__dish--name_grid-col3,
.menu__list__drink--name {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
  /*padding: 0 16px;*/
}

.menu__list__dish--price_grid-col3,
.menu__list__drink--price {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--comment_grid-col3,
.menu__list__drink--comment {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  align-content: start;
}

.menu__list__dish--img_grid-col3,
.menu__list__drink--img {
  grid-column-start: 3;
  grid-column-end:4;
  grid-row-start: 1;
  grid-row-end: 3;
  padding-left: 8px;
}

@media (max-width: 600px) {
  .grid-col3 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto 1fr;
    box-shadow: 0 2px 2px -3px #fff;
  }

  .menu__list__dish--img_grid-col3,
  .menu__list__drink--img {
    grid-column-start: 1;
    grid-column-end:3;
    grid-row-start: 1;
    grid-row-end: 2;
    padding-left: 0;
  }

  .menu__list__dish--name_grid-col3,
  .menu__list__drink--name {
    font-size: 1em;
    grid-column-start: 1;
    grid-column-end: 2;
    grid-row-start: 2;
    grid-row-end: 3;
    align-content: start;
  }

  .menu__list__dish--price_grid-col3,
  .menu__list__drink--price {
    font-size: 1em;
    text-align: right;
    grid-column-start: 2;
    grid-column-end: 3;
    grid-row-start: 2;
    grid-row-end: 3;
    align-content: start;
  }

  .menu__list__dish--comment_grid-col3,
  .menu__list__drink--comment {
    font-size: 1em;
    grid-column-start: 1;
    grid-column-end: 3;
    grid-row-start: 3;
    grid-row-end: 4;
    align-content: start;
  }
}

/* 商品画像無 */
.grid-col3-nophoto {
  font-size: 1em;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto auto;
  /* box-shadow: 0 2px 2px -3px #fff; */
}

.menu__list__dish--img_grid-col3-nophoto,
.menu__list__drink--img_nophoto {
  display: none;
}

.menu__list__dish--name_grid-col3-nophoto,
.menu__list__drink--name_nophoto {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
  align-content: start;
  padding: 0;
}

.menu__list__dish--comment_grid-col3-nophoto,
.menu__list__drink--comment_nophoto {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  padding: 0 0 0 8px;
}

.menu__list__dish--price_grid-col3-nophoto,
.menu__list__drink--price_nophoto {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  padding: 0 0 8px 0;
}

/* ---------- 1column unit grid pattern1 ---------- */
/* 商品画像あり */
.grid-col21 {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto auto;
  grid-auto-flow: column;
}

.menu__list__dish--name_grid-col21 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--price_grid-col21 {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--comment_grid-col21 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  align-content: start;
}

.menu__list__dish--img_grid-col21 {
  grid-column-start: 1;
  grid-column-end:3;
  grid-row-start: 3;
  grid-row-end: 4;
}

/* 商品画像なし */
.grid-col21-nophoto {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto auto;
  grid-auto-flow: column;
}

.menu__list__dish--name_grid-col21-nophoto {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 1;
  grid-row-end: 2;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--price_grid-col21-nophoto {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--comment_grid-col21-nophoto {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  align-content: start;
}

/* ---------- 2column Unit Grid Pattern2 ---------- */
/* 商品画像あり */
.grid-col22 {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto auto auto;
  grid-auto-flow: column;
}

.menu__list__dish--name_grid-col22 {
  font-size: 1.1em;
}

/*
.menu__list__dish--name1_grid-col22 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--name2_grid-col22 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 2;
  grid-row-end: 3;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
}

.menu__list__dish--name3_grid-col22 {
  grid-column-start: 1;
  grid-column-end: 2;
  grid-row-start: 3;
  grid-row-end: 4;
  font-size: 1.1em;
  align-content: start;
  height: fit-content;
}

.mene__list__dish--price2_grid-col22 {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
  align-content: start;
  height: fit-content;
}

.mene__list__dish--price3_grid-col22 {
  text-align: right;
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 3;
  grid-row-end: 4;
  align-content: start;
  height: fit-content;
}
*/
.menu__list__dish--comment_grid-col22 {
  grid-column-start: 1;
  grid-column-end: 3;
  grid-row-start: 4;
  grid-row-end: 5;
  align-content: start;
}

.menu__list__dish--img_grid-col22 {
  grid-column-start: 1;
  grid-column-end:3;
  grid-row-start: 4;
  grid-row-end: 5;
}

.thumbnail.dialog-activation {
  cursor: pointer;
}

.recommend_mark {
  vertical-align: middle;
  max-width: 3em;
}

/* ================================== */
/* Shop Informatin & Access
/* ================================== */
.shop_title {
  /*font-family: 'Parisienne', cursive;*/
  font-family: 'Noto Serif JP', serif;
  font-size: 2em;
  font-weight: 100;
  text-align: center;
  line-height: 1;
  padding-top: 100px;
}

.sp .shop_title {
  font-size: 1.5em;
}

.shop_title::after {
  content: 'ー　' attr(title) '　ー';
  font-family: 'Noto Sans JP', sans-serif;
  font-size: .5em;
  text-align: center;
  /* line-height: 2; */
  line-height: 1;
  display: block;
  padding: 4px 4px 0;
  margin: -8px 0 0;
  margin: 0 0 16px;
}

.shop__overview__wrap {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}

.shop__overview__detail {
  flex: 1 1 50%;
  max-width: 480px;
  margin: 0 8px;
}

.Bettei .shop__overview__detail {
  max-width: 670px;
}


.shop__overview__detail__photo {
  margin-bottom: 16px;
  border: solid 3px #fff;
}

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

.shop__overview__detail__desc dt {
  text-align-last: justify;
  width: 7em;
  padding-right: 1em;
}

.shop__overview__detail__desc dd {
  width: calc(100% - 7em); /* 7em => dt width */ 
}

#gmap {
  text-align: center;
  display: block;
  width: 100%;
  height: auto!important;
  padding: 16px;
}

@media(orientation:portrait) {
  #gmap {
    aspect-ratio: 9 / 16;
  }
}

@media(orientation:landscape) {
  #gmap {
    aspect-ratio: 16 / 9;
  }
}

/* ================================== */
/* Reservatiion */
/* ================================== */

#callToShop {
  font-family: 'San-Serif';
  text-align: center;
}

#phoneCall {
  color: #fff!important;
  font-family: 'Noto Sans JP', sans-serif!important;
  font-size: 1.3rem!important;
  text-align: center!important;
  background-color: #22139F!important;
  line-height: 56px!important;
  display: inline-block!important;
  width: 240px!important;
  height: 56px!important;
  padding: 0 16px!important;
  border: solid 1px #fff!important;
  border-radius: 8px!important;
  cursor: pointer!important;
}

#reserve {
  font-family: 'Noto San JP', sans-serif;
  text-align: center;
  /*padding-top: 80px;*/
}

#rsvBtn {
  display: block!important;
  &>* {
    display: block!important;
  }
}

#rsvBtn:active {
  /*border: solid 1px rgba(255, 255, 255, 0);*/
  border-radius: 8px!important;
  box-shadow: 2px -2px 2px 2px inset rgba(0, 0, 0, 1)!important;
}

.reserve_btn_img {
  width: 100%;
  height: 100%;
  max-width: 240px;
  max-height: 56px;
  border-radius: 8px!important;
}

.reserve_btn_img:active {
  opacity: .8!important;
  border: solid 1px rgba(0, 0, 0, .75)!important;
}

#footer {
 text-align: center;
 padding: 8px 0;
 border-top: 1px solid #CECFCE;
}

@media (max-width: 400px) {
  .copyright {
    font-size: calc(100vw / 55); /* 55=>文字数 */
  }
}

/* ================================== */
/* Miscellaneous
/* ================================== */
.note {
  font-size: .85em;
}

#pageloading-wrap {
  text-align: center;
  /*background: #466bda;*/
  background-color: #000;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}
:is(#Honten, #Bettei) #pageloading-wrap {
  z-index: 1000;
}
#pageloading-icon {
  position: absolute; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#pageTop {
  font-size: 3em;
  text-align: right;
  padding: 16px;
}

/* ================================== */
/* Material Design Components
/* ================================== */
/* flexbox */
.flex-wrap {
  display: flex;
  flex-direction: row;
  flex-flow: wrap;
}

/* Ripple Button */
.mdc-button {
  height: auto;
}
btn.mdc-button:not(:disabled) {
  color: #fff!important;
}

/* Modal Window */
.mdc-dialog__container {
  width: 90%;
}

.mdc-dialog .mdc-dialog__surface {
  width: 100%;
  max-width: none;
}

.mdc-dialog__content {
  padding: 8px;
}

#modal_close_btn.mdc-button:not(:disabled) {
  color: #00f;
}

.dt a[href^="tel:"],
.tb a[href^="tel:"] {
    pointer-events: none;
}

/* ================================== */
/* Scroll Prompt
/* ================================== */
[id^="scroll-prompt"] {
  background: rgba(255,255,255,0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4px 24px;
  border-radius: 8px;
  position: absolute;
  left: 50%;
  bottom: 4svh;
  z-index: 100!important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  transform: translateX(-50%);
  transition: background 0.2s;
  cursor: pointer;
  zoom: .6;
}
:is(#Honten, #Bettei) [id^="scroll-prompt"] {
  bottom: 66px;
}

/*
#scroll-prompt:hover {
  background: rgba(255,215,0,0.8);
}
*/
.scroll-arrow {
  display: block;
  width: 24px;
  height: 24px;
  border-left: 4px solid hsla(45, 59%, 31%, 1.00);
  border-bottom: 4px solid hsla(45, 59%, 31%, 1.00);
  transform: rotate(-45deg);
  margin-bottom: 4px;
  animation: arrow-bounce 1.2s infinite;
}
@keyframes arrow-bounce {
  0%, 100% { transform: translateY(0) rotate(-45deg);}
  50% { transform: translateY(10px) rotate(-45deg);}
}
.scroll-text {
  font-weight: 600;
  font-family: 'Noto Serif JP', serif;
  color: hsla(45, 59%, 31%, 1.00);
  font-size: 1rem;
  letter-spacing: 0.1em;
}


/* ================================== */
/* ページトップへ戻るボタン */
/* ================================== */
.page-top-btn {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 100;
  width: 50px;
  height: 50px;
  background: linear-gradient(145deg, #e6c887, #c5a56a);
  color: #000;
  border: 2px solid #a58a54;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s, filter 0.3s;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
}
.page-top-btn.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


/* ================================== */
/* 飲み放題メニューのモーダルウィンド */
/* ================================== */
#freedrink_menu {
  color: #fff;
  background-color: #111;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);
  padding: 1.5em;
  max-width: 500px;
  width: 90%;
  margin: auto;
  border: 3px solid hsla(40, 33%, 49%, 1.00);
  /* border-image-slice: 1;
  border-image-source: linear-gradient(145deg, #e6c887, #a58a54); */
  border-radius: .5rem;
  .course_drink {
    display: block;
    dt::before {
      content: "【 ";
    }
    dt::after {
      content: " 】";
    }
    dd {
      padding-inline-start: 1rem;
      padding-block-end: .5rem;
      margin-bottom: .5rem;
      border-bottom: solid 1px #333;
    }
  }
}

#freedrink_menu::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(1px);
  backdrop-filter: blur(1px);
}

/* 開閉アニメーション */
#freedrink_menu {
  opacity: 0;
  transform: scale(0.95);
  transition: opacity 0.3s, transform 0.3s, display 0.3s allow-discrete, overlay 0.3s allow-discrete;
}
#freedrink_menu[open] {
  opacity: 1;
  transform: scale(1);
}
@starting-style {
 #freedrink_menu[open] {
    opacity: 0; transform: scale(0.95);
  }
}
#freedrink_menu:not([open]) {
  display: none;
}

/* dialogが開いている間、背景のスクロールを禁止 */
html:has(dialog[open]) {
  overflow: hidden;
}

/* dialog内の閉じるボタン */
.close-dialog-btn {
  display: block;
  margin-left: auto;
  margin-top: 1.5em;
  padding: 0.7em 1.5em;
  border-radius: 5px;
  background: #222;
  color: #e6c887;
  font-weight: bold;
  text-shadow: 0 0 2px #000;
  cursor: pointer;
  border: 2px solid;
  border-image-slice: 1;
  border-image-source: linear-gradient(to bottom right, #e6c887, #a58a54);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4);
  transition: transform 0.1s ease, box-shadow 0.1s ease, border-image-source 0.1s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.close-dialog-btn:active {
  transform: translateY(2px) scale(0.98);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5);
  border-image-source: linear-gradient(to top left, #e6c887, #a58a54);
}

.nav__flex-row__list__anchor.active .mdc-button__label {
  color: #FFD700; /* ゴールド系の文字色 */
  font-weight: bold; /* 太字にする */
  position: relative;
}

/* 下線を引くスタイル */
.nav__flex-row__list__anchor.active .mdc-button__label::after {
  content: '';
  position: absolute;
  bottom: -4px; /* テキストからの距離 */
  left: 50%;
  transform: translateX(-50%);
  width: 80%; /* 下線の幅 */
  height: 2px; /* 下線の太さ */
  background-color: #FFD700;
  animation: draw-line 0.3s ease-out forwards;
}

@keyframes draw-line {
  from { width: 0; }
  to { width: 80%; }
}
}