*,
*:before,
*:after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 1.2px;
  word-break: break-all;
  color: #6e3838;
  min-width: 320px;
}

a {
  text-decoration: none;
  color: #a32525;
}

a:hover {
  opacity: 0.8;
  transition: 0.3s;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  border-style: none;
}

.hover-action {
  display: block;
  -webkit-transition: all .3s;
  transition: all .3s;
  -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .1);
}

.hover-action:hover {
  -webkit-transition: all .3s;
  transition: all .3s;
  -webkit-transform: translate(0, -4px);
  transform: translate(0, -4px);
  -webkit-box-shadow: 0 10px 20px 0 rgba(0, 0, 0, .12);
  box-shadow: 0 10px 20px 0 rgba(0, 0, 0, .12);
}

.animation {
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
  animation-duration: 1.5s;
  width: 128px;
}

.keyframe1 {
  animation-name: anim_v;
}

@keyframes anim_v {
  0% {
    transform: translate(0, 0px);
  }

  100% {
    transform: translate(0, 10px);
  }
}

/*--------------------------------
 文字
---------------------------------*/

/*--------------------------------
 レイアウト
---------------------------------*/
#wrap {
  width: 100%;
  overflow: hidden;
}

.section {
  padding: 8px 0;
  max-width: 1380px;
  margin: 0 auto;
  position: relative;
  font-size: 1rem;
}

.content-text {
  max-width: 600px;
  margin: 0 auto;
  margin-bottom: 16px;
}

/*--------------------------------
 見出し
---------------------------------*/
.content-heading {
  width: 100%;
  padding-bottom: 14px;
  border-left: 4px solid #a32525;
  padding-left: 10px;
  font-size: 1rem;
  font-weight: 500;
}

.content-heading-title1 {
  color: #a32525;
}

.content-heading-title2 {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1em;
}

/*--------------------------------
 効果
---------------------------------*/
/* スクロールをしたらふわっと要素を動かす */
/* fadeUp */
/* その場で */
.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 2s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(32px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 上から */
.fadeDown {
  animation-name: fadeDownAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeDownAnime {
  from {
    opacity: 0;
    transform: translateY(-32px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 左から */
.fadeLeft {
  animation-name: fadeLeftAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-32px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* 右から */
.fadeRight {
  animation-name: fadeRightAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translateX(32px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger {
  opacity: 0;
}

/*--------------------------------
 グローバルナビ
---------------------------------*/
header {
  width: 100%;
  height: 80px;
  background: #fff;
  box-sizing: border-box;
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
  z-index: 20;
}

nav {
  width: 100%;
  height: 80px;
  font-size: 0.8rem;
  position: relative;
  background-color: #fff;
}

.drawer {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  position: relative;
  height: 80px;
  padding: 0 0.8em;
}

/*ナビゲーション部分*/
.menu ul li a {
  display: block;
  font-weight: bold;
  padding: 2em;
  color: #a32424;
  position: relative;
  display: inline-block;
  text-decoration: none;

}

.menu ul li a::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  content: '';
  width: 100%;
  height: 1px;
  background: #a32525;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: transform .3s;
}

.menu ul li a:hover::after {
  transform-origin: left top;
  transform: scale(1, 1);
}

.menu ul li a:hover {
  color: #f23434;
}

.menu {
  text-align: center;
  background-color: rgba(255, 255, 255, 0.9);
  transition: .5s ease;
  /*滑らかに表示*/
  -webkit-transform: translateX(-105%);
  transform: translateX(105%);
  /*左に隠しておく*/
}

/*OPEN時の動き*/
.menu.open {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  /*中身を表示（右へスライド）*/
}

/*トグルボタンのスタイルを指定*/
.Toggle {
  display: block;
  position: fixed;
  /* bodyに対しての絶対位置指定 */
  width: 42px;
  height: 42px;
  cursor: pointer;
  z-index: 3;
  right: 15px;
}

.Toggle span {
  display: block;
  position: absolute;
  width: 36px;
  border-bottom: solid 3px #a32424;
  -webkit-transition: .35s ease-in-out;
  /*変化の速度を指定*/
  -moz-transition: .35s ease-in-out;
  /*変化の速度を指定*/
  transition: .35s ease-in-out;
  /*変化の速度を指定*/
}

.Toggle span:nth-child(1) {
  top: 5px;
}

.Toggle span:nth-child(2) {
  top: 18px;
}

.Toggle span:nth-child(3) {
  top: 32px;
}

.Toggle.active span:nth-child(1) {
  top: 18px;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

/* 2番目と3番目のspanを45度に */
.Toggle.active span:nth-child(2),
.Toggle.active span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg);
}

@media screen and (min-width: 880px) {
  header::after {

    display: none;
  }

  nav {
    display: flex;
  }

  .Toggle {
    display: none;
  }

  .menu {
    width: 100%;
    background-color: transparent;
    margin-top: 0;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  .menu ul {
    height: 80px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
  }

  .menu ul li a {
    padding: 0 1em;
    border-bottom: none;
  }

  .menu ul li a:hover {
    background-color: transparent;
  }
}

/*--------------------------------
ヘッダー
---------------------------------*/
.header {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 800px;
  position: relative;
  overflow: hidden;
  z-index: -10;
}

.header::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/header/header.jpg) center center / cover no-repeat;
  -webkit-animation: zoom 10s 1;
  animation: zoom 10s 1;
  animation-fill-mode: forwards;
}

@keyframes zoom {
  0% {
    transform: scale(1.1);
  }

  100% {
    transform: scale(1);
  }
}

.header-text1 {
  position: absolute;
  top: 580px;
  left: 20px;
}

.header-text1 img {
  width: 300px;
}

.header-text2 {
  position: absolute;
  bottom: 560px;
  right: 20px;
}

.header-text3 {
  position: absolute;
  bottom: 490px;
  right: 20px;
}

.header-text4 {
  position: absolute;
  bottom: 420px;
  right: 20px;
}

.header-text2 img,
.header-text3 img,
.header-text4 img {
  width: 360px;
}

.header-icon1 {
  position: absolute;
  top: 500px;
  right: 40px;
}

.header-icon1 img {
  width: 150px;
}

.header-reserve {
  position: absolute;
  bottom: -130px;
  right: 360px;
}

.header-reserve a {
  display: inline-block;
}

.header-reserve a:hover {
  display: inline-block;
  transform: translateY(0.4em);
}

@media (min-width:880px) {
  .header-reserve {
    display: none;
  }
}

.header-menu {
  position: absolute;
  bottom: -130px;
  right: 190px;
}

.header-menu a {
  display: inline-block;
}

.header-menu a:hover {
  display: inline-block;
  transform: translateY(0.4em);
}

.header-access {
  position: absolute;
  bottom: -130px;
  right: 20px;
}

.header-access a {
  display: inline-block;
}

.header-access a:hover {
  transform: translateY(0.4em);
}

.openinghours_g {
  position: absolute;
  bottom: -120px;
  left: 20px;
}

.openinghours_g::after {
  width: 100%;
}

.openinghours_g p {
  font-size: 1.2rem;
  font-weight: bold;
  color: #fff;
  text-shadow: 0 0 6px #595959;
}

.openinghours {
  border: 2px #a32424 solid;
  border-radius: 6px;
  margin-top: 10px;
}

.openinghours table {
  width: 490px;
  max-width: 100%;
  font-size: 1rem;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  overflow: hidden;
}

.openinghours th {
  background-color: #a32424;
  color: #ffe0e0;
  padding: 16px 0;
  font-weight: normal;
}

.openinghours th,
.openinghours td {
  text-align: center;
  align-items: center;
  line-height: 1.2rem;
  border: none;
  vertical-align: middle;
}

.openinghours tr th:last-of-type,
.openinghours tr td:last-of-type {
  padding-right: 10px;
}

.openinghours td {
  font-weight: bold;
  background-color: #fff;
  padding: 10px 0;
}

.openinghours .time {
  width: 20%;
}

.openinghours .large {
  font-family: apple color emoji, segoe ui emoji, noto color emoji, android emoji, emojisymbols, emojione mozilla, twemoji mozilla, segoe ui symbol;
  font-size: 1.6rem;
  color: #a32525;
}

.openinghours .narrow {
  letter-spacing: -0.1rem;
}

.openinghours .rotate {
  transform: rotate(-90deg);
  margin: 0;
  padding: 0;
}

.openinghours .tel {
  border-radius: 6px;
  text-align: left;
}

.openinghours td.tel {
  padding-left: 16px;
  font-size: 14px;
}

.openinghours td.boder {
  padding: 0 16px;
}

.openinghours td.boder hr {
  padding: 0;
  margin: 0;
  border-top: 2px dashed #b29595;
  border-right: none;
  border-bottom: none;
  border-left: none;
}

.text_catchcopy {
  display: flex;
  align-items: center;
  justify-content: center;
}

.wave {
  height: 500px;
  position: relative;
  display: flex;
  /*contentsをcenterに*/
  justify-content: center;
  align-items: center;
}

.wave::after {
  background: url("../img/mission/wave.svg");
  background-size: cover;
  z-index: -10;
  bottom: 0;
  content: '';
  height: 300px;
  position: absolute;
  width: 100%;
}

/*--------------------------------
 基本理念
---------------------------------*/
#mission {
  background-color: #ffe0e0;
  font-size: 1rem;
}

.mission-text {
  max-width: 660px;
  margin: 0 auto;
  padding: 20px 0 10px 0;
  margin-bottom: 80px;
  background-color: #ccc;
  border-radius: 10px;
  border: 2px solid #a32525;
  font-size: 1.2rem;
  text-align: center;
  background-image: url(../img/mission/plaid.jpg);
  background-position: 20px 20px;
  position: relative;
  box-shadow: 0px 12px 0px 0 rgb(255, 175, 175);
}

.mission-text-clip {
  width: 50px;
  height: 46px;
  background-image: url(../img/mission/clip.png);
  position: absolute;
  top: -14px;
  right: 10px;
}

h2.title1 {
  width: 220px;
  margin: 0 auto;
  text-align: center;
  border-bottom: 1px solid #a32525;
  font-size: 1rem;
  font-weight: 500;
  color: #a32525;
}

h3.subtitle1 {
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: -0.02em;
  line-height: 1.4;
  margin: 10px 0 20px 0;
  text-align: center;
}

.container {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 0 4px;
  align-items: center;
  justify-content: space-between;
}

.container img {
  width: calc(33.3% - 4px);
}

.mission_bg1 {
  position: absolute;
  right: 0;
  top: -0px;
  z-index: 0;
}

.mission_bg2 {
  position: absolute;
  top: 400px;
}

.mission_bg3 {
  position: absolute;
  bottom: -40px;
  left: -160px;
}

.mission_bg4 {
  position: absolute;
  bottom: -40px;
  right: -80px;
}

/*--------------------------------
 PNF
---------------------------------*/
#pnf {
  background-image: url(../img/mission/plaid.jpg);
  background-position: 25px 25px;
  padding: 40px 0;
}

#pnf section {
  margin-bottom: 20px;
  font-size: 1rem;
}

#pnf hr {
  height: 2px;
  border: 0;
  background-image: linear-gradient(to right, rgba(178, 150, 150, 1), rgba(178, 150, 150, 1) 6px, transparent 3px, transparent 8px);
  background-repeat: repeat-x;
  background-size: 12px 2px;
  background-position: left bottom;
  padding-bottom: 2px;
}

/*--------------------------------
 メニュー
---------------------------------*/
#menu {
  background-color: #f2e6e6;
  padding: 40px 0;
}

.menu-text-grn,
.menu-text-blu {
  max-width: 660px;
  margin: 0 auto;
  margin-bottom: 40px;
  position: relative;
  clear: both;
  font-size: 1rem;
}

.menu-text-grn {
  border: 2px solid #1a842b;
}

.menu-text-blu {
  border: 2px solid #37379e;
}

.menu1,
.menu2,
.menu3 {
  border-radius: 10px;
  padding-top: 420px;
  background-position: 50% 0%;
  background-color: #fff;
  background-repeat: no-repeat;
  padding-top: 420px;
}

.menu1 {
  background-image: url(../img/menu/menu1_photo_bg.jpg);
}

.menu2 {
  background-image: url(../img/menu/menu2_photo_bg.jpg);
}

.menu3 {
  background-image: url(../img/menu/menu3_photo_bg.jpg);
}

.menu-text-title {
  display: flex;
  justify-content: space-between;
  margin: 10px 0;
  padding: 0 20px;
  align-items: center;
  line-height: 2rem;
}

.menu-text-title-l {
  min-width: 60%;
}

.menu-text-title-l img {
  max-width: 16px;
  margin-right: 6px;
}

.menu-text-title-l .keyword {
  font-size: 1rem;
  color: #b29595;
}

.menu-text-title-l .title {
  font-size: 2rem;
  font-weight: bold;
}

.menu-text-title-l .time {
  color: #a32525;
}

.menu-text-title-r img {
  filter: drop-shadow(0 6px 0 #e8cccc);
}

.menu-text-title-r a {
  display: inline-block;
}

.menu-text-title-r a:hover {
  display: inline-block;
  transform: translateY(0.4em);
}

#menu hr {
  height: 2px;
  border: 0;
  background-image: linear-gradient(to right, rgba(178, 150, 150, 1), rgba(178, 150, 150, 1) 6px, transparent 3px, transparent 8px);
  background-repeat: repeat-x;
  background-size: 10px 2px;
  background-position: left bottom;
  padding-bottom: 2px;
}

.menu-text-grn p,
.menu-text-blu p {
  margin-bottom: 20px;
  padding: 0 20px;
}

.menu-text-grn-trouble {
  font-size: 0.8rem;
  font-weight: normal;
  color: #fff;
  background-color: #43a553;
  text-align: center;
  padding: 4px 0;
}

ul.menu-text-grn-trouble-keyword {
  background-color: #1a842b;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 1rem;
  font-weight: normal;
  color: #bee5c5;
  line-height: 1rem;
  padding: 20px 40px;
}

ul.menu-text-grn-trouble-keyword li {
  margin: 8px;
}

.menu-text-blu-trouble {
  font-size: 0.8rem;
  font-weight: normal;
  color: #fff;
  background-color: #5b5bbf;
  text-align: center;
  padding: 4px 0;
}

ul.menu-text-blu-trouble-keyword {
  background-color: #37379e;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 1rem;
  font-weight: normal;
  color: #eaeaff;
  line-height: 1rem;
  padding: 20px 40px;
}

ul.menu-text-blu-trouble-keyword li {
  margin: 8px;
}

.ribbon1 {
  position: relative;
  height: 50px;
  line-height: 50px;
  text-align: center;
  padding: 0 30px;
  margin: 40px 0 20px 0;
  font-size: 1.2rem;
  background: #a32424;
  color: #f2e6e6;
  box-sizing: border-box;
}

.ribbon1:before,
.ribbon1:after {
  position: absolute;
  content: '';
  width: 0px;
  height: 0px;
  z-index: 1;
}

.ribbon1:before {
  top: 0;
  left: 0;
  border-width: 25px 0px 25px 15px;
  border-color: transparent transparent transparent #f2e6e6;
  border-style: solid;
}

.ribbon1:after {
  top: 0;
  right: 0;
  border-width: 25px 15px 25px 0px;
  border-color: transparent #f2e6e6 transparent transparent;
  border-style: solid;
}

/*--------------------------------
 スタッフ紹介
---------------------------------*/
#staff {
  padding: 40px 0;
  background-color: #fff;
  font-size: 1rem;
}

#staff section {
  margin-bottom: 20px;
}

.staff-text {
  display: flex;
  justify-content: space-between;
}

.staff-text p {
  margin: 20px 0;
}

.staff-text-l {
  width: 40%;
}

.staff-text-l img {
  max-height: 460px;
}

.staff-text-r {
  width: 60%;
  padding-left: 10px;
}

.staff-text-r li {
  display: inline-block;
  background: rgb(158, 67, 57);
  background: linear-gradient(90deg, rgba(158, 67, 57, 1) 0%, rgba(129, 68, 54, 1) 80%);
  color: #fff;
  padding: 4px 8px;
  margin: 2px 0;
}

/*--------------------------------
 PNFセミナー
---------------------------------*/
#seminar {
  padding: 40px 0;
  background-color: #e7f0e7;
  font-size: 1rem;
}

#seminar section {
  margin-bottom: 20px;
}

#seminar dl {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  margin: 16px 0;
  font-size: 1.4rem;
  font-weight: bold;
}

#seminar dt {
  padding: 6px 16px;
  background-color: #75c482;
  color: #fff;
}

#seminar dd {
  padding: 6px 16px;
  background-color: #fff;
}

.seminar-text {
  max-width: 660px;
  margin: 0 auto;
  padding-bottom: 14px;
  margin-bottom: 40px;
  background-color: #ccc;
  border-radius: 10px;
  border: 2px solid #1a842b;
  font-size: 1.2rem;
  background-image: url(../img/seminar/plaid.jpg);
  background-position: 20px 20px;
  position: relative;
  font-size: 1rem;
}

.seminar-text a {
  border-bottom: 1px solid #a32525;
}

.seminar-text-title {
  background-color: #1a842b;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  padding: 6px 0;
  color: #fff;
  margin-bottom: 10px;
  text-align: center;
  font-size: 1.4rem;
}

.seminar-text ul {
  display: flex;
}

.seminar-text-l {
  width: 30%;
}

.seminar-text-l img {
  max-height: 290px;
}

.seminar-text-r {
  width: 70%;
  padding-left: 10px;
  font-size: 1rem;
}

.seminar-text-r p {
  margin-bottom: 10px;
}

.seminar-text-p {
  margin: 0 auto;
  padding: 0 14px;
  font-size: 1rem;
}

.seminar-btn {
  margin: 0 auto;
  text-align: center;
  vertical-align: middle;
  vertical-align: middle;
  justify-content: space-around;

}

.seminar-btn a {
  color: #fff;
  font-size: 1.4rem;
  border-radius: 50px;
  background-color: #a32424;
  padding: 10px;
  display: block;
  vertical-align: middle;
  justify-content: space-around;
  box-shadow: 0px 12px 0px 0 #b9dfb9;
}

.seminar-btn a:hover {
  transform: translateY(0.4em);
}

.seminar-btn a img {
  margin-right: 10px;
  padding-bottom: 4px;
}

#seminar hr {
  height: 2px;
  border: 0;
  background-image: linear-gradient(to right, rgba(178, 150, 150, 1), rgba(178, 150, 150, 1) 6px, transparent 3px, transparent 8px);
  background-repeat: repeat-x;
  background-size: 12px 2px;
  background-position: left bottom;
  padding-bottom: 2px;
}

/*--------------------------------
 口コミ
---------------------------------*/
#review {
  padding: 40px 0;
  background-image: url(../img/mission/plaid.jpg);
  background-position: 20px 20px;
  font-size: 1rem;
}

#review section {
  margin-bottom: 20px;
}

ul.review-text {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  font-size: 1rem;
}

.review-text li {
  width: calc(50% - 10px);
  margin: 4px;
  background: #f2e6e6;
  border-radius: 6px;
}

dl.review-text-dl1 {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  flex-direction: row;
}

.review-text-dl1 dt img {
  width: 30%;
}

.review-text-dl1 dt img {
  width: 90%;
  margin: 5%;
}

.review-text-dl1 dd {
  width: 60%;
  margin-top: 10px;
  padding: 4px;
  line-height: 1.4rem;
}

dl.review-text-dl2 {
  font-size: 0.9rem;
  padding: 0 6px 6px 6px;
}

dl.review-text-dl2 dt {
  font-size: 0.7rem;
  color: #a32525;
}

dl.review-text-dl2 dd {
  margin-bottom: 10px;
  padding-left: 14px;
}

/*--------------------------------
 予約
---------------------------------*/
#reserve {
  padding: 40px 0;
  background-color: #f2e6e6;
  font-size: 1rem;
}

#reserve section {
  margin-bottom: 20px;
}

ul.reserve-text {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  font-size: 1rem;
}

.reserve-openinghours_g {
  position: absolute;
  bottom: -120px;
  left: 20px;
}

.reserve-openinghours_g::after {
  width: 100%;
}

.reserve-openinghours_g p {
  font-size: 1.2rem;
  font-weight: bold;
  color: #fff;
  text-shadow: 0 0 6px #595959;
}

.reserve-openinghours {
  border: 2px #a32424 solid;
  border-radius: 6px;
  margin-bottom: 40px;
}

.reserve-openinghours table {
  width: 100%;
  max-width: 100%;
  font-size: 1rem;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  overflow: hidden;
}

.reserve-openinghours th {
  background-color: #a32424;
  color: #ffe0e0;
  padding: 16px 0;
  font-weight: normal;
}

.reserve-openinghours th,
.reserve-openinghours td {
  text-align: center;
  align-items: center;
  line-height: 1.2rem;
  border: none;
  vertical-align: middle;
}

.reserve-openinghours tr th:last-of-type,
.reserve-openinghours tr td:last-of-type {
  padding-right: 10px;
}

.reserve-openinghours td {
  font-weight: bold;
  background-color: #fff;
  padding: 10px 0;
}

.reserve-openinghours .time {
  width: 20%;
}

.reserve-openinghours .large {
  font-family: apple color emoji, segoe ui emoji, noto color emoji, android emoji, emojisymbols, emojione mozilla, twemoji mozilla, segoe ui symbol;
  font-size: 1.6rem;
  color: #a32525;
}

.reserve-openinghours .narrow {
  letter-spacing: -0.1rem;
}

.reserve-openinghours .rotate {
  transform: rotate(-90deg);
  margin: 0;
  padding: 0;
}

.reserve-openinghours .tel {
  border-radius: 6px;
  text-align: left;
}

.reserve-openinghours td.tel {
  padding-left: 16px;
  font-size: 14px;
}

.reserve-openinghours td.boder {
  padding: 0 16px;
}

.reserve-openinghours td.boder hr {
  padding: 0;
  margin: 0;
  border-top: 2px dashed #b29595;
  border-right: none;
  border-bottom: none;
  border-left: none;
}

.reserve-btn {
  margin: 0 auto;
  text-align: center;
  vertical-align: middle;
  justify-content: space-around;
  line-height: 1rem;
  margin-bottom: 40px;
}

.reserve-btn a {
  font-size: 2.6rem;
  font-weight: bold;
  border-radius: 50px;
  background-color: #fff;
  padding: 10px;
  display: block;
  border: 10px #ffe0e0 solid;
  outline: 2px #a32424 solid;
  box-shadow: 0px 12px 0px 0 #e3c6c6;
  color: #6e3838;
}

.reserve-btn a:hover {
  transform: translateY(0.4em);
}

.reserve-btn a img {
  margin-right: 10px;
  padding-bottom: 4px;
}

.reserve-btn p {
  font-size: 1.2rem;
  margin-bottom: 14px;
  color: #a32525;
}

/*--------------------------------
 アクセス
---------------------------------*/
#access {
  padding: 40px 0;
  background-color: #fff;
  font-size: 1rem;
}

#reserve section {
  margin-bottom: 20px;
}

ul.reserve-text {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  font-size: 1rem;
}

/*--------------------------------
 アクセス
---------------------------------*/
ul.content2-access {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  margin: 10px 0;
}

.content2-access li {
  display: flex;
  align-items: flex-start;
  line-height: 1.3rem;
}

.content2-access-l {
  width: 20%;
  font-size: 1rem;
  padding: 4px;
  text-align: center;
  background-color: #d1b4b4;
  color: #fff;
}

.content2-access-r {
  width: 80%;
  padding: 4px 0 4px 8px;
}

.gmap {
  text-align: center;
}

.gmap iframe {
  width: 600px;
  height: 450px;
  border: 0;
}

/*--------------------------------
 Menu
---------------------------------*/
.menu-list {
  display: flex;
  flex-wrap: wrap;
}

.menu-item {
  flex: 0 0 32.31552%;
  margin-right: 1.52671%;
  margin-bottom: 20px;
}

.menu-item:nth-of-type(3n) {
  margin-right: 0;
}

.menu-image.fadein {
  -webkit-transition: 1.5s;
  transition: 1.5s;
  opacity: 0;
}

.menu-image.fadein.lazyloaded {
  opacity: 1;
}

/*--------------------------------
 SNS
---------------------------------*/
.sns-list {
  display: flex;
  vertical-align: middle;
  justify-content: space-around;
  max-width: 400px;
  margin: 0 auto;
  align-items: center;
  margin-bottom: 40px;
}

/*--------------------------------
 フッター
---------------------------------*/
.footer {
  text-align: center;
  background-color: #fff;
}

.footer h5 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.4rem;
  text-align: center;
  margin-bottom: 20px;
}

.footer h5::before,
.footer h5::after {
  content: '';
  width: 2px;
  height: 40px;
  background-color: #6e3838;
}

.footer h5::before {
  margin-right: 30px;
  transform: rotate(-35deg)
}

.footer h5::after {
  margin-left: 30px;
  transform: rotate(35deg)
}

.footer .inner {
  padding: 30px;
}

.copyright {
  font-size: 1rem;
  text-align: center;
}

/*media Queries 767
----------------------------------------------------*/
@media screen and (max-width: 880px) {
  nav {
    font-size: 1rem;
  }

  section {
    width: 94%;
  }

  .section .inner {
    padding: 0 15px;
  }

  .menu ul li a {
    border-bottom: none;
    padding: 1.4em;
  }

  /* ヘッダー */
  .header-text1 {
    width: 100%;
    position: absolute;
    top: 520px;
    left: 50%;
    transform: translateX(-50%);
  }

  .header-text2,
  .header-text3,
  .header-text4 {
    display: none;
  }

  header {
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
  }

  .header::before {
    background-position: right 60% bottom 45%;
  }

  .header-reserve,
  .header-menu,
  .header-access {
    position: static;
    position: none;
    bottom: none;
    right: none;
  }

  .header-reserve a,
  .header-menu,
  .header-access {
    display: initial
  }

  .main-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    max-width: 600px;
    margin: 0 auto;
    margin-bottom: 16px;
    flex-wrap: nowrap;
  }

  .wave {
    height: 200px;
  }

  .mission-text {
    padding: 26px 4px 20px 4px;
  }

  .mission-text br {
    display: none;
  }

  .review-text li {
    width: calc(100%);
    margin: 4px;
    background: #f2e6e6;
    border-radius: 6px;
  }

  .openinghours_g p {
    font-size: 1.4rem;
    font-weight: bold;
    color: #fff;
    text-shadow: 0 0 6px #595959;
    text-align: center;
    margin-top: -200px;
    margin-bottom: 20px;
  }

  .menu-text-title {
    flex-direction: column;
    margin-bottom: 20px;
  }

  .menu-text-title-l,
  .menu-text-title-r {
    width: 100%;
  }

  .menu-text-title-r {
    text-align: center;
    margin-top: 10px;
  }

  h3.subtitle1 {
    font-size: 1.4rem;
  }

  .menu1,
  .menu2,
  .menu3 {
    background-position: 50% 0%;
  }

  .menu-text-title-l .title {
    font-size: 1.6rem;
  }

  .menu-text-title-l .time {
    font-size: 1.2rem;
  }

  .menu-text-grn-trouble-keyword,
  ul.menu-text-blu-trouble-keyword,
  ul.menu-text-grn-trouble-keyword {
    padding: 20px;
  }

  .seminar-text ul {
    flex-direction: column;
  }

  .seminar-text-l {
    width: 100%;
    text-align: center;
  }

  .seminar-text-r {
    width: 100%;
  }

  .reserve-openinghours {
    margin-bottom: 30px;
  }

  .reserve-btn {
    margin: 0 auto;
    text-align: center;
    vertical-align: middle;
    justify-content: space-around;
    line-height: 1rem;
    margin-bottom: 30px;
  }

  #menu .container img {
    width: calc(50% - 2px);
  }

  .reserve-btn a {
    font-size: 1.7rem;
    font-weight: bold;
    border-radius: 50px;
    background-color: #fff;
    padding: 10px;
    display: block;
    border: none;
    outline: none;
  }

  .reserve-btn p {
    font-size: 1.2rem;
    margin-bottom: 10px;
  }

  .mission_bg1,
  .mission_bg2,
  .mission_bg3,
  .mission_bg4 {
    display: none
  }

  .openinghours_g {
    position: static;
  }

  .openinghours {
    display: none;
  }

  .ribbon1 {
    position: relative;
    height: auto;
    line-height: 26px;
    padding: 10px;
    margin: 20px 0;
  }

  .ribbon1:before,
  .ribbon1:after {
    display: none;
  }

  .ribbon1:before {
    top: 0;
    left: 0;
    border-width: 25px 0px 25px 15px;
    border-color: transparent transparent transparent #f2e6e6;
    border-style: solid;
  }

  .ribbon1:after {
    top: 0;
    right: 0;
    border-width: 25px 15px 25px 0px;
    border-color: transparent #f2e6e6 transparent transparent;
    border-style: solid;
  }

  .staff-text {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
  }

  .staff-text-l {
    width: 100%;
    text-align: center;
    margin-bottom: 10px;
  }

  .staff-text-l img {
    max-height: 460px;
  }

  .staff-text-r {
    width: 100%;
    padding-left: 10px;
  }

  .staff-text-r ul {
    text-align: center;
  }

  .gmap iframe {
    width: 90%;
    height: 450px;
    border: 0;
  }

  /* アクセス */
  .content2-access li {
    margin-bottom: 4px;
  }

  .content2-access-l {
    width: 30%;
  }

  .content2-access-r {
    width: 70%;
  }

  /* SNS */
  .sns-list {
    flex-direction: column
  }

  .sns-list li {
    margin-bottom: 30px;
  }


  /*  写真 */
  .menu-list {
    justify-content: space-between;
  }

  .menu-item {
    flex: 0 0 48%;
    margin-right: 0;
    margin-bottom: 30px;
  }

  /* フッター */
  .footer .inner {
    padding: 20px 0;
  }

  .hover-action {
    -webkit-transition: none;
    transition: none;
  }

  .hover-action:hover {
    -webkit-transition: none;
    transition: none;
    -webkit-transform: none;
    transform: none;
  }
}