@charset "UTF-8";

/*-------- 全ページのレイアウトcss --------*/

/* スクロール時にふわっと表示 */
.scroll-up {
  opacity: 0;
  visibility: hidden;
  transform: translateY(50px);
  transition: all 1s;
}
.scroll-up.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0px);
}

/*ふわっと表示*/
body {
  animation: fadeIn 2s ease 0s 1 normal;
  -webkit-animation: fadeIn 2s ease 0s 1 normal;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* モバイルレイアウト : 480 px およびそれ以下. */
/* --------------------------------------------------------
header
-------------------------------------------------------- */

header{
  position: relative;
}

h1{
  position: absolute;
  top: 2%;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  padding: 3% 7%;
  width: fit-content;
  border-radius: 50px;
  font-size: 3.0rem;
  line-height: 1;
  text-align: center;
}

h1 a{
  color: var(--main-color);
  text-decoration: none;
}

h1 span{
  display: block;
  margin-top: 5%;
  font-size: 1rem;
  line-height: 1;
}

h2 {
  position: absolute;
  width: 80%;
  top: 30%;  /* h1の下に調整 */
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  border-radius: 30px;
  text-align: center;
}

.h2Txt{
  width: 75%;
  position: absolute;
  text-align: center;
  top:50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.h2Txt span{
  display: block;
}

.h2Txt img{
  width: 20%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -105%);
}

.h2Txt p{
  color: var(--sub-color);
  font-size: 2.1rem;
  text-align: center;
  padding: 0;
  margin: 3% 0 0 0;
  font-family: "Kiwi Maru", serif;
}

@media screen and (max-width: 375px) {
  .h2Txt p{
    font-size: 1.9rem;
    margin-top: 7%;
  }
}

/* --------------------------------------------------------
nav
-------------------------------------------------------- */

nav.pcNav{
  display: none;
}

/* ハンバーガーボタン */
nav {
  width: 100%;
  position: relative;
}

.openBtn {
  position: fixed;
  z-index: 9999;
  top: 2%;
  right: 3%;
  cursor: pointer;
  width: 60px;
  height: 60px;
  background: #663110;
  border-radius: 30px;
}

.openBtn span {
  /*×に変化*/
  display: inline-block;
  transition: all 0.4s;
  position: absolute;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 3px;
  border-radius: 10px;
  background-color: #fff;
  width: 50%;
}

.openBtn span:nth-of-type(1) {
  top: 30%;
}

.openBtn span:nth-of-type(2) {
  top: 50%;
}

.openBtn span:nth-of-type(3) {
  top: 70%;
}

.openBtn.active span:nth-of-type(1) {
  transform: translate(-50%, 0) rotate(-45deg);
  top: 50%;
}

.openBtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openBtn.active span:nth-of-type(3) {
  transform: translate(-50%, 0) rotate(45deg);
  top: 50%;
}

#g-nav {
  position: fixed;
  z-index: 999;
  top: 0;
  right: -120%;
  width: 100%;
  height: 100dvh;
  background-color: #F5EFE6;
  transition: all 0.6s;
}

#g-nav.panelactive {
  top: 0;
  right: 0;
}

#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100dvh;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

#g-nav #g-nav-list #g-nav-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70vw;
}

#g-nav #g-nav-list #g-nav-container ul {
  padding-left: 0;
}

@media screen and (max-width: 320px) {
  #g-nav #g-nav-list #g-nav-container {
    width: 80vw;
  }
}
#g-nav ul {
  padding-bottom: 10%;
  z-index: 999;
  text-align: center;
}
@media (orientation: landscape) {
  #g-nav ul {
    padding-bottom: 0;
  }
}
#g-nav li {
  list-style: none;
  padding: 3% 0;
  margin-left: 0;
  font-size: 2.5rem;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 500;
}

#g-nav a {
  display: block;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #1D7D97;
}

#g-nav #page-link {
  padding: 3% 0;
  display: flex;
  justify-content: space-between;
}

#g-nav #page-link img {
  margin-right: 0.5em;
}

#g-nav dl.headerTel {
  color: #1fa1ff;
}

#g-nav dl.headerTel dd {
  margin: 0;
  font-size: 1.6rem;
}

#side_pcNav {
  display: none;
}

/* デバイスが横向きの場合の記述 */
@media (orientation: landscape) {
  #side_pcNav {
    display: block;
    position: fixed;
    top: 130px;
    right: 0;
    z-index: 10;
    text-align: center;
  }
  #side_pcNav label {
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    margin: 0;
    padding:15px 10px 15px 15px;
    -ms-writing-mode: tb-rl;
    background-color: var(--sub-color);
    border-radius: 20px 0 0 20px;
    font-size: 20px;
    /* letter-spacing: 0.3rem; */
    transition: all 0.3s;
    cursor: pointer;
  }

  #side_pcNav p{
    padding: 8px 0 0 0;
    margin: 0;
    color: #fff;
    line-height: 1;
  }
}

/* --------------------------------------------------------
main
-------------------------------------------------------- */

main{
  height: 500px;
  height: auto;
}

main p{
  color: #000;
}

section{
  margin: 10% auto;
  padding: 5%;
  width: 90%;
}

/* --------------------------------------------------------
footer
-------------------------------------------------------- */

footer{
  padding-bottom: 20%;
}

/* スマホ用固定メニュー */
.footerMenu_SP {
  position: fixed;
  z-index: 1000;
  bottom: 0;
  left: 0;
  margin: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: stretch;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.0rem;
}

.footerMenu_SP label#txt_label {
  display: flex;
  margin: 0;
  width: 100%;
  color: #fff;
  gap: 5%;
  align-items: center;
  justify-content: center;
  padding: 3% 0;
}

.footerMenu_SP label#txt_label img,
.footerMenu_SP a[href*="tel:"] img {
  flex-shrink: 0;
  height: auto;
  max-height: 54px;   /* これでもつぶれ防止可 */
}

.footerMenu_SP a {
  padding: 1% 0;
  width: 50%;
  color: #fff;
  text-decoration: none;
  display: flex;
  gap: 5%;
  align-items: center;
  justify-content: center;
  background: var(--main-color);

}

.footerMenu_SP a[href*="tel:"]{
  color: #fff;
  background: var(--sub-color);
}

.footerMenu_SP a[href*="tel:"] img {
  margin-bottom: 0px;
}

/* デバイスが横向きの場合の記述 */
@media (orientation: landscape) {
  .footerMenu_SP {
    display: none;
  }
}

.contact{
  position: relative;
}

.contactTxt{
  position: absolute;
  width: 90%;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 20px;
  bottom: -20%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #81563B;
  text-align: center;
  font-family: "Kiwi Maru", serif;
  padding: 3% 3%;
}

.contactBorder{
  border: 1px solid #fff; /* 太さ・線種・色 */
  border-radius: 10px;
  padding: 7% 3%;
}

.contactTxt2,
.contactTxt .tel{
  display: flex;
  justify-content: center; /* 横方向の中央揃え */
  align-items: center;
}

.contactTxt a{
  text-decoration: none;
}

.contactTxt .tel{
  padding: 3% 0;
}

.contactTxt .tel img{
  margin: 0 5px 0 0;
  flex-shrink: 0;
  height: auto;
  max-height: 30px;   /* これでもつぶれ防止可 */
}

.contactTxt .tel p{
  font-size: 2.2rem;
  line-height: 1;
  padding: 0;
  margin: 0;
}

.contactTxt2 p{
  font-size: 1.6rem;
  text-align: center;
  padding: 0;
  margin: 0;
}

.contactTxt p span{
  display: block;
}

.reservation{
  display: flex;
  width: 80%;
  margin: 0 auto;
  background: #92705B;
  border-radius: 50px;
  color: #fff;
  padding: 2% 0;
  align-items: center;
  justify-content: center;
  gap: 10%;
}

a:link.tel,
a:visited.tel{
  color: #81563B;
}

.reservation p{
  padding: 2% 0;
  margin: 0;
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic Pro", "Meiryo", verdana, "Osaka", "MS PGothic", Sans-Serif;
}

.reservation img{
  flex-shrink: 0;
  height: auto;
  max-height: 10px;/* これでもつぶれ防止可 */
}

.footerNav{
  width: 90%;
  margin: 0 auto;
  padding: 5% 0;
}

.footerNav ul li a:link,
a:link.informationLink{
  text-decoration: none;
}

.footerNav ul {
  display: flex;
  flex-wrap: wrap;/* ← 改行できるようにする */
  padding: 0;
  margin: 0;
  list-style: none;
}

.footerNav li {
  width: calc(100% / 3); /* ← 3列にするポイント！ */
  text-align: center;
  padding: 2% 0;
}

.footerNav a{
  color: var(--main-color);
}

.address{
  margin: 0 auto;
  width: 90%;
}

.address h3{
  width: 100%;
  display: flex;
  gap: 5%;
  align-items: center;
  justify-content: center;
  padding-bottom: 0;
  margin-bottom: 0;
  font-family: "Kiwi Maru", serif;
}

.address .title{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2%;
  font-size: 2.0rem;
}

.address .title p{
  white-space: nowrap;/* ← 改行させない */
}

.address p{
  padding: 0;
  margin: 0;
}

address{
  color: #000;
  text-align: left;
}

.address .title img{
  flex-shrink: 0;
  height: auto;
  max-height: 40px;   /* これでもつぶれ防止可 */
}

.alphabet{
  font-size: 1.5rem;
}

.information{
  display: flex;
  width: 80%;
  margin: 5% auto;
  background: var(--main-color);
  border-radius: 50px;
  color: #fff;
  padding: 3% 0;
  align-items: center;
  justify-content: center;
  gap: 10%;
}

.information p{
  padding: 0;
  margin: 0;
}

small{
  display: block;
  text-align: center;
  padding-bottom: 3%;
}

/* タブレットレイアウト : 981px～。モバイルレイアウトからスタイルを継承。 */
@media print, screen and (min-width: 980px) {
  body {
    min-width: 1200px;
  }

/* --------------------------------------------------------
nav
-------------------------------------------------------- */

h2{
  width: 490px;
}

.h2Txt p{
  font-size: 3.2rem;
  line-height: 1.4em;
  padding-top: 5%;
  margin: 0;
}

/* --------------------------------------------------------
nav
-------------------------------------------------------- */

nav.spNav{
  display: none;
}

nav.pcNav{
  display: block;
}

nav.pcNav ul a{
  color: var(--main-color);
  position: relative;
  display: inline-block;
  font-size: 1.8rem;
  text-decoration: none;
  cursor: pointer;
}

/* 下線（最初は見えない） */
nav.pcNav ul a::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s ease; /* ← ゆっくり */
}

/* hoverで表示 */
nav.pcNav ul a:hover::after{
  transform: scaleX(1);
}

/* ラッパーだけを flex コンテナにする */
.pcHeaderWrap{
  position: fixed;
  top: 2%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  width: 95%;
  min-width: 1200px;
  transition: 0.5s;
}

.pcHeaderWrap::before{
  content: "";
  display: block;
  width: 15%;
}

.pcHeaderNav{
  display: flex;
  width: 70%;
  max-width: 1200px;
  margin: 0 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 20px;
  background: #fff;
  border-radius: 50px;
}

/* 左右のナビ */
.pcHeaderNav nav.pcNav{
  width: 33.3%;
}
.pcHeaderNav nav.pcNav ul{
  padding: 0;
  display: flex;
  gap: 1.5rem;
  justify-content: flex-end;
  list-style: none;
}

/* 左右のナビ */
.pcHeaderNav nav.pcNav:nth-of-type(2) ul{
  justify-content: flex-start;
}

/* ロゴ */
.pcHeaderNav h1{
  position: static;
  transform: none;
  width: fit-content;
  z-index: 2;
  background: none;
  margin: 0;
  font-size: 3.5rem;
  text-align: center;
  padding: 20px 0;
}

/* pc電話 */
.pcFlexbox.pcTel{
  width: 15%;
  margin: 0;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: .5em;
  p{
    margin: 0;
    font-size: 3.0rem;
    font-weight: 600;
  }
}

@media screen and (max-width: 1800px) {
  .pcFlexbox.pcTel img{
    width: 15%;
  }
  .pcFlexbox.pcTel p{
    font-size: 2.5rem;
  }
  nav.pcNav ul a{
    font-size: 1.6rem;
  }
  @media print, screen and (max-width: 1600px) {
    .pcFlexbox.pcTel p{
      font-size: 2.0rem;
    }
  }
}


#side_pcNav a{
  text-decoration: none;
}

/* --------------------------------------------------------
footer
-------------------------------------------------------- */

footer{
  padding-bottom: 30px;
}

.contactTxt{
  width: 900px;
  padding: 20px;
  bottom: clamp(6%, 8vh, 12%);
}

.contactBorder {
    padding: 40px 20px 20px;
}

.contactTxt p{
  font-size: 1.8rem;
}

.contactTxt .tel {
  width: 290px;
  padding: 0;
  gap: 2%;
}

.contactTxt .tel p{
  margin-bottom: 5px;
  font-size: 3.5rem;
}

.contactTxt p span {
    display: inline-block;
}

.contactTxt3{
  width: 750px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
}

.contactTxt3 a{
  width: 600px;
}

.contactTxt p {
    font-size: 2.8rem;
}

.reservation{
  width: 80%;
}

.reservation p{
  font-size: 2rem;
}

.footerNav{
  padding: 30px 0 50px;
}

.footerNav ul {
  width: 700px;
  margin: 0 auto;
  flex-wrap:nowrap;
  align-items: center;
  justify-content: center;
  gap: 30px;
}

.footerNav ul li{
  width: fit-content;
}

.footerPc{
  display: flex;
  width: 80%;
  max-width: 900px;
  margin: 0 auto;
}

.address{
  margin: 0;
  max-width: 500px;
}

.address h3{
  margin: 0;
  justify-content: left;
  align-items: center;
}

.address .title {
  gap: 8%;
}

.address .title p{
  font-size: 3.2rem;
}
.alphabet{
  font-size: 1.9rem;
}

address{
  margin-top: 10px;
  text-align: left;
}

.informationLink{
  width: 400px;
}

.information{
  margin: 0;
  padding: 3%;
  width: 100%;
  gap: 20px;
}

small{
  padding: 50px 0 0 0;
}

/* スマホ用固定メニュー */
.footerMenu_SP {
  display: none;
}
}

/* ノートPC帯（高さが低い） */
@media screen and (min-width: 980px) and (max-height: 900px) {
  .contactTxt {
    width: 800px;
    bottom: -20%;
  }
}