/* ===== 衡山毛筆フォント ===== */
@font-face {
  font-family: '衡山毛筆';
  src: url('KouzanMouhitu.otf') format('opentype');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: '青柳疎石';
  src: url('AoyagiSoseki.otf') format('opentype');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'KSO闘龍';
  src: url('KSO_Touryu.otf') format('opentype'), url('KSO_Touryu.ttf') format('truetype');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'KSO黒龍';
  src: url('KSO_Kokuryu.otf') format('opentype'), url('KSO_Kokuryu.ttf') format('truetype');
  font-weight: normal; font-style: normal; font-display: swap;
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }

:root {
  --black:  #0c1e3d;
  --ink:    #122649;
  --navy:   #1a3360;
  --indigo: #224080;
  --gold:   #b8922a;
  --gold2:  #d4a83a;
  --cream:  #f5f0e6;
  --mist:   rgba(245,240,230,0.55);
  --mist2:  rgba(245,240,230,0.25);
  --red:    #8b1a1a;
}

body {
  background: var(--black);
  color: var(--cream);
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-weight: 900;
  -webkit-text-stroke: 0.6px currentColor;
  text-shadow: 0 0 0.5px currentColor;
  overflow-x: hidden;
}

/* ===== NAV ===== */
nav {
  position: fixed; top:0; left:0; right:0; z-index:200;
  display: flex; justify-content:space-between; align-items:center;
  padding: 14px 40px;
  background: linear-gradient(to bottom, rgba(7,8,13,0.97) 60%, transparent);
  border-bottom: none;
}
.nav-logo {
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-size: 1.1rem; font-weight:700; color:var(--gold);
  letter-spacing:0.3em; text-decoration:none;
}
.nav-links { display:flex; gap:28px; list-style:none; align-items:center; }
.nav-ig {
  display:flex; align-items:center;
  color:var(--mist); text-decoration:none; transition:color 0.3s;
}
.nav-ig:hover { color:var(--gold); }
.nav-ig svg { width:18px; height:18px; fill:currentColor; }
.nav-links a {
  color: var(--mist); text-decoration:none;
  font-size:0.75rem; letter-spacing:0.3em;
  transition: color 0.3s; position: relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:1px; background:var(--gold);
  transform:scaleX(0); transition:transform 0.3s;
}
.nav-links a:hover,
.nav-links a.active { color:var(--gold); }
.nav-links a:hover::after,
.nav-links a.active::after { transform:scaleX(1); }

/* ===== MOBILE RIGHT GROUP (IG + ハンバーガー) ===== */
.nav-mobile-right {
  display: none;
  align-items: center;
  gap: 12px;
}
.nav-ig-mobile {
  display: flex;
  align-items: center;
  color: var(--mist);
  text-decoration: none;
  transition: color 0.3s;
}
.nav-ig-mobile svg { width: 20px; height: 20px; fill: currentColor; }
.nav-ig-mobile:hover { color: var(--gold); }

/* ===== HAMBURGER ===== */
.nav-hamburger {
  display:none;
  flex-direction:column; justify-content:center; gap:5px;
  width:36px; height:36px; cursor:pointer;
  background:none; border:none; padding:4px;
}
.nav-hamburger span {
  display:block; height:2px; width:100%;
  background:var(--gold); border-radius:2px;
  transition:transform 0.3s, opacity 0.3s;
}
.nav-hamburger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2){ opacity:0; }
.nav-hamburger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ===== MOBILE DRAWER ===== */
.nav-drawer {
  display:none;
  position:fixed; top:0; left:0; right:0; bottom:0; z-index:190;
  background:rgba(7,8,20,0.97);
  flex-direction:column; align-items:center; justify-content:center; gap:40px;
}
.nav-drawer.open { display:flex; }
.nav-drawer a {
  color:var(--cream); text-decoration:none;
  font-size:1.4rem; letter-spacing:0.4em; transition:color 0.3s;
}
.nav-drawer a:hover { color:var(--gold); }
.nav-drawer .drawer-ig {
  display:flex; align-items:center; gap:10px;
  font-size:0.9rem; letter-spacing:0.3em; color:var(--mist);
}
.nav-drawer .drawer-ig svg { width:22px; height:22px; fill:currentColor; }

/* ===== PAGE HERO (サブページ用バナー) ===== */
.page-hero {
  min-height: 240px;
  display: flex; align-items: center; justify-content: center;
  background: var(--black);
  padding-top: 80px;
  position: relative; overflow: hidden;
}
.page-hero .hero-seigaiha {
  position:absolute; inset:0; opacity:0.07;
  background-image:
    radial-gradient(ellipse 80px 60px at 80px 60px, transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px),
    radial-gradient(ellipse 80px 60px at 0   60px, transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px),
    radial-gradient(ellipse 80px 60px at 40px 0,   transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px);
  background-size: 80px 60px;
}
.page-hero::after {
  content:''; position:absolute; top:0; bottom:0; left:50%; width:2px;
  background: linear-gradient(to bottom, transparent 0%, var(--red) 25%, var(--red) 75%, transparent 100%);
  opacity:0.4; pointer-events:none;
}
.page-hero-content {
  position: relative; z-index:2; text-align:center;
}

/* ===== HERO (トップページ) ===== */
#hero {
  position: relative; min-height:100vh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  overflow:hidden; background: var(--black);
}
#hero::before {
  content:''; position:absolute; inset:0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity: 0.5; pointer-events:none;
}
#hero::after {
  content:''; position:absolute; top:0; bottom:0; left:50%; width:3px;
  background: linear-gradient(to bottom, transparent 0%, var(--red) 20%, var(--red) 80%, transparent 100%);
  opacity:0.5; pointer-events:none;
}
.hero-seigaiha {
  position:absolute; inset:0; opacity:0.07;
  background-image:
    radial-gradient(ellipse 80px 60px at 80px 60px, transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px),
    radial-gradient(ellipse 80px 60px at 0   60px, transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px),
    radial-gradient(ellipse 80px 60px at 40px 0,   transparent 58px, var(--gold) 58px, var(--gold) 60px, transparent 60px);
  background-size: 80px 60px;
}
.hero-content {
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.logo-wrap {
  width: 160px; margin-bottom: 32px;
  animation: logo-glow 4s ease-in-out infinite; position: relative;
}
@keyframes logo-glow {
  0%,100% { filter: drop-shadow(0 0 16px rgba(184,146,42,0.25)); }
  50%      { filter: drop-shadow(0 0 36px rgba(184,146,42,0.55)); }
}
.logo-wrap img { width: 100%; display: block; border-radius: 4px; }
.hero-title-wrap { position: relative; display: inline-block; margin-bottom: 28px; }
.hero-kana {
  font-size:0.8rem; letter-spacing:0.4em; color: var(--gold); font-weight:700;
  writing-mode: vertical-rl; text-orientation: upright;
  position: absolute; top: 0; left: calc(100% + 18px);
}
.hero-title {
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-size: clamp(3.5rem, 12vw, 8rem); font-weight: 700; color: var(--cream);
  letter-spacing: 0.2em; line-height: 1;
  text-shadow: 3px 3px 0 rgba(184,146,42,0.5), 6px 6px 0 rgba(12,30,61,0.8), 0 0 40px rgba(184,146,42,0.25);
  writing-mode: vertical-rl; text-orientation: upright; margin-bottom: 0;
}
.hero-line {
  width:200px; height:1px; margin:0 auto 24px;
  background: linear-gradient(to right, transparent, var(--gold), transparent);
}
.hero-poem {
  font-size:0.8rem; line-height:2.6; color: var(--mist2);
  letter-spacing:0.15em; writing-mode: vertical-rl; height:160px;
}
.scroll-cue {
  position:absolute; bottom:32px; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:rgba(184,146,42,0.5); font-size:0.65rem; letter-spacing:0.35em;
  text-decoration:none;
  animation: scroll-pulse 2.5s ease-in-out infinite;
}
@keyframes scroll-pulse {
  0%,100%{ opacity:0.4; transform:translateX(-50%) translateY(0); }
  50%    { opacity:1;   transform:translateX(-50%) translateY(10px); }
}

/* ===== WAVE DIVIDER ===== */
.wave-divider { position:relative; height:100px; overflow:hidden; margin:0; }
.wave-divider svg { position:absolute; bottom:0; left:0; width:200%; height:100%; }
.wave-divider .wave-a { animation: wave-move 6s linear infinite; }
.wave-divider .wave-b { animation: wave-move 9s linear infinite reverse; opacity:0.5; }
.wave-divider .wave-c { animation: wave-move 12s linear infinite; opacity:0.3; }
@keyframes wave-move {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* ===== SECTIONS BASE ===== */
.section-wrap { position:relative; padding:100px 24px; overflow:hidden; }
.section-inner { max-width:960px; margin:0 auto; }
.sec-label {
  font-size:0.65rem; letter-spacing:0.55em; color:var(--gold);
  text-align:center; margin-bottom:8px;
  font-family:'KSO黒龍','Kiwi Maru','Noto Serif JP',serif;
}
.sec-title {
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-size: clamp(1.8rem,5vw,2.8rem); font-weight: 700; color:var(--cream);
  text-align:center; letter-spacing:0.25em; line-height:1.2; margin-bottom:16px;
  text-shadow: 2px 3px 0 rgba(12,30,61,0.9), 0 0 20px rgba(184,146,42,0.2);
}
.sec-orn {
  display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:56px;
}
.sec-orn::before,.sec-orn::after {
  content:''; flex:1; max-width:100px; height:1px;
  background:linear-gradient(to right, transparent, var(--gold));
}
.sec-orn::after { background:linear-gradient(to left, transparent, var(--gold)); }
.orn-dot { width:5px; height:5px; background:var(--gold); transform:rotate(45deg); }

/* ===== CONCEPT ===== */
#concept { background:var(--ink); }
#concept .asanoha-overlay {
  position:absolute; inset:0; opacity:0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 50 L28 66 L0 50 L0 16Z' stroke='%23b8922a' stroke-width='1' fill='none'/%3E%3Cpath d='M28 0 L28 66M0 16 L56 50M56 16 L0 50' stroke='%23b8922a' stroke-width='0.6' fill='none'/%3E%3C/svg%3E");
  background-size:56px 100px; pointer-events:none;
}
.concept-cols { display:grid; grid-template-columns:1fr 2px 1fr; gap:0 48px; align-items:start; }
.concept-sep {
  width:2px; height:260px;
  background:linear-gradient(to bottom, transparent, var(--gold) 20%, var(--gold) 80%, transparent);
  justify-self:center;
}
.concept-body {
  font-size:0.9rem; line-height:2.8; color:var(--mist);
  letter-spacing:0.1em; font-weight:900;
  -webkit-text-stroke: 0.4px currentColor; text-shadow: 0 0 0.3px currentColor;
}
.concept-phrase {
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-size:clamp(1.1rem,3vw,1.6rem); font-weight:700;
  color:var(--cream); line-height:2.5; letter-spacing:0.25em; text-align:center;
  text-shadow: 2px 3px 0 rgba(12,30,61,0.9);
}
.concept-phrase em { color:var(--gold); font-style:normal; }

/* ===== FEATURES (ダーツ・カラオケ) ===== */
.concept-features {
  display:flex; justify-content:center; gap:48px;
  margin-top:56px; padding-top:40px;
  border-top:1px solid rgba(184,146,42,0.2);
}
.feat-item { text-align:center; }
.feat-icon { width:160px; height:160px; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; }
.feat-icon img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.feat-name { font-size:0.72rem; letter-spacing:0.5em; color:var(--gold); margin-bottom:4px; }
.feat-desc { font-size:0.75rem; color:var(--mist2); letter-spacing:0.1em; line-height:1.8; }

/* ===== PRICE ===== */
#price { background:var(--navy); }
#price .kikko-overlay {
  position:absolute; inset:0; opacity:0.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='104'%3E%3Cpolygon points='30,2 58,18 58,50 30,66 2,50 2,18' stroke='%23b8922a' stroke-width='1' fill='none'/%3E%3C/svg%3E");
  background-size:60px 104px; pointer-events:none;
}
.price-cards {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:2px; border:1px solid rgba(184,146,42,0.2);
}
.price-card {
  background:rgba(255,255,255,0.02); padding:44px 32px; text-align:center;
  border-right:1px solid rgba(184,146,42,0.12);
  position:relative; overflow:hidden; transition:background 0.4s;
}
.price-card:last-child { border-right:none; }
.price-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gold); transform:scaleX(0); transition:transform 0.4s; transform-origin:left;
}
.price-card:hover { background:rgba(184,146,42,0.05); }
.price-card:hover::before { transform:scaleX(1); }
.price-icon { font-size:1.8rem; margin-bottom:16px; }
.price-name { font-size:0.72rem; letter-spacing:0.4em; color:var(--gold); margin-bottom:16px; }
.price-yen { font-size:2.8rem; font-weight:900; color:var(--cream); line-height:1; text-shadow:1px 2px 10px rgba(0,0,0,0.8); }
.price-yen small { font-size:1rem; color:var(--mist); margin-left:4px; }
.price-note { font-size:0.75rem; color:var(--mist2); margin-top:12px; line-height:1.9; letter-spacing:0.08em; }

/* ===== MENU ===== */
#menu { background:var(--black); }
.menu-layout { display:grid; grid-template-columns: repeat(2, 1fr); gap:32px 48px; max-width:860px; margin:0 auto; }
.menu-cat-title {
  font-size:0.7rem; letter-spacing:0.45em; color:var(--gold); text-transform:uppercase;
  border-bottom:1px solid rgba(184,146,42,0.3); padding-bottom:8px; margin-bottom:16px;
}
.menu-row {
  display:flex; justify-content:space-between; align-items:baseline;
  padding:7px 0; border-bottom:1px dotted rgba(245,240,230,0.1);
}
.menu-row:last-child { border-bottom:none; }
.menu-item-name { font-size:0.92rem; color:var(--cream); letter-spacing:0.08em; }
.menu-item-price { font-size:0.82rem; color:var(--gold2); letter-spacing:0.05em; white-space:nowrap; margin-left:12px; }
.menu-cat-wide { grid-column: 1 / -1; }
.menu-champagne .menu-item-price { color:var(--gold); font-size:0.88rem; }

/* ===== INFO ===== */
#info { background:var(--ink); }
#info .asanoha-overlay {
  position:absolute; inset:0; opacity:0.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 0 L56 16 L56 50 L28 66 L0 50 L0 16Z' stroke='%23b8922a' stroke-width='1' fill='none'/%3E%3Cpath d='M28 0 L28 66M0 16 L56 50M56 16 L0 50' stroke='%23b8922a' stroke-width='0.6' fill='none'/%3E%3C/svg%3E");
  background-size:56px 100px; pointer-events:none;
}
.info-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.info-block h3 {
  font-size:0.7rem; letter-spacing:0.45em; color:var(--gold); margin-bottom:20px;
  padding-bottom:10px; border-bottom:1px solid rgba(184,146,42,0.3);
}
.info-row {
  display:flex; justify-content:space-between; align-items:baseline;
  padding:13px 0; border-bottom:1px solid rgba(255,255,255,0.05);
  font-size:0.85rem; letter-spacing:0.07em;
}
.info-row .lbl { color:var(--mist2); font-size:0.75rem; }
.info-row .val { color:var(--cream); text-align:right; line-height:1.7; }
.badge {
  display:inline-block; background:rgba(139,26,26,0.25);
  border:1px solid rgba(139,26,26,0.5); color:#e07070;
  font-size:0.7rem; padding:2px 8px; border-radius:1px; letter-spacing:0.15em; margin:2px;
}
.map-box {
  margin-top:20px; width:100%; aspect-ratio:4/3;
  background:rgba(255,255,255,0.02); border:1px solid rgba(184,146,42,0.15);
}

/* ===== FOOTER ===== */
footer {
  background:var(--black); border-top:1px solid rgba(184,146,42,0.2);
  text-align:center; padding:60px 24px 40px;
}
.footer-logo { width:72px; margin:0 auto 20px; opacity:0.7; display:block; }
.footer-logo img, .footer-logo svg { width:100%; display:block; }
.footer-name {
  font-family: '衡山毛筆', '青柳疎石', 'KSO闘龍', 'KSO黒龍', 'Kiwi Maru', 'Noto Serif JP', serif;
  font-size:1.2rem; font-weight:700; color:var(--gold); letter-spacing:0.35em; margin-bottom:8px;
}
.footer-copy { font-size:0.65rem; color:var(--mist2); letter-spacing:0.2em; }

/* ===== SCROLL REVEAL ===== */
.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.1s; }
.reveal-delay-2 { transition-delay:0.2s; }
.reveal-delay-3 { transition-delay:0.3s; }

/* ===== RESPONSIVE ===== */
@media(max-width:720px){
  nav { padding:12px 20px; }
  .nav-links { display:none; }
  .nav-mobile-right { display:flex; }
  .nav-hamburger { display:flex; }
  .hero-poem { height:120px; font-size:0.72rem; }
  .logo-wrap { width:120px; margin-bottom:24px; }
  .section-wrap { padding:64px 20px; }
  .sec-orn { margin-bottom:36px; }
  .concept-cols { grid-template-columns:1fr; }
  .concept-sep { display:none; }
  .concept-body { font-size:0.85rem; line-height:2.4; }
  .price-cards { grid-template-columns:1fr; }
  .price-card { border-right:none; border-bottom:1px solid rgba(184,146,42,0.12); }
  .price-card:last-child { border-bottom:none; }
  .price-yen { font-size:2.2rem; }
  .menu-layout { grid-template-columns:1fr; gap:24px; }
  .menu-cat-wide { grid-column:1; }
  .info-grid { grid-template-columns:1fr; gap:40px; }
  .info-row { flex-direction:column; gap:4px; align-items:flex-start; }
  .info-row .val { text-align:left; }
  .concept-features { flex-direction:column; align-items:center; gap:32px; }
  footer { padding:48px 20px 32px; }
  .footer-logo {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    margin-left:auto; margin-right:auto;
  }
  .footer-logo img, .footer-logo svg { display:block; margin:0 auto; }
  .page-hero { min-height:180px; }
}
@media(max-width:640px){
  .menu-layout { grid-template-columns:1fr; gap:28px; }
  .menu-cat-wide { grid-column:1; }
}
