@charset "utf-8";

/*------------------------------------------------------------------------------
  font
------------------------------------------------------------------------------*/

@import url('https://fonts.googleapis.com/css2?family=Domine:wght@400..700&display=swap');

/*------------------------------------------------------------------------------
  reset
------------------------------------------------------------------------------*/

html,
input,
textarea,
select,
button {
  font-family: sans-serif, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ",
    Meiryo, sans-serif;
  font-weight: 400;
}

html {
  color: #000;
  background: #fff;
  font-size: 16px;
  line-height: 1.5;
  word-break: break-all;
}

body {
  background: #fff;
  margin: 0;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

@media screen and (min-width: 751px) {
img {
  border: 0;
  margin: 0;
  vertical-align: top;
}
}

p {
  margin: 0;
  padding: 0;
}

p:last-child {
  margin-bottom: 0;
}

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

input[type="submit"],
input[type="text"],
select,
textarea,
button {
  -moz-appearance: none;
  -webkit-appearance: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  outline: none;
}

select::-ms-expand {
  display: none;
}

textarea {
  resize: vertical;
}

button {
  border: none;
  cursor: pointer;
}

label {
  cursor: pointer;
}

table {
  border-collapse: collapse;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 14px;
  font-weight: 500;
  margin: 0;
  padding: 0;
}

.outer-block {
  width: 100%;
}

.inner-block {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}


#wrapper {
  position: relative;
}

@media screen and (min-width: 751px) {
  a,
  a:before,
  a:after,
  a img:hover,
  button {
    -webkit-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
  }

  a:hover,
  a img:hover,
  button:hover {
    opacity: 0.7;
  }
}

/*------------------------------------------------------------------------------
  css
------------------------------------------------------------------------------*/

.pc {
  display: block;
}

.sp {
  display: none;
}

@media screen and (max-width: 750px) {
  
.pc {
  display: block;
}

.sp {
  display: none;
}


.outer-block {
  min-width: 1920px;
}

.inner-block {
  width: 1400px;
  margin: 0 auto;
  align-items: flex-start;
}

  .navi.sp {
    display: none;
    flex-direction: column;
    position: absolute;
    top: 60px;
    right: 0;
    width: 100%;
    padding: 20px;
    z-index: 1000;
  }

  .navi.sp.active {
    display: flex;
  }

  .nav-open {
    display: block;
    background: none;
    border: none;
    font-size: 24px;
    color: #fff;
    z-index: 1100;
  }

  .navi.pc {
    display: none;
  }
}

@media screen and (min-width: 751px) {
  .outer-block {
    min-width: 1200px; 
  }
}


/*------------------------------------------------------------------------------
  home
------------------------------------------------------------------------------*/
.c-button {
  display: inline-flex;
  align-items: center;
  gap: 50px;
 background-color: #495b4c;
 color: #fff;
 font-size: 18px;
 width: 210px;
 padding: 15px;
 margin: 80px auto 0;
 border-radius: 50px;
 margin-bottom: 130px;
 margin-right: 0;
 justify-content: center;
 text-align: right;
}

.c-vertical-text {
 writing-mode: vertical-rl;
 -ms-writing-mode: tb-lr;
font-size: 18px;
font-family: "Domine";
}

/*----------------------
 header
------------------------*/
.header.outer-block {
  background-color: #5f6f61;
}

@media screen and (min-width: 751px) {
  .top-logo img {
  width: 70px;
  margin: 20px auto;
}
.header .nav-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0;
}

.navi.pc {
  display: flex;

}

.navi.pc a {
  color: #fff;
  font-size: 16px;
}

.navi.pc li + li {
  margin-left: 40px;
}
}



/*----------------------
  mv
------------------------*/
.mv-wrap {
  display: flex;
  align-items: flex-start; 
  gap :20px;
}

.mv-block {
  position: relative;
  width: 100%;
  height: calc(100vh - 20vh);
  overflow: hidden;
}

.mv-block .image {
  width: 100%;
  overflow: hidden;
  height: 100%;
  position: absolute;
}

.mv-block .image span {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; 
}

.mv-block .title {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 700px; 
  height: auto;
  }

 @media screen and (min-width: 751px) {

.horizontal-menu {
  left: 210px;
  bottom: 90px;
  z-index: 2;
  font-size: 20px;
  font-family: "Domine";
  letter-spacing: 0.1em;
  line-height: 2.1;
 
}

.horizontal-menu a {
 color: #ffffff;
}

.overlay-menu {
  left: 215px;          
  bottom: 90px;        
  flex-direction: row;  
  align-items: flex-start;
  gap: 10px;
  z-index: 10;
  letter-spacing: 1px;
  color: #fff;
}

.category-wrap {
  display: flex;
  align-items: flex-start;
  gap: 20px; 
  justify-content: flex-end;
  margin-top: 280px;
  margin-bottom: 80px;
}

.overlay-menu .logo {
  display: block;
  text-align: right;
}

.overlay-menu .logo img {
  width: 150px; 
  height: auto;
  margin-top: 55px;
  margin-left: 185px;
  }

  .vertical-english {
  position: relative;
  flex-direction: column;
  text-orientation: sideways;
  font-size: 18px;
  font-family: "Domine";
  color: white;
  letter-spacing: 1px;
  writing-mode: vertical-rl;
  padding-right: 10px;
}

.vertical-english::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 1px;
  height: 210px;
  background-color: #fff;
}
}

/*----------------------
  concept
------------------------*/
.concept-block.outer-block {
  background-color:#d7e0c2
}

.concept-wrap .info-text {
  font-size: 16px;
  font-weight: bold;
  line-height: 2;
   letter-spacing: 0.2em;
}

.concept-wrap  .c-vertical-text {
transform: translateX(-20px);
}

.concept-block {
 padding: 120px 0 ;
}

.concept-block .title {
  font-size: 72px;
  font-weight: bold;
}

.concept-block .title-list li {
  padding-bottom: 40px;
}


.concept-block .info-title {
  font-size: 36px;
  font-weight: bold;
  margin-bottom: 85px;
}


@media screen and (min-width: 751px) {
.concept-wrap {
  display: flex;
  justify-content: space-between;
}
.concept-wrap .title-list {
  width: 400px;
}
.concept-wrap .image {
  width: 700px;
}
}

/*----------------------
 news
------------------------*/

.news-block.outer-block {
  background-color: #fff;
}

.news-wrap {
display: flex;
}

.news-info {
  display: flex;
  flex-direction: column;
}

.news-wrap  .c-vertical-text {
 transform: translateX(-10px);
}

@media screen and (min-width: 751px) {
.news-block.outer-block {
  margin-top: 125px;
}
.news-wrap a {
  border-bottom: 2px solid #b5b5b5;
  width: 1250px;
  padding: 30px 30px 30px 0;
  margin: 0 120px 0;
}
.news-wrap .date {
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 0.2em;
}
.news-wrap .text {
  margin-left: 160px;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 0.1em;
}
}

/*----------------------
 menu
------------------------*/

.menu-block.outer-block {
  background-color:#d7e0c2
}

.menu-block.outer-block .inner-block {
  position: relative;
  display: flex;         /* 横並びにする */
  align-items: flex-start; /* 上端をそろえる */
  gap: 100px; 
}       

.button-bottom-right {
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0 0 120px 0;
}

@media screen and (min-width: 751px) {
 .menu-wrap {
 display: flex;
 gap: 60px;
 margin-top: 120px;
 margin-bottom: 250px;
}
.menu-block.outer-block .c-vertical-text {
  margin-top: 120px;
}
.menu-wrap .box {
  width: 387px;
  border: 1px solid #fff;
  padding: 30px;
  background-color: #fff;
  text-align: center;
}

.menu-wrap .box .image { 
  margin-bottom: 35px;
}

.menu-wrap .box .menu-title {
  font-size: 22px;
  font-family: 'Domine';
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
}


/*----------------------
 shop
------------------------*/

.shop-block.outer-block {
  background-color:#fff
}

.sns {
  border-bottom: 1px solid #333;
  width: fit-content;
}

.instagram {
    display: inline-flex;
    align-items: center;
    gap: 30px; /* 文字と画像の間隔 */
    text-decoration: none;
    color: inherit;
  }

  .instagram img {
    width: 20px; /* 必要に応じて調整 */
    height: auto;
  }

  @media screen and (min-width: 751px) {
 .shop-info {
  display: flex;
  flex-direction: column;
  gap: 2em;
} 
  .shop-block .map iframe {
  width: 800px;
  height: 600px;
}

.shop-wrap {
  margin-top: -130px;
  margin-left: 20px;
  font-size: 20px;
  display: flex;
  justify-content: flex-end;
  gap: 100px;
  height: 100%;
}

.shop-block .c-vertical-text {
  margin-top: 120px;
}
}
  
@media screen and (max-width: 750px) {
  .shop-block .map iframe {
    width: 100%;
    height: auto;
  }
}

 /*----------------------
 contact
------------------------*/

/* チェックボックス全体のリセット */
input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-right: 6px;
  appearance: auto; /* ブラウザ標準に戻す（または none でカスタム可） */
  vertical-align: middle;
  cursor: pointer;
  accent-color: #333; /* チェック色（必要なら） */
}

/* チェックボックスラベルとの余白調整 */
.mwform-checkbox-field label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1rem;
}


.contact-block.outer-block {
  background-color: #5f6f61;
  position: relative;
}

.contact-block .inner-block {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  margin: 0 auto;
}

.contact-block.outer-block .c-vertical-text {
  color: #fff;
}

@media screen and (min-width: 751px) {
.contact-wrap {
text-align: center;
color: #fff;
margin: 120px auto;
max-width: 600px;
}

.contact-note {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 20px;
}

.contact-tel {
  margin-bottom: 20px;
}

.contact-tel .tel-label {
  font-size: 24px;
}

.contact-tel .tel-number {
  font-size: 36px;
  font-weight: bold;
}

.contact-hours {
  font-size: 14px;
}
.top-page-button {
font-size: 20px;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
gap:10px;
position: absolute;
right: 30px;
bottom: 130px;
margin: 0;
}

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  color: #fff;
  font-size: 18px;
  width: 286px;
  padding: 15px;
  font-size: 19px;
  margin-top: 45px;
  border: 2px solid #fff;
  border-radius: 50px;
}
}
 /*----------------------
footer
------------------------*/
.footer-logo {
  display: flex;
  justify-content: center;
  margin: 110px 0 60px 0;
}

@media screen and (min-width: 751px) {
.copy-right {
  display: flex;
  text-align: center;
  justify-content: space-between;
  background-color: #333333;
  padding: 40px;
  color: #fff;
}

.link {
  display: flex;
 justify-content: center;
 font-size: 16px;
 letter-spacing: 0.2em;
 margin-bottom: 120px;
}

.link li + li {
  margin-left: 60px;
}

.copy-right p {
  margin: 0 250px;
}
}
/*------------------------------------------------------------------------------
  下層共通 MV
------------------------------------------------------------------------------*/

.mv.outer-block {
 background-color: #d7e0c2;
}


.mv {
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media screen and (min-width: 751px) {

  .mv .inner-block {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.mv .large {
  font-size: 60px;
  font-family: 'Domine';
  letter-spacing: 0.1em;
 }

 .mv .small {
  font-size: 24px;
 }
 .mv.outer-block {
  width: 100%;
 } 
 .mv .inner-block {
    height: 300px;
 }
}

 /*-------------------------
  下層共通 paging-area
----------------------------*/
.paging-area .page-numbers.current {
  background-color: #5f6f61;
  color: #fff;
}

.paging-area {
  margin: 110px 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 751px) {
.paging-area .page-numbers {
  width: 50px;
  height: 50px;
  border: 2px solid #5f6f61;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5f6f61;
}

.paging-area .page-numbers + .page-numbers {
  margin-left: 20px;
}
}


/*-------------------------------
  下層共通 bureadcrumb
-----------------------------------*/

  .bureadcrumb-list li + li::before {
    content: ">";
    padding: 0 20px;
  }

  @media screen and (min-width: 751px) {
   .bureadcrumb-list {
  padding-top: 45px;
  padding-bottom: 110px;
  text-align: left;
  font-size: 0;
 }

  .bureadcrumb-list li {
    display: inline;
    font-size: 15px;
    position: relative;
  }
}
   /*-------------------------
  下層共通 news
----------------------------*/
.inner-block .news-list  {
  margin: 0 auto;
  padding: 40px 20px;
}

.news {
  display: flex;
   flex-direction: column; 
}

.news-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
 justify-content: center;
}

@media screen and (min-width: 751px) {

  .news-list {
  grid-template-columns: repeat(3, 1fr); /* 3列 */
  gap: 50px;
  }

.news-list .image img {
  width: 100%;
  height: auto;
  display: block;
}

.news-list .wrap {
  padding: 15px;
  display: flex;
  flex-direction: column; 
  gap: 20px; 
  margin-bottom: 25px;
}

.news-list .date {
  font-size: 16px;
}

.news-list .category {
  font-size: 16px;
}
}


   /*-------------------------
  下層共通 double-line-title
----------------------------*/
.double-underline-text {
  position: relative;
  padding: 10px 0; /* 上下の余白 */
}

.double-underline-text::before,
.double-underline-text::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px; 
  background-color: #5f6f61;
}

.double-underline-text::before {
  top: 0; /* 上の線 */
}

.double-underline-text::after {
  bottom: 0; /* 下の線 */
}

.double-underline-text-content {
  background-color: #fff;
  width: 290px;
  display: flex;
  position: absolute;
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%);
  z-index: 1; 
  text-align: center; 
  flex-direction: column; 
}

.double-underline-text-content .large {
  font-size: 48px;
  font-family: 'Domine';
  letter-spacing: 0.1em;
}

.double-underline-text-content .small {
  font-size: 15px;
  font-weight: bold;
}

.caution {
  display: flex;
  justify-content: center;
  font-size: 14px;
  letter-spacing: 0.1em;
  margin-top: 65px;
}

.lunch-wrap {
  display: flex;
  justify-content: space-between;
  margin: 35px auto 45px;
}

.lunch-wrap .course {
  font-size: 19px;
  font-weight: bold;
}

.lunch-wrap .price {
  font-size: 18px;
  font-weight: bold;
}

.drink {
  font-size: 26px;
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-top: 65px;
}

@media screen and (min-width: 751px) {
  .lunch-list .image {
  width: 660px;
  height: 400px;
}
.lunch-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 3列 */
  gap: 50px;
  justify-items: center;
  margin: 100px auto 210px;
}
.drink-wrap {
  font-size: 19px;
  font-weight: bold;
  letter-spacing: 0.1em;
  margin-top: 40px;
  display: flex;
  justify-content: space-between;
  margin-right: 250px;
}
}
   /*-------------------------
  下層 shop
----------------------------*/

.shop2-wrap {
  gap: 60px;
  margin-top: 0;
}

.underline {
  border: 1px solid #080000;
  opacity: 50%;
  margin-top: -20px;
}

.infomation {
  margin-bottom: 50px;
}

.shop-info .sns {
  margin-bottom: 50px;
}

@media screen and (min-width: 751px) {
  .shop-map {
 margin: 120px auto;
}
.shop2-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 3列 */
}
.shop-title {
  margin: 50px 0 20px 0;
}
}
   /*-------------------------
  下層 news-detail
----------------------------*/


.article-wrap {
  background-color: #d7e0c2;
  text-align: center;
  overflow: hidden;
}

.article-wrap .date {
  display: block;
  font-size: 20px;
  font-weight: bold;
  margin-top: 110px;
  margin-left: calc(50% - 590px); 
  text-align: left;
}

.article-wrap img {
  display: block;
  margin: 0 auto;
  width: 940px;
}

@media screen and (min-width: 751px) {
  .article-wrap {
   width: 1410px;
  }

  .button-wrap {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin: 80px auto 120px;
}

  .n-button {
  display: inline-flex;
  align-items: center;
  gap: 20px;
 background-color: #495b4c;
 color: #fff;
 font-size: 18px;
 width: 260px;
 padding: 15px;
 border-radius: 50px;
 justify-content: center;
}
.article-wrap p {
  font-size: 20px;
  letter-spacing: 0.1em;
  margin-top: 120px;
  margin-left: calc(55% - 590px); 
  margin-bottom: 245px;
  text-align: left;
  width: 75%;
}
.article-wrap .article-title {
  font-size: 50px;
  margin-top: 110px;
  margin-left: calc(50% - 590px); 
  margin-bottom: 120px;
  text-align: left;
}
}

   /*-------------------------
  下層 contact
----------------------------*/
.contact-friend {
  display: flex;
  flex-direction: column;
}

.lead {
  font-size: 18px;
  letter-spacing: 0.1em;
}

.lead-wrap li + li {
  margin-top: 50px;
}

.form-row {
  display: flex;
  align-items: center;
}

.form-label {
  background-color: #f4f7ef; /* 左側の背景色 */
  padding: 45px 50px;
  font-size: 16px;
  font-weight: bold;
  width: 300px; /* 任意で固定幅にする */
}

.form-label .required {
  color: red;
}

.form-input input {
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  color: #333;
}

.form-input input::placeholder {
  color: #ccc;
}

.form-label-contact .required {
  color: red;
}

.checkbox-group label {
  display: block;
  margin-bottom: 10px;
}

.form-input-contact {
  display: flex;
  padding: 10px 50px;
}

.form-label-contact {
  background-color: #f4f7ef; /* 左側の背景色 */
  padding: 45px 50px;
  padding-bottom: 130px;
  font-size: 16px;
  font-weight: bold;
  width: 300px; /* 任意で固定幅にする */
}

.contact .lead-wrap.end {
  text-align: center;
}

@media screen and (min-width: 751px) {
  .form-row-contact {
  display: flex;
  align-items: center;
  }
  .contact-friend {
    margin-top: 120px;
  }
  .form-row {
   border-bottom: 1px solid #ccc; 
}
.checkbox-group {
  margin-left: 50px;
}
.form-row-contact {
  border-bottom: 1px solid #ccc;
}
.form-input {
  flex: 1;
  padding: 10px 50px;
}
}

   /*-------------------------
   404
----------------------------*/

.notfound-block .message {
  text-align: center;
}

.notfound-block .btn-back {
  text-align: center;
}

/* MW WP Formの入力欄すべての枠線を完全に削除 */
.mw_wp_form input[type="text"],
.mw_wp_form input[type="email"],
.mw_wp_form input[type="tel"],
.mw_wp_form input[type="url"],
.mw_wp_form input[type="password"],
.mw_wp_form textarea {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  width: 100% !important;
  font-size: 16px;
  appearance: none;
}

.mwform-checkbox-field label {
  display: block;
  margin-bottom: 4px;
}

.vertical-checkbox label {
  display: block;
  margin-bottom: 8px;
}
