*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --beige:#b8a99a;--warm-bg:#bfb0a0;--commitment-bg:#d4bfb0;
  --dark:#1a1a1a;--dark-gray:#2a2a2a;--off-white:#f5f0eb;--gold:#c4a97d;--text-dark:#333;
  --font-display:'Cormorant Garamond',serif;
  --font-jp:'Noto Sans JP',sans-serif;
  --font-sans:'Outfit',sans-serif;
  --content-width:65%;
  --content-pad:clamp(24px, 4vw, 60px);
}
html{font-size:20px;overflow-x:hidden}
body{font-family:var(--font-jp);color:var(--text-dark);background:var(--dark);overflow:hidden;-webkit-font-smoothing:antialiased;max-width:100vw}

/* ===== SCROLL CONTAINER ===== */
.pc-br{display:inline}
.sp-br{display:none}
.snap-container{height:100vh;width:100%;max-width:100vw;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory}

/* ===== SECTION GROUP (sticky title + content) ===== */
.section-group{position:relative}
.section-title-layer{position:sticky;top:0;height:100vh;display:flex;align-items:center;z-index:3;pointer-events:none}
.section-content-page{position:relative;z-index:2;height:100vh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;color:#fff}
.v-title{position:absolute;font-family:var(--font-sans);font-size:clamp(2.4rem,5vw,5rem);font-weight:900;letter-spacing:.02em;text-transform:lowercase;writing-mode:vertical-lr;white-space:nowrap;line-height:1;pointer-events:none;user-select:none;top:50%;z-index:5}
.v-title.left{
  left:calc(50% - var(--content-width) / 2 - clamp(40px,4vw,64px));
  transform:translateY(-50%);
}
.v-title.right{
  right:calc(50% - var(--content-width) / 2 - clamp(40px,4vw,64px));
  transform:translateY(-50%);
}
.v-title.white{color:rgba(255,255,255,.25)}.v-title.dark{color:rgba(0,0,0,.12)}

.panel-content{
  padding:0 var(--content-pad);
  max-width:var(--content-width);
  width:100%;
  margin:0 auto;
  position:relative;z-index:3;
  opacity:0;transform:translateX(80px);
  transition:opacity .7s .1s cubic-bezier(.23,1,.32,1),transform .7s .1s cubic-bezier(.23,1,.32,1)
}
.section-content-page.in-view .panel-content{opacity:1;transform:translateX(0)}
.section-content-page:not(.in-view) .panel-content{transition:opacity .3s,transform .3s}
.panel-content .stagger{opacity:0;transform:translateX(50px);transition:opacity .55s cubic-bezier(.23,1,.32,1),transform .55s cubic-bezier(.23,1,.32,1)}
.section-content-page.in-view .stagger:nth-child(1){opacity:1;transform:translateX(0);transition-delay:.25s}
.section-content-page.in-view .stagger:nth-child(2){opacity:1;transform:translateX(0);transition-delay:.4s}
.section-content-page.in-view .stagger:nth-child(3){opacity:1;transform:translateX(0);transition-delay:.55s}

/* ===== HEADER ===== */
header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:20px 40px;display:flex;justify-content:space-between;align-items:center}
header.scrolled{}
.header-logo{font-family:var(--font-display);font-size:1.1rem;font-weight:300;color:#fff;letter-spacing:.15em;text-decoration:none;display:flex;align-items:center}
.header-logo-img{height:36px;width:auto;display:block}
.header-location{font-family:var(--font-sans);font-size:.7rem;font-weight:300;color:rgba(255,255,255,.7);letter-spacing:.2em;text-transform:uppercase}
.hamburger{width:32px;height:12px;cursor:pointer;position:relative;z-index:1001;display:flex;flex-direction:column;justify-content:space-between}
.hamburger span{display:block;width:100%;height:1.5px;background:#fff;transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .3s}
.hamburger.active span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.hamburger.active span:nth-child(2){transform:translateY(-5px) rotate(-45deg)}
.nav-overlay{position:fixed;inset:0;z-index:999;background:rgba(26,26,26,.92);backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s}
.nav-overlay.active{opacity:1;pointer-events:all}
.nav-menu{display:grid;grid-template-columns:1fr 1fr;gap:24px clamp(40px,6vw,80px);list-style:none}
.nav-menu a{font-family:var(--font-sans);font-size:1.4rem;font-weight:300;color:#fff;text-decoration:none;letter-spacing:.08em;display:inline-block;opacity:0;transform:translateY(20px);transition:color .3s,transform .4s,opacity .4s;cursor:pointer}
.nav-overlay.active .nav-menu a{opacity:1;transform:translateY(0)}
.nav-menu li:nth-child(1) a{transition-delay:.1s}.nav-menu li:nth-child(2) a{transition-delay:.15s}
.nav-menu li:nth-child(3) a{transition-delay:.2s}.nav-menu li:nth-child(4) a{transition-delay:.25s}
.nav-menu li:nth-child(5) a{transition-delay:.3s}.nav-menu li:nth-child(6) a{transition-delay:.35s}
.nav-menu li:nth-child(7) a{transition-delay:.4s}.nav-menu li:nth-child(8) a{transition-delay:.45s}
.nav-menu a:hover{color:var(--gold);transform:translateX(8px)}

/* ===== HERO ===== */
.hero-bg{height:100vh;scroll-snap-align:start;position:relative;overflow:hidden;background:url('../image/top.png') center/cover no-repeat, linear-gradient(135deg,#1a1a18,#2a2520,#1a1815);display:flex;align-items:center;justify-content:center}
.hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(196,169,125,.08),transparent 60%),radial-gradient(ellipse at 70% 40%,rgba(255,200,100,.05),transparent 50%);pointer-events:none}
.hero-content{position:relative;z-index:1;text-align:center;width:100%}
.hero-logo-mark{width:200px;height:200px;margin:0 auto 32px;opacity:0;animation:fadeUp 1.2s .3s forwards}
.hero-logo-mark svg{width:100%;height:100%}
.hero-title{font-family:var(--font-display);font-size:3.5rem;font-weight:300;color:#fff;letter-spacing:.3em;opacity:0;animation:fadeUp 1.2s .6s forwards}
.hero-subtitle{font-family:var(--font-jp);font-size:.85rem;font-weight:400;color:#fff;letter-spacing:.4em;margin-top:16px;opacity:0;animation:fadeUp 1.2s .9s forwards}
.hero-reserve{display:flex;justify-content:center;gap:16px;margin-top:48px;opacity:0;animation:fadeUp 1.2s 1.2s forwards}
.hero-reserve a{font-family:var(--font-sans);font-size:.75rem;font-weight:300;color:#fff;text-decoration:none;padding:10px 28px;border:1px solid rgba(255,255,255,.25);letter-spacing:.1em;transition:all .3s}
.hero-reserve a:hover{background:#fff;color:var(--dark);border-color:#fff}
.hero-scroll{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--font-sans);font-size:.6rem;color:rgba(255,255,255,.4);letter-spacing:.3em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:12px}
.hero-scroll::after{content:'';width:1px;height:40px;background:rgba(255,255,255,.3);animation:scrollLine 1.5s infinite}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ===== CONCEPT ===== */
.concept-bg{position:relative;overflow:hidden}
.concept-bg-left{position:absolute;inset:0;background:#B3ACA0;z-index:0}
.concept-bg-right{position:absolute;width:110vh;height:110vh;border-radius:50%;background:#CCB183;z-index:0;top:50%;right:-20vh;transform:translateY(-50%)}
.concept-circle-deco{position:absolute;width:clamp(180px,20vw,320px);height:clamp(180px,20vw,320px);border-radius:50%;background:rgba(80,80,80,.35);top:8%;left:18%;z-index:1}
.concept-heading{font-family:var(--font-jp);font-size:1.3rem;font-weight:300;letter-spacing:.12em;line-height:1.9;margin-bottom:44px}
.concept-body{font-size:.95rem;font-weight:300;line-height:2.5;letter-spacing:.05em}
.concept-body p{margin-bottom:24px}
/* ===== THEMA ===== */
.thema-bg{position:relative;overflow:hidden}
.thema-bg-left{position:absolute;inset:0;background:#CCB183;z-index:0}
.thema-bg-right{position:absolute;width:110vh;height:110vh;border-radius:50%;background:#B3ACA0;z-index:0;top:50%;right:-20vh;transform:translateY(-50%)}
.thema-circle-deco{position:absolute;width:clamp(140px,15vw,260px);height:clamp(140px,15vw,260px);border-radius:50%;background:rgba(255,255,255,.15);bottom:10%;right:20%;z-index:1}
.thema-heading{font-family:var(--font-jp);font-size:1.2rem;font-weight:300;letter-spacing:.08em;line-height:1.9;margin-bottom:44px}
.thema-body{font-size:.95rem;font-weight:300;line-height:2.5;letter-spacing:.05em}
.thema-body p{margin-bottom:20px}

/* ===== FEATURE PAGES ===== */
.feat-inner{
  position:relative;z-index:4;
  max-width:var(--content-width);width:100%;
  margin:0 auto;padding:0 var(--content-pad);
  height:100%;display:flex;align-items:center;
}

/* shared typography */
.feat-num{
  font-family:var(--font-sans);font-size:clamp(2rem,3.5vw,4rem);
  font-weight:900;letter-spacing:.02em;line-height:1;margin-bottom:8px;opacity:.85;
}
.feat-heading{
  font-family:var(--font-jp);font-size:clamp(1.2rem,2vw,1.8rem);
  font-weight:700;letter-spacing:.08em;line-height:1.4;margin-bottom:clamp(16px,2vw,32px);
}
.feat-desc{
  font-family:var(--font-jp);font-size:clamp(.8rem,1vw,.95rem);
  font-weight:300;line-height:2.4;letter-spacing:.05em;
  word-break:auto-phrase;
}

/* -- PAGE 1: 火鍋SOUP -- */
.feat-soup{position:relative;overflow:hidden}
.feat-soup-bg-red{position:absolute;inset:0;background:#b22222;z-index:0}
.feat-soup-bg-beige{position:absolute;inset:0;background:#e8ddd0;z-index:0}
.feat-soup-wave{
  position:absolute;inset:0;width:100%;height:100%;z-index:1;
}
.feat-soup-grid{
  display:grid;grid-template-columns:1fr auto 1fr;gap:0;
  align-items:stretch;
}
.feat-soup-col{display:flex;flex-direction:column}
.feat-soup-col-left{
  color:#fff;align-items:flex-start;
  justify-content:flex-start;padding-top:clamp(48px,8vh,100px);
}
.feat-soup-col-right{
  color:var(--text-dark);align-items:flex-end;text-align:right;
  justify-content:flex-end;padding-bottom:clamp(48px,8vh,100px);
}
.feat-soup-center{
  width:clamp(280px,32vw,480px);height:clamp(280px,32vw,480px);
  border-radius:50%;overflow:hidden;flex-shrink:0;
  margin:0 clamp(-32px,-2vw,-12px);
  align-self:center;
}
.feat-soup-center img{width:100%;height:100%;object-fit:cover;display:block}
.feat-soup-label{
  position:absolute;bottom:clamp(24px,3vw,48px);left:clamp(24px,3vw,48px);
  z-index:5;font-family:var(--font-sans);font-size:clamp(.7rem,1vw,.9rem);
  font-weight:400;letter-spacing:.25em;color:#fff;
  background:#111;padding:10px 20px;text-transform:uppercase;
}

/* -- PAGE 2: しゃぶしゃぶ -- */
.feat-shabu{position:relative;overflow:hidden;background:#EFEFEF}
.feat-shabu-bg-gray{position:absolute;inset:0;background:#EFEFEF;z-index:0}
.feat-shabu-diagonal{
  position:absolute;inset:0;width:100%;height:100%;z-index:1;
}
.feat-shabu-inner{
  display:grid;grid-template-columns:1fr auto;gap:clamp(24px,3vw,48px);align-items:center;
}
.feat-shabu-text-col{position:relative;z-index:3}
.feat-shabu-title{
  font-family:var(--font-jp);font-size:clamp(1.6rem,2.5vw,2.4rem);
  font-weight:900;letter-spacing:.08em;line-height:1.3;color:#333;
  margin-bottom:clamp(20px,2.5vw,36px);
}
.feat-shabu-title-indent{padding-left:1.5em}
.feat-shabu-title-box{
  display:inline-block;background:#1a1a1a;color:#fff;
  padding:.15em .4em;
}
.feat-shabu-body{
  font-family:var(--font-jp);font-size:clamp(.8rem,1vw,.95rem);
  font-weight:300;line-height:1.9;letter-spacing:.05em;color:var(--text-dark);
}
.feat-shabu-body p{margin-bottom:clamp(4px,.8vw,10px)}
.feat-shabu-photo-wrap{
  position:relative;
  width:clamp(350px,38vw,580px);height:clamp(350px,38vw,580px);
  flex-shrink:0;
}
.feat-shabu-circle-text{
  position:absolute;inset:0;width:100%;height:100%;z-index:2;
}
.feat-shabu-photo{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:75%;height:75%;
  border-radius:50%;overflow:hidden;
}
.feat-shabu-photo img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.feat-shabu-body strong{
  font-weight:600;font-size:1.15em;
}

/* -- PAGE 3: こだわりきのこ -- */
.feat-kinoko{position:relative;overflow:hidden}
.feat-kinoko-left{position:absolute;top:0;left:0;width:50%;height:100%;background:#E6B8AF;z-index:0}
.feat-kinoko-right{position:absolute;top:0;right:0;width:50%;height:100%;background:#EFEFEF;z-index:0}
.feat-kinoko-inner{
  flex-direction:column;align-items:flex-start;justify-content:flex-start;
  padding-top:clamp(20px,3vh,40px);gap:0;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.feat-kinoko-title{
  font-family:var(--font-jp);font-size:clamp(1.2rem,2vw,1.8rem);
  font-weight:300;letter-spacing:.3em;color:var(--text-dark);flex-shrink:0;
  margin-bottom:clamp(4px,1vh,12px);
}
.feat-kinoko-accent{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700}
.kinoko-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0;width:100%;flex:1;min-height:0;
}
.kinoko-col{display:flex;flex-direction:column;justify-content:center;padding:0;height:100%}
.kinoko-col-left{gap:5px}
.kinoko-col-right{gap:15px}
.kinoko-card{
  display:flex;align-items:center;gap:clamp(8px,1.2vw,16px);
}
.kinoko-col-left .kinoko-card:nth-child(1){margin-left:15%}
.kinoko-col-left .kinoko-card:nth-child(2){margin-left:5%}
.kinoko-col-left .kinoko-card:nth-child(3){margin-left:0%}
.kinoko-col-left .kinoko-card:nth-child(4){margin-left:10%}
.kinoko-col-right .kinoko-card:nth-child(1){margin-left:10%}
.kinoko-col-right .kinoko-card:nth-child(2){margin-left:15%}
.kinoko-col-right .kinoko-card:nth-child(3){margin-left:10%}
.kinoko-card-img{
  width:clamp(108px,12vw,170px);height:clamp(108px,12vw,170px);
  border-radius:50%;overflow:hidden;flex-shrink:0;
}
.kinoko-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.kinoko-card-img:hover img{transform:scale(1.12)}
.kinoko-card-text{flex:1;min-width:0}
.kinoko-name{
  font-family:var(--font-jp);font-size:clamp(.9rem,1.2vw,1.15rem);
  font-weight:600;letter-spacing:.06em;margin-bottom:6px;color:var(--text-dark);
}
.kinoko-desc{
  font-family:var(--font-jp);font-size:clamp(.65rem,.8vw,.78rem);
  font-weight:300;line-height:1.6;letter-spacing:.03em;color:var(--text-dark);opacity:.85;
  word-break:auto-phrase;
}

/* -- PAGE 4: こだわりやさい -- */
.feat-yasai{position:relative;overflow:hidden;background:#D9D9D9}
.feat-yasai-bg-base{position:absolute;inset:0;background:#D9D9D9;z-index:0}
.feat-yasai-bg-rect{position:absolute;top:0;right:0;width:75%;height:85%;background:#EFEFEF;z-index:1}
.feat-yasai-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px);align-items:center;
}
.feat-yasai-text{position:relative;z-index:3}
.feat-yasai-title{
  font-family:var(--font-jp);font-size:clamp(1.2rem,2vw,1.8rem);
  font-weight:300;letter-spacing:.3em;color:var(--text-dark);margin-bottom:clamp(24px,3vw,48px);
}
.feat-yasai-accent{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700}
.feat-yasai-body{
  font-family:var(--font-jp);font-size:clamp(.8rem,1vw,.95rem);
  font-weight:300;line-height:2.4;letter-spacing:.05em;color:var(--text-dark);
}
.feat-yasai-body p{margin-bottom:clamp(8px,1.2vw,16px)}
.feat-yasai-body strong{font-weight:600;font-size:1.15em}
.feat-yasai-photo-area{
  position:relative;z-index:3;
  width:100%;aspect-ratio:1315/1229;
}
.feat-yasai-photo{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:90%;height:90%;z-index:3;
}
.feat-yasai-photo img{width:100%;height:100%;object-fit:contain;display:block}
.yasai-circle{
  position:absolute;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-sans);font-weight:300;color:#fff;
  font-size:clamp(.7rem,.9vw,.95rem);line-height:1.4;text-align:left;
  padding:clamp(12px,1.5vw,20px);z-index:2;
}
.yasai-circle-olive{
  width:clamp(100px,11vw,160px);height:clamp(100px,11vw,160px);
  background:#6b6b3a;top:clamp(-25px,-2.5vw,-40px);left:clamp(-25px,-2.5vw,-40px);
}
.yasai-circle-green{
  width:clamp(120px,13vw,190px);height:clamp(120px,13vw,190px);
  background:#4a5a2a;top:clamp(-45px,-5vw,-72px);right:clamp(-45px,-5vw,-72px);
}
.yasai-circle-orange{
  width:clamp(120px,13vw,190px);height:clamp(120px,13vw,190px);
  background:#e8783a;bottom:clamp(-45px,-5vw,-72px);right:clamp(-60px,-6.5vw,-95px);
}
.yasai-circle-red{
  width:clamp(110px,12vw,175px);height:clamp(110px,12vw,175px);
  background:#c8382a;bottom:clamp(-28px,-3vw,-45px);left:clamp(-42px,-4.5vw,-66px);
}

/* ===== MENU SECTION (JS-controlled slides) ===== */
.menu-frame{position:relative;height:100vh;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:var(--warm-bg);display:flex;align-items:center;justify-content:center}
.menu-frame .v-title{z-index:20;color:rgba(0,0,0,.12);mix-blend-mode:normal}
/* Circle nav */
.circle-nav{position:absolute;z-index:10;display:flex;align-items:center;gap:clamp(14px,2.5vw,32px);top:50%;left:50%;transform:translate(-50%,-50%) scale(1);transition:top .65s cubic-bezier(.23,1,.32,1),left .65s cubic-bezier(.23,1,.32,1),transform .65s cubic-bezier(.23,1,.32,1),gap .65s cubic-bezier(.23,1,.32,1)}
.circle-nav.at-top{top:12px;left:50%;transform:translate(-50%,0) scale(.42);gap:clamp(4px,1vw,12px)}
.circle-btn{width:200px;height:200px;border-radius:50%;border:1px solid rgba(0,0,0,.2);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-family:var(--font-jp);color:var(--text-dark);transition:background .4s,color .4s,border-color .4s,transform .4s;position:relative;flex-shrink:0}
.circle-btn.active{background:var(--text-dark);color:#fff;border-color:var(--text-dark);transform:scale(1.05);z-index:2}
.circle-btn:hover:not(.active){border-color:rgba(0,0,0,.5)}
.circle-btn-jp{font-size:1.2rem;font-weight:500;margin-bottom:6px;white-space:nowrap}
.circle-btn-en{font-family:var(--font-sans);font-size:.75rem;font-weight:300;letter-spacing:.1em}
/* Dark mode for circle nav on light backgrounds */
.circle-nav.dark-mode .circle-btn{color:var(--text-dark);border-color:rgba(0,0,0,.25)}
.circle-nav.dark-mode .circle-btn.active{background:var(--text-dark);color:#fff;border-color:var(--text-dark)}
.circle-nav.dark-mode .circle-btn:hover:not(.active){border-color:rgba(0,0,0,.5)}
/* Menu slides */
.m-slide{position:absolute;inset:0;display:flex;align-items:center;z-index:5;opacity:0;transform:translateX(100%);transition:opacity .55s cubic-bezier(.23,1,.32,1),transform .55s cubic-bezier(.23,1,.32,1);pointer-events:none;color:var(--text-dark)}
.m-slide.active{opacity:1;transform:translateX(0);pointer-events:all}
.m-slide.exit-left{opacity:0;transform:translateX(-60%)}
.m-slide.enter-left{transform:translateX(-100%)}
.m-slide-inner{padding:60px var(--content-pad) 0;max-width:var(--content-width);width:100%;margin:0 auto}
/* Menu content styles */
.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,40px);align-items:center}
.detail-title{font-family:var(--font-jp);font-size:1.7rem;font-weight:400;margin-bottom:4px}
.detail-subtitle{font-family:var(--font-sans);font-size:.78rem;font-weight:300;font-style:italic;letter-spacing:.08em;margin-bottom:20px;color:rgba(0,0,0,.4)}
.detail-divider{width:32px;height:1px;background:rgba(0,0,0,.2);margin-bottom:20px}
.detail-desc{font-size:.82rem;font-weight:300;line-height:2.2;letter-spacing:.03em}
.detail-img{width:100%;aspect-ratio:4/3;border-radius:4px;display:flex;align-items:center;justify-content:center}
.course-page-header{text-align:center;margin-bottom:36px}
.course-page-title{font-family:var(--font-jp);font-size:1.5rem;font-weight:500;margin-bottom:4px}
.course-page-subtitle{font-family:var(--font-sans);font-size:.82rem;font-weight:700;font-style:italic;letter-spacing:.05em}
.courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.courses-grid-2col{grid-template-columns:repeat(2,1fr)}
.courses-grid-1col{grid-template-columns:1fr;max-width:400px;margin:0 auto}
.course-col{text-align:center}
.course-col-name{font-size:.92rem;font-weight:400;margin-bottom:4px;letter-spacing:.05em}
.course-col-price{font-size:.78rem;font-weight:300;margin-bottom:20px;color:rgba(0,0,0,.5)}
.course-col-items{list-style:none;font-size:.76rem;font-weight:300;line-height:2.4;text-align:center}
.meat-detail{margin:calc(-0.8em + 2px) auto 0;padding:0;width:fit-content}
.meat-item{line-height:1.2;text-align:left}
.alacarte-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px clamp(20px,3vw,40px)}
.alacarte-item{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.1);font-size:.8rem;font-weight:300}
.alacarte-price{font-family:var(--font-sans);font-size:.75rem;font-weight:300;color:var(--gold);white-space:nowrap;margin-left:12px}
.drink-category{margin-bottom:28px}
.drink-cat-title{font-family:var(--font-sans);font-size:.65rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px;color:var(--gold)}
/* Drink 3-column layout */
.drink-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 clamp(20px,3vw,40px);align-items:start}
.drink-3col .drink-category{margin-bottom:20px}
.drink-3col .drink-item{font-size:.78rem;font-weight:300;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.1);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.drink-3col .drink-item span{font-family:var(--font-sans);font-size:.72rem;color:var(--gold);white-space:nowrap;margin-left:12px}
.freeflow-note{margin-top:24px;padding:16px;background:rgba(255,255,255,.06);font-size:.76rem;font-weight:300;line-height:1.9;text-align:left}
.freeflow-note strong{color:var(--gold);font-weight:400}
/* Drink: PC hides mobile-only content */
.drink-pager{display:none}
.drink-page-dots{display:none}
.mobile-only-drink{display:none}
.m-page-label{position:absolute;bottom:32px;right:40px;font-family:var(--font-sans);font-size:.6rem;font-weight:300;color:rgba(0,0,0,.25);letter-spacing:.15em}
/* PC/tablet: hide mobile-only slides, show all cols */
.mobile-only-slide{display:none !important}
.mobile-hide{display:block}

/* ===== COMMITMENT ===== */
.commitment-slide{
  position:absolute;inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;transform:translateX(100%);
  transition:opacity .6s cubic-bezier(.23,1,.32,1),transform .6s cubic-bezier(.23,1,.32,1);
  pointer-events:none;
  overflow:hidden;
}
.commitment-slide-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px,3vw,48px);
  max-width:var(--content-width);
  width:100%;
  margin:0 auto;
  padding:0 var(--content-pad);
  height:80vh;
  align-items:center;
  overflow:hidden;
  min-height:0;
}
.commitment-slide.active{opacity:1;transform:translateX(0);pointer-events:all}
.commitment-slide.exit-left{opacity:0;transform:translateX(-60%)}
.commitment-slide.enter-left{transform:translateX(-100%)}

/* Left photo column */
.c-photo-col{
  display:grid;
  grid-template-rows:1fr 8px 1fr;
  height:100%;
  min-height:0;
  position:relative;
  z-index:2;
}
.c-photo-wrap{
  overflow:hidden;
  position:relative;
  min-height:0;
  border-radius:3px;
}
.c-photo-gap{ /* the 8px bg gap between photos */ }
.c-photo-wrap img{
  width:100%;height:100%;
  max-height:100%;
  object-fit:cover;
  display:block;
  transition:transform 8s ease;
}
.commitment-slide.active .c-photo-wrap img{transform:scale(1.04)}
.c-photo-label{
  position:absolute;bottom:10px;left:10px;
  font-family:var(--font-sans);font-size:.55rem;
  color:rgba(255,255,255,.5);letter-spacing:.15em;
  z-index:2;
}
/* Right text column */
.c-text-col{
  display:grid;
  grid-template-rows:1fr 1fr;
  height:100%;
  padding:0;
  position:relative;
  z-index:2;
}
.c-text-block{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-top:48px;
}
.c-item-name{
  font-family:var(--font-jp);
  font-size:1rem;font-weight:400;
  letter-spacing:.1em;
  margin-bottom:20px;
}
.c-item-desc{
  font-family:var(--font-jp);
  font-size:.85rem;font-weight:300;
  line-height:2.5;letter-spacing:.04em;
  opacity:.88;
}
/* Row-based alternating layout */
.c-rows{
  display:flex;flex-direction:column;gap:clamp(16px,2.5vw,32px);
  width:100%;margin:0 auto;
  padding:0;height:80vh;justify-content:center;overflow:hidden;
}
.c-row{
  display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:start;
}
.c-row-reverse{
  direction:rtl;
}
.c-row-reverse > *{
  direction:ltr;
}
.c-row-photo{
  position:relative;overflow:hidden;aspect-ratio:4/3;width:100%;
}
.c-row-photo .c-photo-wrap{
  position:absolute;inset:0;
}
.c-row-photo .c-photo-wrap img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 8s ease;
}
.commitment-slide.active .c-row-photo .c-photo-wrap img{transform:scale(1.04)}
.c-row-text{
  display:flex;flex-direction:column;justify-content:flex-start;
  padding:0 clamp(32px,4vw,64px);
}
.c-row-text .c-item-name{
  margin-bottom:20px;
}
.c-row-text .c-item-desc{
  margin:0;
}
/* ===== SHOP (single section) ===== */
.shop-single{display:grid;grid-template-columns:minmax(200px,480px) 1fr;gap:clamp(32px,4vw,64px);align-items:center}
.shop-single .shop-photo-area{position:relative;aspect-ratio:1/1;width:100%;border-radius:2px;overflow:hidden}
.shop-type-name{font-family:var(--font-sans);font-size:clamp(2.4rem,4vw,4.5rem);font-weight:900;letter-spacing:-.01em;line-height:1;color:#fff;text-transform:lowercase;margin-bottom:32px}
.shop-type-seats{font-family:var(--font-jp);font-size:1rem;font-weight:400;color:#fff;margin-bottom:16px}
.shop-type-desc{font-family:var(--font-jp);font-size:.88rem;font-weight:300;line-height:2.3;color:rgba(255,255,255,.75)}
/* ===== INFO ===== */
.info-grid{display:grid;grid-template-columns:1fr;gap:clamp(32px,4vw,56px);align-items:center}
.info-img-ph{display:none}
.info-table{width:100%}
.info-row{display:grid;grid-template-columns:130px 1fr;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.08);font-size:.9rem;font-weight:300;line-height:1.8}
.info-label{font-weight:400;letter-spacing:.05em;color:var(--beige)}
.info-reserve{margin-top:clamp(20px,3vw,36px);text-align:center}
.info-reserve-btn{display:inline-block;font-family:var(--font-sans);font-size:.85rem;font-weight:300;color:#333;text-decoration:none;padding:12px 48px;border:1px solid rgba(0,0,0,.2);letter-spacing:.12em;transition:all .4s}
.info-reserve-btn:hover{background:var(--text-dark);color:#fff;border-color:var(--text-dark)}
/* ===== ACCESS ===== */
.access-map{width:100%;height:50vh;border:none;filter:grayscale(.3);margin-bottom:24px}
.access-info{font-size:.95rem;font-weight:300;line-height:2;text-align:center}
.access-br-mobile{display:inline}
.access-zip{display:inline}
/* ===== RESERVE ===== */
.reserve-title{font-family:var(--font-display);font-size:3rem;font-weight:300;letter-spacing:.15em;margin-bottom:16px;color:#fff}
.reserve-sub{font-size:.88rem;font-weight:300;color:rgba(255,255,255,.5);letter-spacing:.1em;margin-bottom:40px}
.reserve-btn{display:inline-block;font-family:var(--font-sans);font-size:.9rem;font-weight:300;color:#fff;text-decoration:none;padding:16px 56px;border:1px solid rgba(255,255,255,.3);letter-spacing:.15em;transition:all .4s}
.reserve-btn:hover{background:#fff;color:var(--dark)}
/* ===== FINAL SECTION (nav map) ===== */
.final-inner{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(40px,6vw,80px);
  align-items:center;
  max-width:var(--content-width);
  width:100%;
  padding:0 var(--content-pad);
  margin:0 auto;
}
.final-logo-area{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.final-logo-mark{display:flex;align-items:center;justify-content:center;width:240px;height:auto}
.final-logo-mark img{width:100%;height:auto;opacity:.8}
.final-logo-name{font-family:var(--font-display);font-size:1.3rem;font-weight:300;letter-spacing:.28em;color:rgba(255,255,255,.8)}
.final-nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  row-gap:clamp(24px,3vw,40px);
  column-gap:clamp(32px,4vw,64px);
}
.final-nav a{
  font-family:var(--font-sans);
  font-size:1.1rem;
  font-weight:700;
  color:rgba(255,255,255,.85);
  text-decoration:none;
  letter-spacing:.06em;
  cursor:pointer;
  transition:color .3s;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.final-nav a:hover{color:#fff}
.final-reserve{margin-top:clamp(24px,3vw,40px);text-align:center}
.final-reserve-btn{display:inline-block;font-family:var(--font-sans);font-size:.9rem;font-weight:300;color:#fff;text-decoration:none;padding:14px 56px;border:1px solid rgba(255,255,255,.3);letter-spacing:.15em;transition:all .4s}
.final-reserve-btn:hover{background:#fff;color:var(--dark);border-color:#fff}

/* ===== TABLET / SMALL DESKTOP (769px - 1100px) ===== */
@media(max-width:1100px){
  .circle-nav{gap:20px}
  .circle-btn{width:150px;height:150px}
  .circle-btn-jp{font-size:1rem}
  .circle-btn-en{font-size:.65rem}
  .circle-nav.at-top{transform:translate(-50%,0) scale(.45);gap:8px}

  .courses-grid{gap:20px}
  .course-col-items{font-size:.7rem;line-height:2.2}

  .drink-3col{grid-template-columns:1fr 1fr;gap:0 16px}
  .drink-3col .drink-item{font-size:.68rem;padding:5px 0}
  .drink-3col .drink-item span{font-size:.58rem}

  .commitment-slide-inner{grid-template-columns:1fr 1fr}

  .shop-type-name{font-size:3.2rem}

  .info-grid{grid-template-columns:200px 1fr;gap:36px}
}

@media(max-width:900px){
  .circle-btn{width:120px;height:120px}
  .circle-btn-jp{font-size:.88rem}
  .circle-btn-en{font-size:.58rem}
  .circle-nav{gap:14px}
  .circle-nav.at-top{transform:translate(-50%,0) scale(.52);gap:6px}

  .detail-layout{grid-template-columns:1fr;gap:20px}
  .detail-img{display:block;aspect-ratio:16/9;max-height:35vh}
  .courses-grid{grid-template-columns:1fr 1fr 1fr;gap:16px}
  .course-col-name{font-size:.84rem}
  .course-col-price{font-size:.72rem;margin-bottom:14px}
  .course-col-items{font-size:.66rem;line-height:2}
  .drink-3col{grid-template-columns:1fr 1fr;gap:0 20px}
  .drink-3col .drink-item{font-size:.68rem;padding:5px 0}
  .drink-3col .drink-item span{font-size:.6rem}

  .commitment-slide-inner.c-rows{height:auto;padding:24px 0}
  .c-row{grid-template-columns:1fr;gap:0}
  .c-row-reverse{direction:ltr}
  .c-row-photo{aspect-ratio:16/9;max-height:30vh}
  .c-row-text{padding:16px 24px}
  .c-text-col{height:auto;padding:16px 32px 16px 32px;gap:4px}
  .c-text-block{padding-top:12px}
  .c-item-desc{font-size:.78rem;line-height:2.2}

  .shop-single{grid-template-columns:1fr;gap:28px}
  .shop-single .shop-photo-area{aspect-ratio:16/9;max-height:40vh}
  .shop-type-name{font-size:2.8rem;margin-bottom:20px}
  .shop-type-desc{font-size:.8rem;line-height:2}

  .info-grid{grid-template-columns:1fr;gap:20px}
  .info-img-ph{display:none}

  .final-nav a{font-size:.95rem}

  /* Feature pages responsive */
  .feat-soup-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:0;justify-items:center}
  .feat-soup-col-left{align-items:center;text-align:center;padding:16px 16px 0}
  .feat-soup-col-right{align-items:center;text-align:center;padding:0 16px 16px}
  .feat-soup-center{width:50vw;height:50vw;max-width:280px;max-height:280px;margin:12px 0}
  .feat-num{font-size:1.6rem}
  .feat-heading{font-size:.95rem;margin-bottom:10px}
  .feat-desc{font-size:.72rem;line-height:2}

  .feat-shabu-inner{grid-template-columns:1fr}
  .feat-shabu-title{font-size:1.3rem}
  .feat-shabu-body{font-size:.72rem;line-height:1.8}
  .feat-shabu-photo-wrap{display:none}

  .feat-yasai-inner{grid-template-columns:1fr}
  .feat-yasai-title{font-size:.95rem;margin-bottom:12px}
  .feat-yasai-body{font-size:.72rem;line-height:2}
  .feat-yasai-photo-area{margin-top:16px}
  .feat-yasai-photo img{max-height:40vh}
}

/* ===== LUNCH CARD (Slide 15) ===== */
.lunch-card-outer{display:flex;align-items:center;justify-content:center;height:100%;max-width:100% !important;padding:0 var(--content-pad) !important}
.lunch-card{
  border:1px solid rgba(255,255,255,.45);
  padding:clamp(20px,2vw,32px) clamp(40px,5vw,80px);
  text-align:center;
  max-width:780px;
  width:100%;
  color:var(--text-dark);
}
.lunch-card-title{
  font-family:var(--font-jp);
  font-size:1.3rem;
  font-weight:500;
  letter-spacing:.12em;
  margin-bottom:8px;
}
.lunch-card-price{
  font-family:var(--font-sans);
  font-size:1.4rem;
  font-weight:500;
  letter-spacing:.04em;
  margin-bottom:18px;
}
.lunch-card-price-tax{
  font-family:var(--font-jp);
  font-size:.78rem;
  font-weight:300;
  margin-left:2px;
}
.lunch-card-divider{
  width:50px;
  height:1px;
  background:rgba(0,0,0,.25);
  margin:0 auto 22px;
}
.lunch-card-items{
  display:flex;
  flex-direction:column;
  gap:clamp(12px,1.8vh,22px);
  margin-bottom:24px;
}
.lunch-card-item{
  font-family:var(--font-jp);
  font-size:.82rem;
  font-weight:300;
  letter-spacing:.04em;
  line-height:1.5;
}
.lunch-card-num{
  font-family:var(--font-sans);
  font-size:.76rem;
  font-weight:400;
  margin-right:4px;
}
.lunch-card-bonus{
  margin-top:4px;
  font-family:var(--font-jp);
  font-size:.68rem;
  font-weight:500;
  line-height:1.9;
  color:var(--text-dark);
  background:rgba(0,0,0,.08);
  padding:16px 24px;
  border-radius:4px;
  box-shadow:0 4px 12px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.1);
}
.lunch-card-bonus-lead{
  margin-bottom:4px;
  white-space:nowrap;
}
.lunch-bonus-br-mobile{display:none}
.lunch-item-br-mobile{display:none}
.lunch-card-bonus-item{
  line-height:1.7;
}

/* ===== LUNCH ===== */
.lunch-menu-sub{color:var(--text-dark)}
.lunch-menu-sub.pc-inline{display:inline}
.mobile-only-br{display:none}
.lunch-menu-note{font-size:.75rem;font-weight:300;color:var(--text-dark);margin-top:14px;line-height:1.8;text-align:center}
.lunch-menu-bonus{margin-top:24px;padding:14px 28px;background:rgba(138,110,88,.12);border-radius:4px;font-size:.82rem;font-weight:500;line-height:1.9;letter-spacing:.04em;color:#6b4f38;text-align:center;width:fit-content;margin-left:auto;margin-right:auto}
.lunch-price{font-family:var(--font-sans);font-size:1.6rem;font-weight:700;color:#fff;margin-top:24px;letter-spacing:.02em}
.lunch-price-tax{font-size:.75rem;font-weight:300;margin-left:4px}
.lunch-note{font-size:.72rem;font-weight:300;color:rgba(255,255,255,.65);margin-top:12px;letter-spacing:.03em}

/* ===== INSTAGRAM (nav + footer) ===== */
.nav-instagram{display:inline-flex;align-items:center;gap:8px}
.nav-instagram-icon{width:20px;height:20px;object-fit:contain;filter:brightness(0) invert(1)}
.final-nav-instagram{display:inline-flex;align-items:center;gap:8px}
.final-instagram-icon{width:18px;height:18px;object-fit:contain;filter:brightness(0) invert(1);opacity:.85}
