body {
  font-family: 'Montserrat', 'Playfair Display', serif;
  background-color: #fdfaf6;
}

header {
  background-color: #6f4e37;
  color: white;
  padding: 1rem 0;
  text-align: center;
}

nav {
  background-color: #3e2723 !important;
}

nav ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2rem;
  padding: 0;
  margin-top: 1rem;
}

nav a {
  color: white;
  text-decoration: none;
  font-weight: bold;
}

/* メニューページのお知らせアイコン */
.info-button {
  position: absolute;
  top: 20px;
  right: 15px;
  z-index: 10;
  background-color: #6f4e37;
  /* オレンジ系 */
  color: white;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-weight: bold;
  font-size: 1.1em;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  transition: background-color 0.3s ease;
}

/* お知らせ関連 */

#notices {
  max-height: 200px;
  overflow-y: auto;
  padding-right: 0.5rem;
  margin-bottom: 1rem;
  background: transparent;
}

#notices .list-group-item {
  background-color: #fff;
  /* 明示的に設定（または transparent） */
  border: none;
}

/* スクロールバーを目立たせない（任意） */
#notices::-webkit-scrollbar {
  width: 6px;
}

#notices::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}

/* パスワードオーバーレイ */
#password-overlay {
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(237, 229, 221, 0.98);
  display: flex;
  align-items: center;
  justify-content: center;
}

#password-form {
  background: #fffbe6;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.2);
  min-width: 260px;
}

#password-form h2 {
  font-size: 1.3rem;
  text-align: center;
}

#password-input {
  display: block;
  width: 100%;
  padding: 0.5rem;
  margin: 1rem 0;
  text-align: center;
}

#password-error {
  display: none;
  color: red;
  text-align: center;
}

/* ヒーローセクション */
.hero-section {
  position: relative;
  height: 60vh;
  overflow: hidden;
}

.bg-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: opacity 1.5s ease-in-out;
  z-index: 0;
  opacity: 0;
}

.bg-slide.active {
  opacity: 1;
}

.hero-text {
  position: relative;
  z-index: 1;
  color: white;
}

/* レスポンシブ */
@media (max-width: 767px) {
  #hero.hero-section {
    height: 28vh;
    background-position: center 30%;
  }

  .hero-title {
    font-size: 1.3rem;
    white-space: nowrap;
  }
}

/* 汎用ページクラス */
.page {
  display: none;
}

/* カテゴリ見出し */
.drink-category {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.2rem;
  font-weight: bold;
  margin-top: 2rem;
  justify-content: center;
}

.drink-category .icon {
  width: 50px;
  margin-top: 5.5px;
}

.content .icon {
  padding-left: 5px;
  width: 20%;
  height: 20%;
}

/* セクション画像 */
.section-image {
  text-align: center;
  margin: 2rem 0 1rem;
}

.section-image img {
  max-width: 320px;
  width: 90%;
  border-radius: 1rem;
}

.section-image h2 {
  margin-top: 1rem;
}


/* ハンバーガーメニュー */
#hamburger-menu {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 10001;
}

#menu-toggle {
  background: #3e2723;
  color: white;
  border: none;
  font-size: 1.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
}

#side-menu {
  position: fixed;
  top: 0;
  left: -250px;
  width: 250px;
  height: 100%;
  background: #fffbe6;
  padding: 2rem 1rem;
  transition: left 0.3s ease;
  z-index: 10002;
}

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

.side-menu li {
  display: block;
  /* 横並び防止 */
  margin-bottom: 10px;
  /* 必要に応じて余白 */
}

#side-menu a {
  text-decoration: none;
  color: white;
  font-size: 1.2rem;
  font-weight: bold;
}

/* ハンバーガーメニューオーバーレイ */

.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 10000;
  display: none;
}

.menu-overlay.active {
  display: block;
}

#side-menu.active {
  left: 0;
}

.custom-text-section {
  align-items: center;
  height: 450px;
  /* 高さを調整可能 */
  padding: 2rem 0;
}

.custom-paragraph {
  text-align: center;
  /* 中央揃え */
  line-height: 3;
  /* 行間を2倍にする（適宜調整） */
  margin-top: 3em;
  margin-bottom: 3em;
  white-space: normal;
  /* pre-wrapを使わず */
  font-family: 'Montserrat', 'Playfair Display', serif;
}

/*商品メニュー*/
#menu-container {
  max-width: 1000px;
  margin: 0 auto;
  /* 中央に寄せる */
  padding: 40px 20px;
}

.menu-section {
  margin-bottom: 60px;
}

.menu-section h2 {
  font-size: 28px;
  border-bottom: 2px solid #ccc;
  padding-bottom: 10px;
  margin-bottom: 30px;
  text-align: center;
  /* 中央揃え */
}

.menu-items {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}

.menu-item {
  width: 300px;
  border: none;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  /* 角丸画像に対応 */
  display: flex;
  flex-direction: column;
  padding: 0;
  /* 余白削除 */
}

.menu-item img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  display: block;
  /* 画像の下に余白が出ないように */
}

.menu-item h3 {
  font-size: 16px;
  margin: 20px 10px;
  text-align: center;
}

.menu-item .type {
  font-size: 14px;
  color: #888;
  margin: 0 10px 5px;
  text-align: center;
}

.menu-item p {
  font-size: 14px;
  color: #444;
  margin: 0 10px 20px;
  text-align: center;
}

/* 営業時間 */

#upcoming-days li>div span {
  display: inline-block;
  width: 100%;
  white-space: nowrap;
}

#upcoming-days li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 左右を引き離す */
}

#upcoming-days li>div {
  flex: 0 0 130px;
  /* 左：日付（固定幅） */
}

#upcoming-days li>span {
  flex: 0 0 120px;
  /* 右：ピル（固定幅） */
  text-align: center;
  white-space: nowrap;
}

/* 高さに合わせて自動調整（可変行間）したいなら、Clampを活用 */
@media (min-width: 768px) {
  .custom-paragraph {
    line-height: clamp(1.8, 5vh, 2.5);
    /* 表示高さによって行間が伸縮 */
  }
}