@charset "UTF-8";
/* CSS Document */
*, *:before, *:after {
  box-sizing: border-box;
}
html {
  font-size: 62.5%; /* 16px * 62.5% = 10px */
  width: 100%;
}
body {
  color: #231815;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: center;
}
h2 {
  font-weight: 400;
}
h3 {
  font-weight: 200;
}
ul {
  list-style-type: none;
}
a {
  color: #333;
  text-decoration: none;
}
a:visited {
  opacity: 1;
}
img {
  width: 100%;
  vertical-align:top;
}
@media (min-width: 768px) {
  a[href^="tel:"] {
      pointer-events: none;
  }
}
@media (hover: hover) and (pointer: fine) {
  .opacity-link:hover {
    opacity: .6;
    transition: .3s;
  }
}

.contentsArea {
  width: 100%;
  margin: 0 auto;
  position: relative;
  box-shadow: 10px 0 15px rgba(0, 0, 0, 0.1), -10px 0 15px rgba(0, 0, 0, 0.1); 
}
@media (min-width: 450px) {
  .contentsArea {
    max-width: 400px; /* PC時にコンテンツを少し広くする（400px～480pxの範囲で調整） */
  }
}  
section {
  padding: 0 35px;
}

.sentence {
  text-align: justify;
}
.txt-center {
  text-align: center;
}
.no-break {
  white-space: nowrap;
}
@media (max-width: 380px) {
  .no-break {
    white-space: normal;
  }
}

.br-380 {
  display: none;
}
@media (max-width: 380px) {
  .br-380 {
    display: block;
  }
}

/* ----------------------header---------------------- */

/* ヘッダー共通 */
.header {
  position: relative;
}

/* ハンバーガーメニューアイコン */
.header__hamburger {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 64px;
  height: 42px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1001;
}
.header__hamburger-lines {
  position: relative;
  width: 22px;
  height: 22px;
}

/* デフォルトは2本の線 */
.header__hamburger-lines span {
  display: block;
  width: 22px;
  height: 2px;
  background: #363737;
  position: absolute;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* 上の線（デフォルト） */
.header__hamburger-lines span:first-child {
  top: 6px;
}

/* 下の線（デフォルト） */
.header__hamburger-lines span:last-child {
  bottom: 6px;
}

/* メニューが開いたとき（× に変化） */
.header__hamburger.active .header__hamburger-lines span:first-child {
  transform: translateY(4px) rotate(45deg);
}

.header__hamburger.active .header__hamburger-lines span:last-child {
  transform: translateY(-4px) rotate(-45deg);
}


/* メニュー全体 */
.header__menu {
  position: fixed;
  top: 0;
  left: 100%;  /* 初期状態では画面外 */
  width: 100vw;
  height: 100vh;
  background: #f8f7f7;
  transition: left 0.3s ease-in-out;
  z-index: 1000;
  opacity: 1; /* opacityは変更不要 */
  visibility: visible; /* すぐに出すため */
}

/* ハンバーガーメニューが開いたとき */
.header__menu.active {
  left: 0;  /* 画面全体を覆う */
}
/* メニューコンテンツ */
.header__menu-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
/* メニュータイトル */
.header__menu-title {
  font-size: 2.8rem;
  font-weight: bold;
  color: #363737;
  margin-bottom: 20px;
  text-shadow: 
    0px 0px 8px rgba(255, 255, 255, 0.9),
    0px 0px 12px rgba(255, 255, 255, 0.8),
    0px 0px 18px rgba(255, 255, 255, 0.7),
    0px 0px 25px rgba(255, 255, 255, 0.5),
    0px 0px 35px rgba(255, 255, 255, 0.3); /* 影を5重にして超ぼかす */
}
/* メニュー項目 */
.header__menu-list {
  list-style: none;
  padding: 0;
  margin-bottom: 40px;
}
.header__menu-list li {
  margin-bottom: 20px;
}
.header__menu-list a {
  font-size: 1.8rem;
  color: #363737;
  text-decoration: none;
  text-shadow: 
    0px 0px 8px rgba(255, 255, 255, 0.9),
    0px 0px 12px rgba(255, 255, 255, 0.8),
    0px 0px 18px rgba(255, 255, 255, 0.7),
    0px 0px 25px rgba(255, 255, 255, 0.5),
    0px 0px 35px rgba(255, 255, 255, 0.3); /* 影を5重にして超ぼかす */
}


/* 電話番号・定休日 */
.header__menu-contact {
  background: url(../img/bg_floor_yoko.jpg);
  width: 280px;
  padding: 18px;
  margin: 0 auto 40px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
}
.header__menu-contact img {
  display: block;
  width: 220px;
  margin: 0 auto;
}
/* SNSアイコン */
.header__menu-icons {
  display: flex;
  justify-content: center;
  gap: 20px;
  align-items: center;
}
.header__menu-icons a {
  display: flex;
  align-items: center;
}
.header__menu-icons img {
  width: 30px;
}

/* 1000px以上の時のメニュー */
@media (min-width: 1000px) {
  .header__hamburger {
    display: none; /* 1000px以上では非表示 */
  }

  .header__menu {
    left: 65%;  /* 1000px以上では常に開いた状態 */
    width: 375px;
    height: auto;
    top: 50%;
    transform: translateY(-50%);
    background: none;
  }
}
@media (max-width: 1350px) {
  .header__menu {
    left: 67%;
  }
}
@media (max-width: 999px) {
  .header__menu {
    left: 100%; /* 画面外に配置 */
  }

  /* メニューが開いたら左側にスライド */
  .header__menu.active {
    left: 0;
  }
}


/* ----------------------sns-qr---------------------- */
.sns-qr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: fixed;
  left: 14%;
  top: 50%;
  transform: translateY(-50%);
  max-width: 300px;
  gap: 30px;
}
.sns-qr p {
  margin-bottom: 2px;
  text-shadow: 
  0px 0px 8px rgba(255, 255, 255, 0.9),
  0px 0px 12px rgba(255, 255, 255, 0.8),
  0px 0px 18px rgba(255, 255, 255, 0.7),
  0px 0px 25px rgba(255, 255, 255, 0.5),
  0px 0px 35px rgba(255, 255, 255, 0.3); 
}
.sns-qr img {
  max-width: 78px;
}
@media (max-width: 1200px) {
  .sns-qr {
    left: 8%;
  }
}
@media (max-width: 999px) {
  .sns-qr {
    display: none;
  }
}

.sns-qr,
.top-page .header__menu {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.sns-qr.visible,
.top-page .header__menu.visible {
  opacity: 1;
  visibility: visible;
}


/* 1000px未満では .header__menu を常に表示可能にする */
@media (max-width: 999px) {
  .top-page .header__menu {
    opacity: 1;
    visibility: visible;
  }
}





/* ----------------------logo---------------------- */
/* ロゴの基本スタイル */
.floating-logo-container {
  position: fixed; /* 画面固定 */
  top: 20px;
  left: 20px;
  width: 160px;
  z-index: 100;
  transition: opacity 0.3s ease-in-out;
  opacity: 0; /* 最初は非表示 */
  pointer-events: none;
}
@media (max-width: 450px) {
  .floating-logo-container {
    width: 75px;
  }
}
@media (max-width: 800px) {
  .floating-logo-container {
    width: 100px;
  }
}
/* `.service` 以降でロゴを表示 */
.floating-logo-fixed {
  opacity: 1;
  pointer-events: auto;
}
.sp-logo {
  display: none;
}
@media (max-width: 450px) {
  .sp-logo {
    display: block;
  }
}
.pc-logo {
  display: block;
}
@media (max-width: 450px) {
  .pc-logo {
    display: none;
  }
}


/* ----------------------contact---------------------- */
.contact {
  background: url(../img/bg_floor.jpg)no-repeat center;
  background-size: cover;
  position: relative;
  padding: 60px 35px 40px;
}
.contact__ttl {
  font-size: 2.8rem;
  border-bottom: 1px solid #363737;
  line-height: 1;
  padding-bottom: 1px;
  display: inline-block;
  font-family: "EB Garamond", serif;
  margin-bottom: 20px;
}
.contact__btnArea {
  margin-top: 40px;
}
.contact__btn {
  color: #363737;
  border: 1px solid #363737;
  background: url(../img/bg_floor_yoko.jpg);
  background-size: cover;
  padding: 7px 2%;
  font-size: 1.8rem;
  margin-bottom: 30px;
  cursor: pointer;
  transition: .1s cubic-bezier(0.45, 0, 0.55, 1);
  position: relative;
  display: inline-block;
  cursor: pointer;
  line-height: 1;
  width: 100%;
}
/* ホバー時のスタイル */
@media (hover: hover) and (pointer: fine) {
  .contact__btn:hover {
      color: #fff;
      background: #363737;
  }
}

.contact__btn::before {
  content: ''; /* これがないと擬似要素が表示されない */
  display: inline-block; /* 画像を表示するために必要 */
  width: 11px; /* 画像のサイズ */
  height: 19px;
  background-image: url(../img/img_triangle-black.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-left: 7px; /* テキストと三角形の間隔 */
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
}

@media (hover: hover) and (pointer: fine) {
  .contact__btn:hover::before {
      background-image: url(../img/img_triangle-white.png);
    }
}

.contact__btn-telImg {
  max-width: 207px;
  margin-top: 7px;
}
.contact__btn-mail,.contact__btn-line {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact__btn-mail::after {
  content: '';
  display: inline-block;
  background-image: url(../img/icon_mail-circle-black.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  top: 50%;
  left: 8px;
  transform: translateY(-50%);
  position: absolute;
}
@media (hover: hover) and (pointer: fine) {
  .contact__btn-mail:hover::after {
    background-image: url(../img/icon_mail-circle-white.png);
  }
}
.contact__btn-mail,.contact__btn-line {
  height: 68px;
  vertical-align: middle;
}
.contact__btn-line::after {
  content: '';
  display: inline-block;
  background-image: url(../img/icon_line-circle-black.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  top: 50%;
  left: 8px;
  transform: translateY(-50%);
  position: absolute;
}
@media (hover: hover) and (pointer: fine) {
  .contact__btn-line:hover::after {
    background-image: url(../img/icon_line-circle-white.png);
  }
}
.contact__instagram-btn {
  display: block;
  margin: 3px auto;
  max-width: 115px;
}




/* ----------------------footer---------------------- */
.footer {
  background: url(../img/bg_floor.jpg)no-repeat center;
  background-size: cover;
  position: relative;
  padding: 40px 35px 20px;
}
.footer__information {
  padding-bottom: 20px;
  border-bottom: 1px solid #231815;
  font-size: 1.4rem;
}
.footer__information-ttl {
  font-weight: 400;
  margin-bottom: 5px;
}
.footer__information__logoTxt-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.footer__information__logo {
  max-width: 108px;
}
.footer__information__txt {
  text-align: left;
}
.footer__information-map {
  display: inline-block; 
  color: #0000ff;
  position: relative;
  cursor: pointer;
}
.footer__information-map::after {
  content: ''; /* 擬似要素を表示 */
  display: inline-block;
  width: 8px;
  height: 8px;
  background-image: url("../img/img_information_arrow-blue.png");
  background-size: contain;
  background-repeat: no-repeat;
  margin-left: 5px; /* 文字との間隔 */
  vertical-align: middle; 
}
.footer__category {
  margin: 50px auto 40px;
  text-align: left;
}
/* 1列目（INTRODUCTION） */
.footer__item {
  margin-bottom: 10px; /* 余白 */
}
.footer__item1 {
  max-width: 170px;
  margin: 0 auto 20px;
}
/* 2列のレイアウト */
.footer__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2列レイアウト */
  gap: 10px 35px; /* アイテム間の間隔 */
  max-width: 270px;
  margin: 0 auto;
}
/* リンクのデザイン */
.footer__link {
  font-size: 18px;
  display: block;
  line-height: 1;
  display: inline-flex; /* 矢印と横並びにする */
  align-items: center; /* 矢印と文字を揃える */
  gap: 5px; /* 文字と矢印の間隔 */
}
.footer__link::after {
  content: ''; /* 擬似要素の表示 */
  display: inline-block;
  width: 12px;
  height: 12px;
  background-image: url(../img/img_information_arrow-black.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
/* サブタイトル */
.footer__subtitle {
  font-size: 14px;
  line-height: 1;
  display: block;
}
.footer__snsIcon-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 82px;
  margin: 40px auto 30px;
}
.footer__snsIcon img {
  max-width: 28px;
}
.footer__privacyPolicy {
  display: block;
}
.footer__copyright {
  font-size: 1.3rem;
  border-top: 1px solid #363737;
  display: block;
  margin-top: 20px;
  padding-top: 5px;
}

