/* ここから */
@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@3.3.1/dist/css/yakuhanjp-noto.min.css');
@import url('https://cdn.jsdelivr.net/npm/yakuhanjp@3.3.1/dist/css/yakuhanmp-noto.min.css');
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/notosansjp/v53/-F6jfjtqLzI2JPCgQBnw7HFyzSD-AsregP8VFBEj75s.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/notosansjp/v53/-F6jfjtqLzI2JPCgQBnw7HFyzSD-AsregP8VFPYk75s.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/notoserifjp/v30/xn71YHs72GKoTvER4Gn3b5eMRtWGkp6o7MjQ2bwxOubA.ttf) format('truetype');
}
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/notoserifjp/v30/xn71YHs72GKoTvER4Gn3b5eMRtWGkp6o7MjQ2bzWPebA.ttf) format('truetype');
}
:root {
  --font1: YakuHanMP_Noto, "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", serif;
  --font2: YakuHanJP_Noto, 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", sans-serif;
}
html {
  font-family: var(--font1);
  -webkit-print-color-adjust: exact;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body {
  font-size: 16px;
  background-color: #fff;
}
#menu-checkbox {
  display: none;
}
#menu-checkbox:checked ~ #menu-btn img.open {
  display: none;
}
#menu-checkbox:checked ~ #menu-btn img.close {
  display: inline-block;
}
#menu-checkbox:checked ~ #menu-area {
  opacity: 1;
  pointer-events: all;
}
#menu-btn {
  position: fixed;
  top: 30px;
  right: 20px;
  z-index: 1000;
  display: none;
  cursor: pointer;
  -o-transition: opacity 0.6s;
  transition: opacity 0.6s;
}
#menu-btn:hover {
  opacity: 0.5;
}
#menu-btn img {
  width: 40px;
  height: 40px;
}
#menu-btn img.close {
  display: none;
}
#menu-area {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #595045;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 100px 40px 80px;
}
#menu-area::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../img/common_menu_bg.svg);
  background-size: 300%;
  background-position: center;
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
}
#menu-area .inner {
  width: 100%;
  max-width: 480px;
  height: 100%;
  max-height: 760px;
  display: grid;
  grid-template-columns: 1fr auto;
  position: relative;
  gap: 40px;
}
#menu-area .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
#menu-area .ttl a {
  display: inline-block;
  background: #F4ECD0;
  -webkit-mask-image: url(../img/common_logo.svg);
          mask-image: url(../img/common_logo.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  width: 100%;
  max-width: 240px;
  aspect-ratio: 3/1;
  -o-transition: background 0.3s;
  transition: background 0.3s;
}
#menu-area .ttl a:hover {
  background: #B53928;
}
#menu-area .ttl a span {
  display: none;
}
#menu-area .contact {
  background: linear-gradient(60deg, #591A1D 0%, #88161C 30%, #A4615A 66%, #88161C 100%);
  color: #fff;
  font-size: 16px;
  padding: 30px 40px;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  justify-content: center;
  border-radius: 10px;
  box-shadow: 0 3px 3px #000000;
  -o-transition: filter 0.3s;
  transition: filter 0.3s;
}
#menu-area .contact:hover {
  color: #B53928;
  filter: brightness(0.8) saturate(1.2);
}
#menu-area .nav {
  color: #F4ECD0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}
#menu-area .nav li a {
  font-size: 18px;
  -o-transition: color 0.3s;
  transition: color 0.3s;
}
#menu-area .nav li a:hover {
  color: #B53928;
}
#menu-area .nav li a.sns::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background: #F4ECD0;
  -webkit-mask-image: url(../img/common_sns_instagram.svg);
          mask-image: url(../img/common_sns_instagram.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -o-transition: background 0.3s;
  transition: background 0.3s;
}
#menu-area .nav li a.sns:hover::after {
  background: #B53928;
}
#menu-area .nav li a.sns.facebook::after {
  -webkit-mask-image: url(../img/common_sns_facebook.svg);
          mask-image: url(../img/common_sns_facebook.svg);
}
#menu-area .nav li span {
  font-size: 14px;
}
#menu-area .nav li span .group {
  margin-top: 12px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
#menu-area .nav li span .group a {
  display: block;
  font-size: 12px;
  -o-transition: color 0.3s;
  transition: color 0.3s;
  white-space: nowrap;
}
#menu-area .nav li span .group a:hover {
  color: #B53928;
}
header {
  background-color: #0B0000;
}
header .inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  height: 100px;
}
header h1 {
  padding-left: 20px;
}
header h1 a {
  display: inline-block;
  background: #F4ECD0;
  -webkit-mask-image: url(../img/common_logo.svg);
          mask-image: url(../img/common_logo.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  width: 120px;
  height: 40px;
  -o-transition: background 0.3s;
  transition: background 0.3s;
}
header h1 a:hover {
  background: #B53928;
}
header h1 a span {
  display: none;
}
header h1 img {
  width: 110px;
}
header nav {
  margin-left: auto;
  height: 100%;
}
@media (max-width: 960px) {
  header nav {
    display: none;
  }
}
header nav ul {
  display: flex;
  align-items: center;
  gap: 40px;
  height: 100%;
}
header nav ul li {
  position: relative;
}
header nav ul li a {
  color: #F4ECD0;
  -o-transition: color 0.3s;
  transition: color 0.3s;
  font-size: 18px;
}
header nav ul li a:hover {
  color: #B53928;
}
header nav ul li.contact {
  height: 100%;
}
header nav ul li.contact a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 160px;
  position: relative;
}
header nav ul li.contact a::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: linear-gradient(60deg, #591A1D 0%, #88161C 30%, #A4615A 66%, #88161C 100%);
  -o-transition: filter 0.3s;
  transition: filter 0.3s;
  z-index: 0;
}
header nav ul li.contact a span {
  display: inline-block;
  position: relative;
  z-index: 1;
}
header nav ul li.contact a:hover::after {
  background: linear-gradient(60deg, #591A1D 0%, #88161C 30%, #A4615A 66%, #88161C 100%);
  filter: brightness(0.8) saturate(1.2);
}
header nav ul li span {
  color: #F4ECD0;
  font-size: 18px;
}
header nav ul li span .group {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  background-color: rgba(11, 0, 0, 0.5);
  padding: 20px 0 10px;
  z-index: 10;
}
header nav ul li span .group a {
  color: #F4ECD0;
  font-size: 12px;
  padding: 5px 10px;
  display: block;
  -o-transition: color 0.3s;
  transition: color 0.3s;
  white-space: nowrap;
}
header nav ul li span .group a:hover {
  color: #B53928;
}
header nav ul li span:hover .group {
  display: block;
}
main .about-news {
  background: linear-gradient(rgba(89, 80, 69, 0.75), rgba(89, 80, 69, 0.75)), url(../img/common_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
main section.hero {
  position: relative;
}
main section.hero::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, #0B000000, #0B0000);
}
main section.hero .inner {
  max-width: 1280px;
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 160px;
}
@media (max-width: 1080px) {
  main section.hero .inner {
    grid-template-columns: 1fr;
  }
}
main section.hero .left {
  position: relative;
}
main section.hero .right {
  display: flex;
  justify-content: center;
  padding-top: 50px;
}
@media (max-width: 1080px) {
  main section.hero .right {
    display: none;
  }
}
main section.hero .swiper {
  --swiper-pagination-bullet-inactive-color: #F4ECD0;
  --swiper-pagination-bullet-inactive-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 10px;
  --swiper-pagination-bullet-border-radius: 0;
  --swiper-pagination-bullet-width: 80px;
  --swiper-pagination-bullet-height: 3px;
  --swiper-theme-color: #B53928;
}
main section.hero .swiper .swiper-slide {
  width: 100% !important;
  aspect-ratio: 16/9;
}
@media (max-width: 1080px) {
  main section.hero .swiper .swiper-slide {
    aspect-ratio: auto;
    height: 600px;
  }
}
main section.hero .swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
main section.hero .swiper .swiper-pagination {
  position: absolute;
  bottom: 40px;
  left: 40px;
  width: auto;
}
@media (max-width: 1080px) {
  main section.hero .swiper .swiper-pagination {
    width: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
}
main section.hero .logo {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: -80px;
  transform: translateY(-50%);
  color: #F4ECD0;
}
@media (max-width: 1080px) {
  main section.hero .logo {
    right: inherit;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  }
}
main section.hero .logo .img {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
main section.hero .logo .img img {
  width: 100%;
  filter: drop-shadow(0px 0px 10px #000000);
}
main section.hero .logo .en {
  font-size: 40px;
  line-height: 1.4em;
  font-size: 20px;
  text-shadow: 0 0 5px #000000;
}
@media (min-width: 320px) {
  main section.hero .logo .en {
    font-size: calc(20px  +  20  * ((100vw -  320px ) / 960 ));
  }
}
@media (min-width: 1280px) {
  main section.hero .logo .en {
    font-size: 40px;
  }
}
main section.hero .logo .ja {
  font-size: 14px;
  line-height: 1.4em;
  text-shadow: 0 0 5px #000000, 0 0 5px #000000;
}
main section.hero .sns {
  display: flex;
  flex-direction: column;
  gap: 50px;
}
main section.hero .sns li a::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background: #F4ECD0;
  -webkit-mask-image: url(../img/common_sns_instagram.svg);
          mask-image: url(../img/common_sns_instagram.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -o-transition: background 0.3s;
  transition: background 0.3s;
}
main section.hero .sns li a:hover::after {
  background: #B53928;
}
main section.hero .sns li a.facebook::after {
  -webkit-mask-image: url(../img/common_sns_facebook.svg);
          mask-image: url(../img/common_sns_facebook.svg);
}
section.about {
  padding: 100px 0 0;
}
section.about .inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 500px 1fr;
  align-items: center;
}
@media (max-width: 1180px) {
  section.about .inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 20px;
  }
}
section.about .left {
  position: relative;
  transform: translateX(100px);
  z-index: 1;
}
@media (max-width: 1180px) {
  section.about .left {
    transform: none;
    margin-bottom: -80px;
  }
  section.about .left .block {
    max-width: 480px;
    margin: 0 auto;
  }
}
@media (max-width: 640px) {
  section.about .left {
    margin-bottom: 0px;
  }
}
section.about .right {
  position: relative;
  z-index: 0;
}
section.about .block {
  background-color: #F4ECD0;
  position: relative;
  padding: 60px 50px;
  color: #220D01;
}
section.about .block::before {
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(60deg, #B53928 0%, #F4ECD0 14%, #B53928 30%, #73241A 76%, #B53928 100%);
}
section.about .block h2 {
  font-size: 30px;
  text-align: center;
  margin-bottom: 40px;
}
section.about .block p {
  line-height: 1.8em;
}
section.about .block p.ja {
  font-size: 16px;
  margin-bottom: 30px;
  font-family: var(--font2);
}
section.about .block p.en {
  font-size: 14px;
}
section.about .swiper {
  --swiper-pagination-bullet-inactive-color: #F4ECD0;
  --swiper-pagination-bullet-inactive-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 10px;
  --swiper-pagination-bullet-border-radius: 0;
  --swiper-pagination-bullet-width: 80px;
  --swiper-pagination-bullet-height: 3px;
  --swiper-theme-color: #B53928;
}
section.about .swiper .swiper-slide {
  width: 100% !important;
  aspect-ratio: 4/3;
}
section.about .swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section.about .swiper .swiper-pagination {
  position: absolute;
  bottom: 40px;
  right: 40px;
  left: auto;
  width: auto;
}
@media (max-width: 1080px) {
  section.about .swiper .swiper-pagination {
    width: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
}
section.news {
  padding: 100px 20px 100px;
  position: relative;
}
section.news::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: linear-gradient(180deg, #0B000000, #0B0000);
}
section.news .inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 40px;
  position: relative;
  z-index: 1;
}
@media (max-width: 960px) {
  section.news .inner {
    grid-template-columns: 1fr auto;
    gap: 20px;
  }
}
section.news .left {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-right: 50px;
}
@media (max-width: 960px) {
  section.news .left {
    padding-top: 100px;
    padding-right: 0;
    grid-column: 1 / 3;
    margin-bottom: 20px;
  }
  section.news .left h2::before {
    left: -30px !important;
  }
}
section.news .left h2 {
  font-size: 30px;
  color: #F4ECD0;
  position: relative;
}
section.news .left h2::before {
  content: "";
  display: block;
  width: 140px;
  height: 140px;
  background-image: url(../img/index_hero_character.svg);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  bottom: 100%;
  left: 0;
  filter: drop-shadow(0px 0px 10px #000000);
}
section.news .center ul {
  overflow: auto;
  height: 150px;
}
section.news .center ul::-webkit-scrollbar {
  display: none;
}
section.news .center ul li {
  border-bottom: 1px solid #F4ECD0;
}
section.news .center ul li a {
  height: 50px;
  padding: 0 20px;
  color: #F4ECD0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 50px;
  align-items: center;
  font-family: var(--font2);
}
@media (max-width: 960px) {
  section.news .center ul li a {
    gap: 20px;
  }
}
section.news .center ul li a .time {
  font-size: 14px;
}
section.news .center ul li a .title {
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 18px;
}
@media (max-width: 640px) {
  section.news .center ul li a .time {
    font-size: 12px;
  }
  section.news .center ul li a .title {
    font-size: 16px;
  }
}
section.news .center ul li:first-child {
  border-top: 1px solid #F4ECD0;
}
section.news .right {
  width: 60px;
  transform-origin: 0 0;
  transform: rotate(90deg) translate(0, -60px);
}
section.news .right input[type=range] {
  position: absolute;
  width: 150px;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  outline: none;
  background: transparent;
  cursor: pointer;
  position: relative;
}
section.news .right input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 10px;
  height: 10px;
  background: #F4ECD0;
  border-radius: 50%;
  cursor: pointer;
  transform: translateY(calc(-50% + 1px));
}
section.news .right input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 1px;
  cursor: pointer;
  background: #F4ECD0;
}
section.news .right input[type=range]::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 5px solid #F4ECD0;
  position: absolute;
  top: 0;
  right: 0;
  transform: translateY(calc(-50% + 1px));
}
section.news .right div {
  color: #F4ECD0;
  font-size: 12px;
  margin-bottom: 10px;
  width: 150px;
}
section.news .right div span {
  display: inline-block;
}
.menu-head {
  background-image: url(../img/index_menu-head_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 150px 20px 0;
}
.menu-head .inner {
  max-width: 960px;
  margin: 0 auto;
}
.menu-head .block {
  background-color: #F4ECD0;
  position: relative;
  padding: 60px 50px 0;
  color: #220D01;
}
@media (max-width: 640px) {
  .menu-head .block {
    padding: 30px 20px 0;
  }
}
.menu-head .block::before {
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(60deg, #B53928 0%, #F4ECD0 14%, #B53928 30%, #73241A 76%, #B53928 100%);
}
.menu-head .block h2 {
  font-size: 30px;
  text-align: center;
  margin-bottom: 40px;
}
.menu-head .block p {
  line-height: 1.8em;
  text-align: center;
}
.menu-head .block p.ja {
  font-size: 16px;
  margin-bottom: 30px;
  font-family: var(--font2);
}
.menu-head .block p.en {
  font-size: 14px;
}
.menu-head .block .tabs ul {
  display: flex;
  justify-content: center;
  gap: 2px;
  margin-top: 40px;
}
.menu-head .block .tabs ul li {
  max-width: 230px;
  width: 100%;
}
@media (max-width: 640px) {
  .menu-head .block .tabs ul li {
    max-width: auto;
  }
}
.menu-head .block .tabs ul li label {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 60px;
  background: #BDA663;
  color: #F4ECD0;
  -o-transition: background 0.3s;
  transition: background 0.3s;
  cursor: pointer;
  font-size: 20px;
}
.menu-head .block .tabs ul li label:hover,
.menu-head .block .tabs ul li label.active {
  background: #220D01;
}
input[type=radio] {
  display: none;
}
input[type=radio]:checked + section.menu-body {
  display: block;
}
section.menu-body {
  display: none;
  background: linear-gradient(rgba(34, 13, 1, 0.8), rgba(34, 13, 1, 0.8)), url(../img/index_menu-body_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 100px 20px;
  overflow: hidden;
  position: relative;
}
section.menu-body::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 200px;
  top: 0;
  left: 0;
  background: linear-gradient(#220d01, rgba(34, 13, 1, 0));
  z-index: 0;
}
section.menu-body .inner {
  max-width: 1080px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
section.menu-body .ttl {
  display: grid;
  grid-template-columns: 1fr 400px;
  margin-bottom: 50px;
}
@media (max-width: 960px) {
  section.menu-body .ttl {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}
section.menu-body .ttl.non-img {
  grid-template-columns: 1fr;
  gap: 30px;
}
section.menu-body .ttl .txt {
  color: #F4ECD0;
  border-left: 5px solid #B53928;
  align-self: flex-start;
  padding-left: 20px;
}
section.menu-body .ttl .txt h3 {
  font-size: 30px;
  margin-bottom: 30px;
}
section.menu-body .ttl .txt .h3-ja {
  font-size: 18px;
  margin-bottom: 30px;
  font-family: var(--font2);
}
section.menu-body .ttl .txt p {
  line-height: 1.8em;
}
section.menu-body .ttl .txt p.ja {
  font-size: 16px;
  margin-bottom: 20px;
  font-family: var(--font2);
}
section.menu-body .ttl .txt p.en {
  font-size: 14px;
}
section.menu-body .ttl .img {
  transform: translateX(60px);
  display: grid;
  gap: 20px;
  align-self: flex-start;
}
section.menu-body .ttl .img img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
@media (max-width: 960px) {
  section.menu-body .ttl .img {
    transform: none;
  }
  section.menu-body .ttl .img img {
    max-width: 480px;
    margin: 0 auto;
  }
}
section.menu-body .ttl .p-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 960px) {
  section.menu-body .ttl .p-grid {
    grid-template-columns: 1fr;
  }
}
section.menu-body .recommend {
  margin-bottom: 80px;
}
section.menu-body .recommend h4 {
  font-family: var(--font2);
  color: #F4ECD0;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}
section.menu-body .recommend .h4-en {
  font-size: 18px;
  color: #BDA663;
  font-weight: bold;
  margin-bottom: 20px;
}
@keyframes arrow {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(10px);
  }
  100% {
    transform: translateX(0);
  }
}
section.menu-body .recommend .scroll {
  color: #F4ECD0;
  font-size: 14px;
  animation: arrow 2s infinite;
  margin-bottom: 20px;
}
section.menu-body .recommend .scroll .arrow {
  margin-bottom: 5px;
}
section.menu-body .recommend .scroll .arrow img {
  width: 130px;
}
section.menu-body .recommend .swiper {
  overflow: visible;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .img {
  margin-bottom: 10px;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .img img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .txt h5 {
  font-family: var(--font2);
  color: #F4ECD0;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.6em;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .txt .h5-en {
  font-size: 18px;
  color: #BDA663;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.6em;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .txt p {
  font-size: 14px;
  line-height: 1.8em;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .txt p.ja {
  font-family: var(--font2);
  font-size: 14px;
  color: #F4ECD0;
  margin-bottom: 20px;
}
section.menu-body .recommend .swiper .swiper-wrapper .swiper-slide .txt p.en {
  font-size: 12px;
  color: #F4ECD0;
}
section.menu-body .menu {
  background-color: #F4ECD0;
  color: #220D01;
  padding: 60px 60px;
  position: relative;
}
@media (max-width: 720px) {
  section.menu-body .menu {
    padding: 30px 20px;
  }
}
section.menu-body .menu::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-bottom: 30px solid transparent;
  border-left: 30px solid #B53928;
  position: absolute;
  top: 0;
  left: 0;
}
section.menu-body .menu h4 {
  text-align: center;
  font-size: 30px;
  margin-bottom: 30px;
}
section.menu-body .menu .items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 30px;
}
@media (max-width: 720px) {
  section.menu-body .menu .items {
    gap: 5px;
    grid-template-columns: 1fr;
  }
}
section.menu-body .menu .items div {
  padding: 3px 0;
}
section.menu-body .menu .items div:nth-child(odd) {
  font-size: 18px;
  font-family: var(--font2);
}
section.menu-body .menu .items div:nth-child(even) {
  font-size: 14px;
}
@media (max-width: 720px) {
  section.menu-body .menu .items div:nth-child(even) {
    margin-bottom: 10px;
  }
}
section.menu-body .menu .items div.header {
  border-bottom: 1px dotted #220D01;
  margin-top: 20px;
  font-weight: bold;
  padding: 6px 0;
}
@media (max-width: 720px) {
  section.menu-body .menu .items div.header {
    border-bottom: none;
  }
  section.menu-body .menu .items div.header + .header {
    margin-top: 0;
    border-bottom: 1px dotted #220D01;
    padding-bottom: 20px;
  }
}
section.menu-body .plans {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr auto;
  gap: 20px;
  height: -webkit-max-content;
  height: -moz-max-content;
  height: max-content;
  max-width: 960px;
  margin: 0 auto;
  margin-bottom: 80px;
}
@media (max-width: 960px) {
  section.menu-body .plans {
    grid-template-columns: 1fr;
    grid-template-rows: inherit;
  }
}
section.menu-body .plans .plan {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: #F4ECD0;
  color: #220D01;
  padding: 40px 40px;
  position: relative;
}
@media (max-width: 960px) {
  section.menu-body .plans .plan {
    padding: 30px 20px;
  }
}
section.menu-body .plans .plan::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-bottom: 30px solid transparent;
  border-left: 30px solid #B53928;
  position: absolute;
  top: 0;
  left: 0;
}
section.menu-body .plans .plan h4 {
  font-size: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #220D01;
  margin-bottom: 20px;
}
section.menu-body .plans .plan .h4-en {
  font-size: 18px;
  margin-bottom: 20px;
}
section.menu-body .plans .plan ul {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 20px;
}
section.menu-body .plans .plan ul li {
  text-indent: -1em;
  padding-left: 1em;
  font-size: 14px;
  line-height: 1.4em;
}
section.menu-body .plans .plan ul li::before {
  content: "・";
}
section.menu-body .plans .plan ul li span.ja {
  font-family: var(--font2);
}
section.menu-body .plans .plan .price {
  font-size: 18px;
  font-family: var(--font2);
  margin-top: auto;
  text-align: right;
}
section.menu-body .plans .plan:nth-child(3) {
  grid-column: 1 / 3;
  align-self: flex-start;
}
@media (max-width: 960px) {
  section.menu-body .plans .plan:nth-child(3) {
    grid-column: 1;
    align-self: auto;
  }
}
section.menu-body .contact {
  background-image: linear-gradient(60deg, #88161C 0%, #591A1D 30%, #88161C 43%, #A4615A 50%, #591A1D 100%);
  color: #fff;
  font-size: 16px;
  width: 100%;
  max-width: 300px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  box-shadow: 0 5px 5px #000000;
  -o-transition: filter 0.3s;
  transition: filter 0.3s;
  margin: 0 auto;
  margin-top: 80px;
}
section.menu-body .contact:hover {
  filter: brightness(1.2);
}
section.event {
  padding: 100px 20px;
  position: relative;
}
section.event .swiper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  --swiper-pagination-bullet-inactive-color: #F4ECD0;
  --swiper-pagination-bullet-inactive-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 10px;
  --swiper-pagination-bullet-border-radius: 0;
  --swiper-pagination-bullet-width: 80px;
  --swiper-pagination-bullet-height: 3px;
  --swiper-theme-color: #B53928;
}
section.event .swiper .swiper-slide {
  width: 100% !important;
  aspect-ratio: 16/9;
}
section.event .swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
section.event .swiper .swiper-pagination {
  position: absolute;
  bottom: 40px;
  right: 40px;
  left: auto;
  width: auto;
}
@media (max-width: 1080px) {
  section.event .swiper .swiper-pagination {
    width: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
}
section.event .inner {
  max-width: 1080px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  grid-template-columns: 400px 1fr;
  align-items: center;
}
@media (max-width: 960px) {
  section.event .inner {
    grid-template-columns: 1fr;
  }
}
section.event .block {
  background-color: rgba(34, 13, 1, 0.75);
  position: relative;
  padding: 60px 50px;
  color: #F4ECD0;
}
@media (max-width: 960px) {
  section.event .block {
    padding: 30px 20px;
    max-width: 480px;
    margin: 0 auto;
  }
}
section.event .block::before {
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(60deg, #B53928 0%, #F4ECD0 14%, #B53928 30%, #73241A 76%, #B53928 100%);
}
section.event .block h2 {
  font-size: 30px;
  text-align: center;
  margin-bottom: 40px;
}
section.event .block p {
  line-height: 1.8em;
}
section.event .block p.ja {
  font-size: 16px;
  margin-bottom: 30px;
  font-family: var(--font2);
}
section.event .block p.en {
  font-size: 14px;
}
footer {
  background: linear-gradient(-90deg, #595045 0%, #59504500 50%, #595045 100%), linear-gradient(-90deg, rgba(89, 80, 69, 0.75), rgba(89, 80, 69, 0.75)), url(../img/common_footer_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 200px 20px;
  overflow: hidden;
}
@media (max-width: 960px) {
  footer {
    padding: 100px 20px;
  }
}
footer .inner {
  max-width: 1080px;
  margin: 0 auto;
  background-color: #434F49;
  padding: 0 20px 100px;
}
@media (max-width: 960px) {
  footer .inner {
    padding: 30px 20px 30px;
  }
}
footer .footer-head {
  display: grid;
  grid-template-columns: 40% 1fr;
}
@media (max-width: 960px) {
  footer .footer-head {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-bottom: 30px;
  }
}
footer .footer-head .left {
  transform: translate(-50px, -50px);
}
footer .footer-head .left img {
  width: 100%;
}
@media (max-width: 960px) {
  footer .footer-head .left img {
    display: block;
    max-width: 300px;
    margin: 0 auto;
  }
}
@media (max-width: 960px) {
  footer .footer-head .left {
    transform: none;
  }
}
footer .footer-head .right {
  transform: translate(50px, -30px);
}
@media (max-width: 960px) {
  footer .footer-head .right {
    transform: none;
  }
}
footer .footer-head .right .img {
  aspect-ratio: 3/2;
  width: 100%;
  box-shadow: 0 0 10px #000000;
  position: relative;
}
@media (max-width: 960px) {
  footer .footer-head .right .img {
    display: block;
    max-width: 480px;
    margin: 0 auto;
  }
}
footer .footer-head .right .img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
footer .footer-head .right .img img:nth-child(2) {
  display: none;
}
footer .footer-head .right .img:hover img:nth-child(1) {
  display: none;
}
footer .footer-head .right .img:hover img:nth-child(2) {
  display: block;
}
footer .footer-body {
  padding: 0 80px;
}
@media (max-width: 960px) {
  footer .footer-body {
    padding: 0 0;
  }
}
footer .footer-body h2 {
  font-size: 30px;
  text-align: center;
  margin-bottom: 40px;
  color: #F4ECD0;
}
footer .footer-body .info {
  display: grid;
  margin-bottom: 30px;
}
footer .footer-body .info > div {
  display: grid;
  grid-template-columns: 250px 1fr;
  align-items: center;
  border-top: 1px solid #F4ECD0;
}
footer .footer-body .info > div:last-child {
  border-bottom: 1px solid #F4ECD0;
}
@media (max-width: 640px) {
  footer .footer-body .info > div {
    grid-template-columns: 1fr;
    text-align: center;
  }
}
footer .footer-body .info dt,
footer .footer-body .info dd {
  font-family: var(--font2);
  font-size: 16px;
  line-height: 1.8em;
  font-weight: normal;
  color: #F4ECD0;
  padding: 30px 20px;
}
footer .footer-body .info dt {
  text-align: center;
}
@media (max-width: 640px) {
  footer .footer-body .info dt {
    padding: 10px 20px 0;
  }
}
footer .footer-body .info dd {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
footer .footer-body .info dd a {
  background-color: #F4ECD0;
  color: #434F49;
  padding: 0px 10px;
  -o-transition: background-color 0.3s, color 0.3s;
  transition: background-color 0.3s, color 0.3s;
}
footer .footer-body .info dd a:hover {
  background-color: #B53928;
  color: #F4ECD0;
}
@media (max-width: 640px) {
  footer .footer-body .info dd {
    display: block;
    padding: 20px 20px;
    text-align: center;
  }
  footer .footer-body .info dd a {
    display: block;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    margin: 0 auto;
  }
}
footer .footer-body .sns {
  display: flex;
  justify-content: flex-end;
  gap: 30px;
  margin-bottom: 30px;
}
@media (max-width: 640px) {
  footer .footer-body .sns {
    justify-content: center;
  }
}
footer .footer-body .sns li a::after {
  content: "";
  display: inline-block;
  width: 30px;
  height: 30px;
  background: #F4ECD0;
  -webkit-mask-image: url(../img/common_sns_instagram.svg);
          mask-image: url(../img/common_sns_instagram.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -o-transition: background 0.3s;
  transition: background 0.3s;
}
footer .footer-body .sns li a:hover::after {
  background: #B53928;
}
footer .footer-body .sns li a.facebook::after {
  -webkit-mask-image: url(../img/common_sns_facebook.svg);
          mask-image: url(../img/common_sns_facebook.svg);
}
footer .footer-body .contact {
  background-image: linear-gradient(60deg, #88161C 0%, #591A1D 30%, #88161C 43%, #A4615A 50%, #591A1D 100%);
  color: #fff;
  font-size: 16px;
  width: 100%;
  max-width: 300px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  box-shadow: 0 5px 5px #000000;
  -o-transition: filter 0.3s;
  transition: filter 0.3s;
  margin: 0 auto;
}
footer .footer-body .contact:hover {
  filter: brightness(1.2);
}
section.article {
  padding: 80px 20px;
  background: linear-gradient(rgba(89, 80, 69, 0.75), rgba(89, 80, 69, 0.75)), url(../img/common_bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
section.article .inner {
  max-width: 720px;
  margin: 0 auto;
  background-color: #fff;
  padding: 40px 40px;
  border-radius: 5px;
}
@media (max-width: 640px) {
  section.article .inner {
    padding: 20px 20px;
  }
}
section.article article {
  margin-bottom: 50px;
}
section.article article h1.ttl {
  margin-bottom: 10px;
}
section.article article time {
  color: #BDA663;
  display: block;
  border-bottom: 1px solid #434F49;
  padding-bottom: 30px;
}
section.article article figure {
  margin: 1em 0;
}
section.article article table {
  margin: 1em 0;
  width: 100%;
}
section.article article table th,
section.article article table th {
  padding: 0.25em;
}
section.article h2.ttl {
  text-align: center;
  font-size: 30px;
  margin-bottom: 50px;
}
section.article ul.list {
  margin-bottom: 50px;
}
section.article ul.list li {
  border-top: 1px solid #434F49;
}
section.article ul.list li:not(:first-child) {
  border-bottom: 1px solid #434F49;
}
section.article ul.list li a {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
  -o-transition: opacity 0.6s;
  transition: opacity 0.6s;
}
section.article ul.list li a:hover {
  opacity: 0.5;
}
section.article ul.list li a p {
  display: block;
  overflow: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis;
  white-space: nowrap;
}
section.article .prev-next {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  text-align: center;
}
section.article .pagination {
  display: flex;
  justify-content: center;
  grid-gap: 1em;
}
section.article .pagination a,
section.article .pagination span {
  border: 1px solid #000;
  width: 2em;
  height: 2em;
  display: flex;
  justify-content: center;
  align-items: center;
}
section.article .pagination .current {
  cursor: not-allowed;
  opacity: 0.5;
}
