/* =========================================================
   L'AUBE — Fine Dining Motion Demo
   Design tokens: dark + gold
   ========================================================= */
:root{
  --bg:        #0b0a08;
  --bg-soft:   #14110d;
  --ink:       #f3ece0;
  --ink-dim:   #a99f8d;
  --gold:      #c8a45a;
  --gold-soft: #e7cf95;
  --gold-deep: #8c6d2f;
  --line:      rgba(200,164,90,.22);
  --maxw:      1240px;
  --ease:      cubic-bezier(.16,1,.3,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Noto Serif JP","Cormorant Garamond",serif;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
section{position:relative}

/* image helper backgrounds (filled by JS, with gradient fallback) */
[data-img]{
  background:linear-gradient(135deg,#1c1813,#2a2118 55%,#0e0c09);
  background-size:cover;
  background-position:center;
}

/* ---------- Typography helpers ---------- */
.section-tag{
  font-family:"Jost",sans-serif;
  letter-spacing:.42em;
  text-transform:uppercase;
  font-size:.72rem;
  color:var(--gold);
  margin-bottom:1.4rem;
}
.section-tag--center{text-align:center}
.section-title{
  font-family:"Cormorant Garamond","Noto Serif JP",serif;
  font-weight:500;
  font-size:clamp(1.8rem,4.4vw,3.2rem);
  line-height:1.25;
  letter-spacing:.02em;
}

/* =========================================================
   LOADER
   ========================================================= */
.loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--bg);
  display:grid; place-items:center;
}
.loader__inner{display:flex;flex-direction:column;align-items:center;gap:1.6rem;width:min(80vw,360px)}
.loader__logo{width:240px;height:auto;overflow:visible}
.loader__logo-text{
  font-family:"Cormorant Garamond",serif;
  font-size:42px; font-weight:600; letter-spacing:.18em;
  fill:transparent;
  stroke:var(--gold);
  stroke-width:.7;
  stroke-dasharray:560;
  stroke-dashoffset:560;
}
.loader__bar{width:100%;height:1px;background:rgba(255,255,255,.12);overflow:hidden}
.loader__bar-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft))}
.loader__count{
  font-family:"Jost",sans-serif;font-size:.7rem;letter-spacing:.3em;color:var(--ink-dim);
}
body.is-loaded .loader{pointer-events:none}

/* =========================================================
   AMBIENT
   ========================================================= */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft));
  box-shadow:0 0 12px rgba(200,164,90,.6);
}
.grain{
  position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* =========================================================
   FLOATING CTA
   ========================================================= */
.float-cta{
  position:fixed;right:24px;bottom:24px;z-index:180;
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.85rem 1.4rem;border-radius:100px;
  background:rgba(20,17,13,.7);
  border:1px solid var(--line);
  backdrop-filter:blur(10px);
  font-family:"Jost",sans-serif;letter-spacing:.12em;font-size:.78rem;
  color:var(--ink);
  opacity:0;transform:translateY(20px) scale(.9);pointer-events:none;
  transition:opacity .5s var(--ease),transform .5s var(--ease),background .3s;
}
.float-cta.is-visible{opacity:1;transform:none;pointer-events:auto}
.float-cta:hover{background:var(--gold);color:#1a140a;border-color:var(--gold)}
.float-cta__dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(200,164,90,.7);animation:pulse 2s infinite}
.float-cta:hover .float-cta__dot{background:#1a140a;animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(200,164,90,.6)}70%{box-shadow:0 0 0 10px rgba(200,164,90,0)}100%{box-shadow:0 0 0 0 rgba(200,164,90,0)}}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem clamp(1.2rem,4vw,3rem);
  transition:background .4s var(--ease),padding .4s var(--ease),border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background:rgba(11,10,8,.72);backdrop-filter:blur(12px);
  padding-top:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line);
}
.nav__brand{
  font-family:"Cormorant Garamond",serif;font-size:1.5rem;font-weight:600;letter-spacing:.22em;color:var(--gold-soft);
}
/* インラインリンクは廃止し、全画面メニューに統一 */
.nav__links{display:none}

/* ハンバーガー・トグル */
.nav__toggle{
  display:flex;align-items:center;gap:.8rem;background:none;border:none;cursor:pointer;
  padding:.4rem .2rem;z-index:201;color:var(--ink);
}
.nav__toggle-label{
  font-family:"Jost",sans-serif;letter-spacing:.28em;font-size:.7rem;text-transform:uppercase;
  color:var(--gold-soft);transition:color .3s;
}
.nav__toggle-bars{position:relative;width:30px;height:12px;display:block}
.nav__toggle-bars i{
  position:absolute;left:0;width:30px;height:1.6px;background:var(--gold-soft);
  transition:transform .45s var(--ease),width .45s var(--ease),background .3s;
}
.nav__toggle-bars i:nth-child(1){top:2px}
.nav__toggle-bars i:nth-child(2){top:9px;width:20px}
.nav__toggle:hover .nav__toggle-bars i{width:30px}
.nav.is-open .nav__toggle-bars i:nth-child(1){transform:translateY(3.7px) rotate(45deg)}
.nav.is-open .nav__toggle-bars i:nth-child(2){transform:translateY(-3.7px) rotate(-45deg);width:30px}
.nav.is-open .nav__toggle-label{color:var(--ink-dim)}

/* =========================================================
   FULL-SCREEN MENU OVERLAY
   ========================================================= */
.menu-overlay{position:fixed;inset:0;z-index:190;visibility:hidden;pointer-events:none}
.menu-overlay.is-active{visibility:visible;pointer-events:auto}
.menu-overlay__bg{
  position:absolute;inset:0;
  background:linear-gradient(155deg,#0d0b08 0%,#15110b 55%,#080605 100%);
  clip-path:inset(0 0 100% 0);
}
.menu-overlay__bg::after{
  content:"";position:absolute;inset:0;opacity:.5;
  background:radial-gradient(80% 60% at 80% 20%,rgba(200,164,90,.12),transparent 60%);
}
.menu-overlay__inner{
  position:relative;height:100%;width:100%;
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(4rem,10vw,7rem) clamp(2rem,8vw,7rem) clamp(2rem,6vw,4rem);
}
.menu-overlay__nav{display:flex;flex-direction:column;gap:clamp(.3rem,1.4vw,1rem)}
.menu-link{
  display:flex;align-items:baseline;gap:clamp(.8rem,2vw,1.6rem);
  width:max-content;max-width:100%;position:relative;
}
.menu-link__no{font-family:"Jost",sans-serif;font-size:.78rem;letter-spacing:.2em;color:var(--gold);opacity:.8}
.menu-link__label{
  font-family:"Cormorant Garamond",serif;font-weight:500;line-height:1.02;
  font-size:clamp(2.6rem,9vw,6.2rem);color:var(--ink);
  transition:color .4s var(--ease),transform .5s var(--ease);
}
.menu-link__jp{
  font-family:"Noto Serif JP",serif;font-size:clamp(.78rem,1.6vw,.95rem);
  letter-spacing:.18em;color:var(--ink-dim);align-self:center;
}
.menu-link:hover .menu-link__label{color:var(--gold-soft);transform:translateX(16px)}
.menu-link:hover .menu-link__jp{color:var(--gold)}

.menu-overlay__foot{
  margin-top:clamp(2.5rem,6vw,4.5rem);
  display:flex;flex-wrap:wrap;gap:clamp(1.5rem,5vw,4rem);
  border-top:1px solid var(--line);padding-top:clamp(1.5rem,3vw,2.2rem);
}
.menu-overlay__col{display:flex;flex-direction:column;gap:.3rem;font-family:"Jost",sans-serif;font-size:.8rem;letter-spacing:.06em;color:var(--ink-dim)}
.menu-overlay__cap{font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem}
.menu-overlay__social{flex-direction:row;gap:1.4rem;align-items:flex-end}
.menu-overlay__social a{transition:color .3s}
.menu-overlay__social a:hover{color:var(--gold-soft)}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;height:230vh;background:#060504}
.hero__pin{position:sticky;top:0;height:100svh;overflow:hidden}

/* ===== 料理映像モンタージュ ===== */
.hero__film{position:absolute;inset:0;z-index:0;overflow:hidden}
.shot{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;will-change:transform,opacity,filter,clip-path;
}
.shot--1{background-position:50% 50%;transform-origin:50% 30%}   /* 俯瞰 */
.shot--2{background-position:50% 55%;transform-origin:30% 50%}   /* 横寄り */
.shot--3{background-position:50% 45%;transform-origin:50% 70%}   /* 下寄り */
.shot--4{background-position:50% 42%;transform-origin:50% 46%;transform:scale(1.4)} /* 完成皿の定位置 */

/* 塩の粒子 */
.hero__salt{position:absolute;inset:0;z-index:4;pointer-events:none;mix-blend-mode:screen;opacity:0}

/* 包丁スリット光 */
.hero__slice{
  position:absolute;top:0;bottom:0;left:50%;width:2px;z-index:6;opacity:0;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(255,250,235,.95) 50%,transparent);
  box-shadow:0 0 26px 6px rgba(255,240,210,.7);
  transform:translateX(-50%) scaleY(1.1);
}

/* シネマの上下バー */
.hero__bars{position:absolute;left:0;right:0;height:9vh;z-index:7;background:#050403;pointer-events:none}
.hero__bars--top{top:0;transform:translateY(-100%)}
.hero__bars--bottom{bottom:0;transform:translateY(100%)}

.hero__photo-tone{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 38%,transparent 28%,rgba(8,6,4,.5) 78%,rgba(6,5,4,.96)),
    linear-gradient(180deg,rgba(6,5,4,.72),transparent 24%,transparent 50%,rgba(6,5,4,.94));
}

/* 炎の暖色グロー */
.hero__fireglow{
  position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen;opacity:0;
  background:
    radial-gradient(95% 62% at 50% 100%,rgba(255,140,40,.55),rgba(214,80,16,.22) 46%,transparent 72%),
    radial-gradient(60% 46% at 50% 95%,rgba(255,200,120,.5),transparent 72%);
  will-change:opacity;
}

/* 煙レイヤー */
.hero__smoke{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:screen;overflow:hidden;will-change:transform,opacity}
.smoke{
  position:absolute;border-radius:50%;opacity:0;filter:blur(38px);
  background:radial-gradient(circle,rgba(200,184,164,.5),rgba(150,140,130,.16) 46%,transparent 70%);
  will-change:transform,opacity;
}
.smoke--1{width:74vw;height:74vw;left:-12vw;bottom:-34vw;animation:smokeDrift 22s ease-in-out infinite}
.smoke--2{width:62vw;height:62vw;right:-14vw;bottom:-28vw;animation:smokeDrift 28s ease-in-out infinite reverse}
.smoke--3{width:54vw;height:54vw;left:30vw;bottom:-26vw;animation:smokeDrift 25s ease-in-out 3s infinite}
@keyframes smokeDrift{
  0%{transform:translate(0,0) scale(1)}
  50%{transform:translate(7vw,-12vh) scale(1.28)}
  100%{transform:translate(0,0) scale(1)}
}
.smoke__haze{position:absolute;inset:0;width:100%;height:100%;opacity:0;mix-blend-mode:screen}

/* 火の粉（Canvas） */
.hero__embers{position:absolute;inset:0;z-index:4;pointer-events:none;mix-blend-mode:screen}

.hero__vignette{
  position:absolute;inset:0;z-index:5;pointer-events:none;
  background:radial-gradient(115% 100% at 50% 48%,transparent 52%,rgba(4,3,2,.78));
  box-shadow:inset 0 0 200px 50px rgba(0,0,0,.75);
}
.hero__exit{position:absolute;inset:0;z-index:8;pointer-events:none;background:#060504;opacity:0}

/* HUD（巨大タイポ） */
.hero__hud{
  position:absolute;z-index:6;left:0;right:0;top:46%;transform:translateY(-50%);
  text-align:center;padding:0 1.2rem;pointer-events:none;will-change:transform,opacity;
}
.hero__eyebrow{
  font-family:"Jost",sans-serif;letter-spacing:.48em;text-transform:uppercase;
  font-size:.72rem;color:var(--gold-soft);margin-bottom:1.7rem;opacity:0;padding-left:.48em;
  text-shadow:0 2px 14px rgba(0,0,0,.7);
}
.hero__mega{line-height:.86;font-weight:600;overflow:visible}
.hero__mega .mega{
  display:inline-block;font-family:"Cormorant Garamond",serif;font-weight:600;
  font-size:clamp(4.2rem,20vw,17rem);letter-spacing:.02em;
  color:#f7ecd4;
  text-shadow:0 0 70px rgba(255,176,84,.4),0 10px 46px rgba(0,0,0,.7),0 2px 30px rgba(0,0,0,.5);
}
.hero__mega .char{display:inline-block;will-change:transform,opacity,filter}
.hero__kicker{
  margin-top:1.3rem;font-family:"Noto Serif JP",serif;color:var(--ink);
  font-size:clamp(.95rem,2.1vw,1.3rem);letter-spacing:.2em;opacity:0;
}

.hero__bottom{position:absolute;z-index:6;left:0;right:0;bottom:7.5vh;text-align:center;padding:0 1.5rem}
.hero__bottom .hero__lead{color:var(--ink-dim);font-size:clamp(.9rem,1.8vw,1.05rem);margin:0 auto 1.5rem;max-width:32rem;opacity:0}
.hero__bottom .btn--gold{margin-top:0}

.hero__scroll{
  position:absolute;z-index:6;bottom:22px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  font-family:"Jost",sans-serif;font-size:.62rem;letter-spacing:.3em;color:var(--ink-dim);opacity:0;
}
.hero__scroll i{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;background:var(--gold-soft);animation:scrolldot 1.8s var(--ease) infinite}
@keyframes scrolldot{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:"Jost",sans-serif;letter-spacing:.16em;font-size:.82rem;
  padding:1rem 1.9rem;border-radius:100px;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),color .4s;
}
.btn svg{transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn--gold{
  margin-top:2.4rem;color:#1a140a;
  background:linear-gradient(120deg,var(--gold),var(--gold-soft));
  box-shadow:0 10px 30px rgba(200,164,90,.28);
}
.btn--gold::before{
  content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--gold-soft),#fff7e4);
  opacity:0;transition:opacity .4s;z-index:-1;
}
.btn--gold:hover{transform:translateY(-3px)}
.btn--gold:hover::before{opacity:1}
.btn--lg{padding:1.15rem 2.4rem;font-size:.9rem;margin-top:2.8rem}
[data-anim="cta"]{opacity:0}

/* =========================================================
   CONCEPT
   ========================================================= */
.concept{
  display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center;
  max-width:var(--maxw);margin:0 auto;padding:clamp(7rem,14vw,12rem) clamp(1.5rem,5vw,3rem);
}
.concept__deco{
  position:absolute;top:6%;left:2%;font-family:"Cormorant Garamond",serif;
  font-size:clamp(8rem,22vw,20rem);color:rgba(200,164,90,.05);font-weight:600;pointer-events:none;z-index:0;
}
.concept__inner{position:relative;z-index:1}
.concept__lines{font-family:"Cormorant Garamond","Noto Serif JP",serif}
.reveal-line{font-size:clamp(1.4rem,3.4vw,2.4rem);line-height:1.5;overflow:hidden;font-weight:400}
.reveal-line span{display:inline-block;opacity:0;will-change:transform}
.reveal-line--accent{color:var(--gold-soft);margin-top:.6rem;font-style:italic}
.concept__img{
  height:clamp(360px,52vw,560px);border-radius:8px;
  box-shadow:0 40px 80px rgba(0,0,0,.5);border:1px solid var(--line);
}

/* =========================================================
   DISHES
   ========================================================= */
.dishes{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,8vw,6rem) clamp(1.5rem,5vw,3rem) clamp(7rem,12vw,10rem)}
.dishes__head{text-align:center;margin-bottom:clamp(4rem,9vw,7rem)}
.dish{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:clamp(1.5rem,5vw,4.5rem);margin-bottom:clamp(5rem,10vw,9rem);
}
.dish--right{direction:rtl}
.dish--right .dish__text{direction:ltr}
.dish__img{
  height:clamp(320px,42vw,520px);border-radius:8px;
  box-shadow:0 40px 80px rgba(0,0,0,.5);border:1px solid var(--line);
}
.dish__no{
  font-family:"Jost",sans-serif;letter-spacing:.3em;font-size:.74rem;color:var(--gold);
  display:block;margin-bottom:1rem;
}
.dish__text h3{
  font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.4rem);margin-bottom:1.1rem;line-height:1.3;
}
.dish__text p{color:var(--ink-dim);max-width:30rem;font-size:clamp(.9rem,1.7vw,1rem)}

/* =========================================================
   GALLERY — 第2のシネマ（料理リール）
   ========================================================= */
.gallery{height:420vh}
.gallery__sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:#0a0907}
.gallery__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.12);will-change:opacity,transform}
.gallery__veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(11,10,8,.45),transparent 35%,transparent 55%,rgba(11,10,8,.9)),
  radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(8,6,4,.6))}
.gallery__progress{position:absolute;top:clamp(1.5rem,6vw,3.5rem);left:clamp(1.5rem,6vw,5rem);right:clamp(1.5rem,6vw,5rem);display:flex;gap:10px;z-index:3}
.gallery__progress span{flex:1;height:2px;background:rgba(231,207,149,.22);overflow:hidden;position:relative}
.gallery__progress span::after{content:"";position:absolute;inset:0;background:var(--gold-soft);transform:scaleX(0);transform-origin:left}
.gallery__progress span.is-on::after{transform:scaleX(1);transition:transform .5s var(--ease)}
.gallery__caption{position:absolute;left:clamp(1.5rem,6vw,5rem);bottom:clamp(3rem,10vw,7rem);z-index:3}
.gallery__tag{font-family:"Jost",sans-serif;letter-spacing:.42em;text-transform:uppercase;font-size:.68rem;color:var(--gold);margin-bottom:1rem}
.gallery__index{font-family:"Jost",sans-serif;letter-spacing:.3em;font-size:.78rem;color:var(--gold-soft);margin-bottom:.7rem}
.gallery__titlewrap{overflow:hidden}
.gallery__title{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:500;font-size:clamp(2.2rem,6.5vw,5rem);line-height:1.05;color:var(--ink)}

/* =========================================================
   MENU CARDS (stack)
   ========================================================= */
.menu{padding:clamp(7rem,13vw,11rem) clamp(1.5rem,5vw,3rem)}
.menu__head{text-align:center;margin-bottom:clamp(3rem,7vw,5rem);max-width:var(--maxw);margin-inline:auto}
.menu__stack{max-width:920px;margin:0 auto;display:flex;flex-direction:column;gap:clamp(1.5rem,3vw,2.5rem);perspective:1600px}
.card{
  position:sticky;top:15vh;
  display:grid;grid-template-columns:.9fr 1.1fr;
  background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.45);
  min-height:340px;
  transform-origin:50% 0%;transform-style:preserve-3d;will-change:transform,filter;
}
.card__img{min-height:240px}
.card__body{padding:clamp(1.8rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.card__price{font-family:"Jost",sans-serif;letter-spacing:.18em;color:var(--gold);font-size:.9rem;margin-bottom:.8rem}
.card__body h3{font-family:"Cormorant Garamond",serif;font-size:clamp(2rem,5vw,3rem);font-weight:600;letter-spacing:.04em;margin-bottom:1rem;color:var(--gold-soft)}
.card__body p{color:var(--ink-dim);margin-bottom:1.4rem;font-size:.95rem}
.card__body ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .9rem}
.card__body li{font-family:"Jost",sans-serif;font-size:.74rem;letter-spacing:.06em;color:var(--ink-dim);padding:.35rem .8rem;border:1px solid var(--line);border-radius:100px}

/* =========================================================
   STATS
   ========================================================= */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-soft)}
.stats__grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);
  padding:clamp(4rem,8vw,6rem) clamp(1.5rem,5vw,3rem);gap:2rem;text-align:center;
}
.stat{position:relative}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:15%;height:70%;width:1px;background:var(--line)}
.stat__num{font-family:"Cormorant Garamond",serif;font-size:clamp(2.6rem,6vw,4.2rem);font-weight:600;color:var(--gold-soft);line-height:1;display:inline-block}
.stat__unit{font-family:"Jost",sans-serif;letter-spacing:.24em;text-transform:uppercase;font-size:.66rem;color:var(--gold);display:block;margin:.8rem 0 .4rem}
.stat__label{color:var(--ink-dim);font-size:.85rem}

/* =========================================================
   RESERVE
   ========================================================= */
.reserve{min-height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center}
.reserve__bg{position:absolute;inset:-6%;z-index:0;transform:scale(1.05);will-change:transform}
.reserve__veil{position:absolute;inset:0;z-index:1;background:radial-gradient(110% 90% at 50% 50%,rgba(11,10,8,.55),rgba(11,10,8,.92))}
.reserve__content{position:relative;z-index:2;padding:6rem 1.5rem;max-width:46rem}
.reserve__title{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:500;font-size:clamp(2.4rem,8vw,5.5rem);line-height:1.1;margin:.5rem 0 1.5rem}
.reserve__title .line{display:block;overflow:hidden}
.reserve__title .char{display:inline-block;will-change:transform}
.reserve__lead{color:var(--ink-dim);font-size:clamp(.95rem,2vw,1.1rem)}
.reserve__note{margin-top:2rem;font-family:"Jost",sans-serif;letter-spacing:.14em;font-size:.78rem;color:var(--ink-dim)}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{text-align:center;padding:clamp(4rem,8vw,6rem) 1.5rem;border-top:1px solid var(--line)}
.footer__brand{font-family:"Cormorant Garamond",serif;font-size:2rem;letter-spacing:.22em;color:var(--gold-soft);margin-bottom:1rem}
.footer__addr{color:var(--ink-dim);font-size:.9rem;margin-bottom:1.6rem}
.footer__demo{color:var(--ink-dim);font-size:.74rem;max-width:34rem;margin:0 auto 1.2rem;opacity:.7;line-height:1.7}
.footer__copy{font-family:"Jost",sans-serif;letter-spacing:.18em;font-size:.7rem;color:var(--gold-deep)}

/* generic scroll reveal — 奥から前に出る */
[data-reveal]{opacity:0;transform:translateY(52px) scale(.94)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:860px){
  .nav__links{display:none}
  .concept{grid-template-columns:1fr;padding-top:9rem}
  .concept__img{height:60vw;min-height:300px}
  .dish,.dish--right{grid-template-columns:1fr;direction:ltr}
  .dish__img{height:64vw;min-height:280px;order:-1}
  .card{grid-template-columns:1fr;top:8vh}
  .card__img{min-height:200px}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:3rem 1rem}
  .stat:nth-child(2)::after{display:none}
  .float-cta{right:16px;bottom:16px}
  /* モバイルは料理をさらに大きく寄せる */
  .hero{height:200vh}
  .hero__photo{background-position:52% 44%}
  .hero__hud{top:42%}
  .hero__mega .mega{font-size:clamp(4rem,26vw,9rem)}
}
@media (max-width:520px){
  .hero__kicker{font-size:1rem;letter-spacing:.14em}
  .hero__bottom{bottom:15vh}
  .hero__bottom .hero__lead{font-size:.82rem;margin-bottom:1.2rem}
  .hero__scroll{display:none}
}

/* accessibility: reduced motion */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.1ms !important}
  .hero__mega .char,.reveal-line span,.reserve__title .char{transform:none !important;opacity:1 !important}
  [data-anim],[data-reveal]{opacity:1 !important;transform:none !important}
  .shot--4{opacity:1 !important;transform:scale(1.15) !important}
  .hero__fireglow{opacity:.6 !important}
  .smoke{opacity:.5 !important}
}
