/* ===== 「こだわりもん一家」風 リデザイン(style.cssの上書き) =====
   黒基調・明朝・オリーブ色の予約ボタン・提灯の光・縦書き見出し・クリーム色のメニュー面 */
:root {
  --color-ember: #a8a22a;
  --olive: #6f6c1c;
  --color-bg: #1d1c1a;
  --color-bg-alt: #232220;
  --color-card: #2a2825;
  --color-border: #3b3833;
  --color-text: #f1ebe0;
  --color-text-muted: #b2a999;
  --cream: #eadccb;
  --cream-text: #2b241c;
}
body {
  font-family: var(--font-serif);
  background-image: url("../img/noise.png");
  background-size: 48px 48px;
  background-repeat: repeat;
  letter-spacing: .06em;
  overflow-x: hidden;
}
p, li, dd, dt { line-height: 2; }

/* ヘッダー */
.site-header { padding: 14px 0; background: linear-gradient(180deg, rgba(20,19,17,.85), rgba(20,19,17,0)); }
.site-header.scrolled { background: rgba(29,28,26,.95); box-shadow: 0 2px 14px rgba(0,0,0,.5); padding: 8px 0; }
.header-inner { max-width: none; padding: 0 28px; }
.brand { font-size: 1.7rem; letter-spacing: .12em; }
.main-nav { gap: 22px; }
.main-nav a { font-size: .86rem; font-weight: 500; }
.main-nav > a:not(.nav-cta):not(.nav-featured)::before { content: "・"; margin-right: .15em; color: #fff; }
.nav-featured { color: #e8e07a !important; }
.nav-cta { background: var(--olive); border-radius: 0; padding: 10px 20px; }
.lang-switch a { font-family: var(--font-sans); }

/* ヒーロー */
.hero-overlay { background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.2) 40%, rgba(0,0,0,.6)); }
.hero-embers, .hero-stars { opacity: .5; }
.hero-eyebrow { letter-spacing: .3em; font-size: .85rem; opacity: .9; }
.hero-title { font-weight: 500; letter-spacing: .25em; line-height: 1.9; text-shadow: 0 2px 20px rgba(0,0,0,.7); animation: none; }
.hero-lead { letter-spacing: .15em; }
.btn { border-radius: 0; letter-spacing: .15em; font-family: var(--font-serif); }
.btn-primary { background: var(--olive); border: 1px solid rgba(255,255,255,.25); }
.btn-primary:hover { box-shadow: 0 10px 26px rgba(111,108,28,.6); }
.scroll-cue { left: 26px; right: auto; bottom: 36px; transform: none; display: flex; flex-direction: column; align-items: center; gap: 10px;
  writing-mode: vertical-rl; font-family: var(--font-sans); font-size: .7rem; letter-spacing: .3em; color: #fff; text-decoration: none; }
.scroll-cue::before { content: "SCROLL"; }

/* 提灯の光と、うっすら透ける大きな屋号 */
#concept, #history, #gallery, #access, #voice, #faq, #other-services { position: relative; overflow: hidden; }
#concept::before, #history::before, #gallery::before, #voice::before {
  content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0;
  background: radial-gradient(circle, rgba(255,226,150,.95) 0%, rgba(255,214,120,.55) 38%, rgba(255,200,90,0) 70%);
  opacity: .55; animation: lantern 6s ease-in-out infinite alternate;
}
#concept::before { width: 280px; height: 280px; right: -40px; top: 40px; }
#history::before { width: 220px; height: 220px; left: -50px; top: 120px; animation-delay: -2s; }
#gallery::before { width: 260px; height: 260px; right: 4%; top: 30px; animation-delay: -4s; }
#voice::before   { width: 200px; height: 200px; left: 6%; bottom: 40px; animation-delay: -1s; }
@keyframes lantern { from { transform: scale(.92); opacity: .4; } to { transform: scale(1.08); opacity: .65; } }
#concept::after, #history::after {
  content: "蔵"; position: absolute; z-index: 0; pointer-events: none; font-family: var(--font-serif); font-weight: 700;
  font-size: clamp(260px, 38vw, 560px); line-height: 1; color: rgba(255,255,255,.045); right: 2%; top: 8%;
}
#history::after { right: auto; left: 2%; top: 20%; }
.section-inner { position: relative; z-index: 1; max-width: 1180px; }

/* 見出し */
.section { padding: 120px 0; }
.section-alt { background-color: var(--color-bg-alt); background-image: url("../img/noise.png"); box-shadow: none; }
.section-eyebrow { color: var(--color-ember); letter-spacing: .3em; font-family: var(--font-sans); }
.section-eyebrow::before { content: "● "; font-size: .7em; vertical-align: .1em; }
.section-title { font-weight: 600; letter-spacing: .2em; font-size: 2rem; }
@media (min-width: 900px) {
  #concept .section-title, #history .section-title, #gallery .section-title, #voice .section-title {
    writing-mode: vertical-rl; text-orientation: upright; position: absolute; right: 24px; top: 0; margin: 0; font-size: 2.2rem; line-height: 1.4;
  }
  #concept .section-eyebrow, #history .section-eyebrow, #gallery .section-eyebrow, #voice .section-eyebrow { text-align: left; }
  #concept .section-inner, #history .section-inner, #gallery .section-inner, #voice .section-inner { padding-right: 110px; }
}

/* こだわり・ヒストリー */
.concept-card { background: transparent; border: 0; border-left: 2px solid var(--olive); border-radius: 0; box-shadow: none; padding: 8px 6px 8px 22px; }
.concept-card:hover { transform: translateY(-4px); border-color: #e8e07a; box-shadow: none; }
.concept-card h3 { color: #fff; letter-spacing: .12em; font-weight: 600; }
.concept-icon { font-size: 1.6rem; filter: grayscale(.4); }
.story-block { background: transparent; border: 0; border-left: 2px solid var(--olive); border-radius: 0; padding-left: 26px; }
.story-block h3 { letter-spacing: .12em; }

/* メニュー・宴会: クリーム色の面 */
#menu, #banquet {
  --color-text: var(--cream-text); --color-text-muted: #6b5f50; --color-card: #f6eee2; --color-border: #d3c1a8; --color-ember: #6f6c1c;
  background: var(--cream) url("../img/noise.png"); color: var(--cream-text);
}
#menu .section-title, #banquet .section-title, #menu h3, #banquet h3 { color: var(--cream-text); }
.menu-item, .course-card { background: #f6eee2; border: 1px solid #d3c1a8; border-radius: 0; box-shadow: 0 4px 14px rgba(60,40,10,.12); }
.menu-item:hover { box-shadow: 0 10px 22px rgba(60,40,10,.2); border-color: var(--olive); }
.menu-item-price, .course-price { color: var(--olive); }
.course-items li, .course-meta, .course-note, .menu-note { color: #5a4e40; }
#banquet .btn-ghost, #banquet .btn-tel { color: #fff; background: var(--olive); border-color: var(--olive); }

/* 写真 */
.gallery-item { border-radius: 6px; border: 0; }
.gallery-item:nth-child(3n+2) { transform: translateY(24px); }
@media (max-width: 720px) { .gallery-item:nth-child(3n+2) { transform: none; } }

/* 固定の「予約する」ボタン */
.ichika-reserve {
  position: fixed; right: 0; bottom: 56px; z-index: 90; display: flex; flex-direction: column; align-items: center; gap: 6px;
  width: 92px; padding: 14px 6px 12px; background: var(--olive); color: #fff; text-decoration: none; font-size: .78rem; font-weight: 700;
  letter-spacing: .1em; border-radius: 14px 0 0 14px; box-shadow: 0 6px 20px rgba(0,0,0,.55); transition: background .2s, transform .2s;
}
.ichika-reserve:hover { background: #8a8624; transform: translateX(-4px); }
.ichika-reserve svg { width: 34px; height: 34px; }
.ichika-top { right: auto; left: 0; top: 0; bottom: auto; border-radius: 0; width: 104px; padding: 18px 6px 14px; }
@media (max-width: 720px) {
  .ichika-top { width: 76px; padding: 12px 4px 10px; font-size: .72rem; }
  .ichika-reserve:not(.ichika-top) { display: none; }
  .header-inner { padding: 0 12px 0 88px; }
  .float-tel { background: var(--olive); border-radius: 0; }
}
@media (min-width: 721px) { .header-inner { padding-left: 128px; } }

.site-footer { background: #121110; }
.footer-brand { letter-spacing: .3em; }

/* 中間幅(タブレット・小さめPC)でヘッダーが溢れないように */
.brand { white-space: nowrap; }
@media (max-width: 1280px) and (min-width: 721px) {
  .main-nav { gap: 12px; }
  .main-nav a { font-size: .74rem; letter-spacing: .02em; }
  .lang-switch { display: none; }
  .header-inner { padding-left: 116px; padding-right: 14px; }
  .nav-pr { display: none; }
}
