/* =========================================================
   伍味酉 なごのみせ — Brand Site
   Aesthetic: 昭和レトロ漆器 / Showa-retro lacquer & gold leaf
   ========================================================= */

:root{
  --sumi:#14100e; --sumi-2:#1d1714; --sumi-3:#2a211b;
  --aka:#c0271f; --aka-bright:#e23a2e; --aka-deep:#7c1714;
  --kin:#c9a24b; --kin-bright:#e6c878; --kin-soft:#ddc18c;
  --kinari:#f4ecd9; --kinari-2:#ece0c6; --washi:#e6d7b6;
  --cream-soft:#efe6d3;
  --ink:#2a211c; --ink-soft:#5b4d40;

  --ff-brush:"Yuji Syuku","Shippori Mincho B1",serif;
  --ff-mincho:"Shippori Mincho B1",serif;
  --ff-gothic:"Zen Kaku Gothic New",system-ui,sans-serif;
  --ff-latin:"Cormorant Garamond",serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --maxw:1200px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; font-family:var(--ff-gothic); background:var(--kinari); color:var(--ink);
  line-height:1.85; font-weight:500; letter-spacing:.02em; overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; font-weight:700; line-height:1.3; }
p{ margin:0; }
button{ font-family:inherit; }
::selection{ background:var(--aka); color:var(--kinari); }
body::before{
  content:""; position:fixed; inset:0; z-index:9990; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.no-scroll{ overflow:hidden; }

/* ===== BUTTONS ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em; padding:.95em 1.7em;
  font-weight:700; font-size:1rem; letter-spacing:.06em; line-height:1; cursor:pointer; border:none;
  border-radius:2px; position:relative; overflow:hidden; white-space:nowrap;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease);
}
.btn svg{ width:1.15em; height:1.15em; fill:currentColor; flex:0 0 auto; }
.btn::after{ content:""; position:absolute; inset:0; z-index:0; transform:translateY(101%); transition:transform .4s var(--ease); }
.btn>*{ position:relative; z-index:1; }
.btn:hover{ transform:translateY(-3px); } .btn:active{ transform:translateY(-1px); }
.btn--gold{ background:linear-gradient(180deg,var(--kin-bright),var(--kin)); color:var(--sumi); box-shadow:0 10px 28px -12px rgba(201,162,75,.8); }
.btn--gold::after{ background:linear-gradient(180deg,#fff0cf,var(--kin-bright)); }
.btn--gold:hover::after{ transform:translateY(0); }
.btn--red{ background:linear-gradient(180deg,var(--aka-bright),var(--aka)); color:var(--kinari); box-shadow:0 10px 28px -12px rgba(192,39,31,.85); }
.btn--red::after{ background:linear-gradient(180deg,var(--aka),var(--aka-deep)); }
.btn--red:hover::after{ transform:translateY(0); }
.btn--ghost{ background:transparent; color:currentColor; border:1.5px solid currentColor; }
.btn--ghost::after{ background:currentColor; }
.btn--ghost:hover{ color:var(--kinari); } .btn--ghost:hover::after{ transform:translateY(0); }
.access__cta .btn--ghost,.course__cta .btn--ghost{ color:var(--ink); }
.access__cta .btn--ghost::after,.course__cta .btn--ghost::after{ background:var(--sumi); }

/* ===== PROGRESS BAR ===== */
.progress{ position:fixed; top:0; left:0; height:3px; width:0; z-index:1001;
  background:linear-gradient(90deg,var(--aka),var(--kin-bright)); box-shadow:0 0 12px rgba(230,200,120,.7); transition:width .1s linear; }

/* ===== NOREN ENTRANCE ===== */
.entrance{ position:fixed; inset:0; z-index:10000; display:flex; }
.entrance.is-open{ pointer-events:none; }
.entrance__panel{ position:relative; width:50%; height:100%; background:linear-gradient(180deg,#9a1a16,#6f120f);
  display:flex; align-items:flex-start; justify-content:center; overflow:hidden; transition:transform 1.05s var(--ease); box-shadow:0 0 60px rgba(0,0,0,.6); }
.entrance__panel::before{ content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, rgba(0,0,0,.16) 0 2px, transparent 2px 26px); opacity:.5; }
.entrance__panel::after{ content:""; position:absolute; top:0; left:0; right:0; height:14px; background:#2a0d0a; }
.entrance.is-open .entrance__panel--l{ transform:translateX(-101%); }
.entrance.is-open .entrance__panel--r{ transform:translateX(101%); }
.entrance__kanji{ font-family:var(--ff-brush); color:var(--kinari); font-size:clamp(3rem,12vw,8rem);
  margin-top:14vh; writing-mode:vertical-rl; letter-spacing:.1em; text-shadow:0 4px 24px rgba(0,0,0,.5);
  opacity:0; animation:fadeUp .9s var(--ease) .25s forwards; }
.entrance__panel--l{ justify-content:flex-end; padding-right:2vw; }
.entrance__panel--r{ justify-content:flex-start; padding-left:2vw; }
.entrance__center{ position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.2rem; transition:opacity .5s ease; }
.entrance.is-open .entrance__center{ opacity:0; }
.entrance__seal{ font-family:var(--ff-brush); color:var(--kinari); width:2.4em; height:2.4em; display:grid; place-items:center; font-size:2rem;
  background:radial-gradient(circle at 35% 30%,var(--aka-bright),var(--aka-deep)); border-radius:50%;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.25),0 10px 30px -8px rgba(0,0,0,.6); animation:plPulse 2.4s ease-in-out infinite; }
.entrance__logo{ width:clamp(118px,18vw,164px); height:auto; border-radius:16px;
  box-shadow:0 18px 44px -14px rgba(0,0,0,.7), inset 0 0 0 2px rgba(201,162,75,.45); animation:plPulse 2.6s ease-in-out infinite; }
.entrance__since{ color:var(--kin-bright); letter-spacing:.4em; font-size:.8rem; font-family:var(--ff-latin); }
.entrance__btn{ margin-top:.4rem; padding:.9em 2.4em; border:1.5px solid var(--kin); background:rgba(0,0,0,.2); color:var(--kinari);
  font-family:var(--ff-mincho); font-size:1.05rem; letter-spacing:.3em; border-radius:2px; cursor:pointer; text-indent:.3em;
  transition:.35s var(--ease); }
.entrance__btn:hover{ background:var(--kin); color:var(--sumi); transform:translateY(-2px); }
@keyframes plPulse{ 0%,100%{ box-shadow:inset 0 0 0 2px rgba(255,255,255,.25),0 0 0 0 rgba(226,58,46,.5);} 50%{ box-shadow:inset 0 0 0 2px rgba(255,255,255,.25),0 0 0 16px rgba(226,58,46,0);} }
@keyframes fadeUp{ to{ opacity:1; } }

/* ===== CURSOR GLOW ===== */
.cursor-glow{ position:fixed; top:0; left:0; width:380px; height:380px; border-radius:50%; pointer-events:none; z-index:8000;
  transform:translate(-50%,-50%); opacity:0; transition:opacity .4s ease;
  background:radial-gradient(circle, rgba(230,160,70,.16), rgba(226,58,46,.06) 40%, transparent 70%); mix-blend-mode:screen; }
@media (hover:hover) and (pointer:fine){ body.cursor-on .cursor-glow{ opacity:1; } }

/* ===== WORDMARK LOGOS ===== */
/* hero */
.hero__wordmark{
  display:block; width:100%; max-width:clamp(240px,42vw,490px); height:auto;
  filter:drop-shadow(0 3px 20px rgba(230,200,120,.45)) drop-shadow(0 0 60px rgba(226,58,46,.25));
}
/* header */
.hdr__wordmark{
  display:block; height:20px; width:auto; max-width:140px;
  transition:height .4s var(--ease), max-width .4s var(--ease);
  filter:brightness(0) invert(1);          /* force white on all states */
}
.hdr.is-stuck .hdr__wordmark{ height:17px; }
/* footer */
.ftr__wordmark{
  display:block; max-width:clamp(160px,20vw,210px); height:auto; margin-bottom:.45rem;
  filter:drop-shadow(0 2px 10px rgba(201,162,75,.4)) brightness(0) invert(1);
  opacity:.95;
}
/* concept / こだわり (light bg, use natural black) */
.concept__wordmark{
  display:block; margin:0 auto 1.6rem;
  max-width:clamp(180px,30vw,290px); height:auto;
}
/* opacity after reveal (overrides [data-rise].is-in { opacity:1 }) */
.concept__wordmark.is-in{ opacity:.22; }
/* ===== HEADER ===== */
.hdr{ position:fixed; top:0; left:0; right:0; z-index:1000; display:flex; align-items:center; gap:1rem;
  padding:1.1rem clamp(1rem,4vw,2.6rem); transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease); }
.hdr.is-stuck{ background:rgba(20,16,14,.92); backdrop-filter:blur(10px); padding-top:.7rem; padding-bottom:.7rem;
  box-shadow:0 1px 0 rgba(201,162,75,.35),0 14px 40px -22px rgba(0,0,0,.9); }
.hdr__brand{ display:flex; align-items:center; gap:.7rem; }
.hdr__seal{ font-family:var(--ff-brush); font-size:1.5rem; color:var(--kinari); width:2.1em; height:2.1em; display:grid; place-items:center;
  background:radial-gradient(circle at 35% 30%,var(--aka-bright),var(--aka-deep)); border-radius:50%;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.18),0 6px 16px -8px rgba(0,0,0,.7); flex:0 0 auto; }
.hdr__logo{ height:48px; width:48px; object-fit:cover; border-radius:9px; flex:0 0 auto;
  box-shadow:inset 0 0 0 1px rgba(201,162,75,.55), 0 6px 16px -8px rgba(0,0,0,.7); transition:height .4s var(--ease), width .4s var(--ease); }
.hdr.is-stuck .hdr__logo{ height:42px; width:42px; }
.hdr__name{ display:flex; flex-direction:column; line-height:1.05; }
.hdr__name i{ font-style:normal; font-size:.6rem; letter-spacing:.38em; color:var(--kin-soft); padding-left:.1em; display:block; margin-top:.1em; }
.hdr__nav{ display:flex; gap:1.5rem; margin-left:auto; }
.hdr__nav a{ font-size:.92rem; font-weight:700; color:var(--kinari); letter-spacing:.06em; position:relative; padding:.2em 0; opacity:.9; }
.hdr__nav a::after{ content:""; position:absolute; left:0; bottom:-2px; width:100%; height:2px; background:var(--kin-bright); transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease); }
.hdr__nav a:hover{ opacity:1; } .hdr__nav a:hover::after{ transform:scaleX(1); transform-origin:left; }
.hdr__right{ display:flex; align-items:center; gap:1rem; }
.lang{ display:flex; align-items:center; gap:.2em; background:transparent; border:1px solid rgba(201,162,75,.5); color:var(--kin-soft);
  padding:.45em .7em; border-radius:3px; cursor:pointer; font-size:.78rem; letter-spacing:.05em; transition:.3s var(--ease); }
.lang b,.lang i{ font-style:normal; color:var(--kinari); font-weight:700; }
.lang span{ opacity:.5; }
.lang.en b{ color:var(--kin-soft); font-weight:500; } .lang.en i{ color:var(--kinari); }
.lang:hover{ border-color:var(--kin); background:rgba(201,162,75,.12); }
.hdr__cta{ display:flex; flex-direction:column; align-items:center; line-height:1.1; padding:.5rem 1.2rem; border:1.5px solid var(--kin);
  border-radius:3px; background:rgba(201,162,75,.08); transition:background .35s var(--ease), transform .35s var(--ease); }
.hdr__cta:hover{ background:var(--kin); transform:translateY(-2px); }
.hdr__cta:hover .hdr__cta-label,.hdr__cta:hover .hdr__cta-tel{ color:var(--sumi); }
.hdr__cta-label{ font-size:.62rem; letter-spacing:.45em; color:var(--kin-bright); padding-left:.45em; }
.hdr__cta-tel{ font-family:var(--ff-latin); font-weight:600; font-size:1.15rem; color:var(--kinari); letter-spacing:.04em; }
.hdr__burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.4rem; }
.hdr__burger span{ width:26px; height:2px; background:var(--kinari); transition:.35s var(--ease); }
.hdr__burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hdr__burger.is-open span:nth-child(2){ opacity:0; }
.hdr__burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ===== SIDE NAV ===== */
.sidenav{ position:fixed; left:1.4rem; top:50%; transform:translateY(-50%); z-index:900; display:flex; flex-direction:column; gap:1.1rem;
  opacity:0; transition:opacity .5s ease; }
.sidenav.is-show{ opacity:1; }
.sidenav a{ position:relative; width:11px; height:11px; border-radius:50%; border:1.5px solid var(--kin-soft); transition:.3s var(--ease); }
.sidenav a::after{ content:attr(data-label); position:absolute; left:24px; top:50%; transform:translateY(-50%) translateX(-6px);
  font-family:var(--ff-mincho); font-size:.78rem; letter-spacing:.1em; white-space:nowrap; color:var(--ink); opacity:0;
  background:var(--kinari); padding:.1em .6em; border-radius:2px; box-shadow:0 4px 14px -6px rgba(0,0,0,.3); transition:.3s var(--ease); pointer-events:none; }
.sidenav a:hover::after{ opacity:1; transform:translateY(-50%) translateX(0); }
.sidenav a.is-active{ background:var(--aka); border-color:var(--aka); box-shadow:0 0 0 4px rgba(192,39,31,.18); }
.sidenav a:hover{ border-color:var(--aka); }

/* ===== DRAWER ===== */
.drawer{ position:fixed; inset:0 0 0 auto; width:min(82vw,340px); z-index:999;
  background:linear-gradient(160deg,var(--sumi-2),var(--sumi)); border-left:1px solid rgba(201,162,75,.3);
  transform:translateX(100%); transition:transform .5s var(--ease); display:flex; flex-direction:column; justify-content:center; gap:2rem; padding:2rem; }
.drawer.is-open{ transform:none; }
.drawer__nav{ display:flex; flex-direction:column; gap:.1rem; }
.drawer__nav a{ font-family:var(--ff-mincho); font-size:1.4rem; color:var(--kinari); padding:.55rem 0; border-bottom:1px solid rgba(201,162,75,.18); letter-spacing:.1em; }
.drawer__nav a:hover{ color:var(--kin-bright); padding-left:.4em; transition:.3s var(--ease); }
.drawer__cta{ display:flex; flex-direction:column; gap:.7rem; }

/* ===== HERO ===== */
.hero{ position:relative; min-height:100svh; overflow:hidden; display:flex; flex-direction:column; justify-content:center;
  padding:7rem clamp(1.2rem,10vw,9rem) 5rem;
  background:#0f0b09; }
.hero::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(60% 50% at 50% 42%, rgba(226,58,46,.15), transparent 70%); }
.hero::after{ content:""; position:absolute; top:0; left:0; right:0; height:46vh; z-index:1; pointer-events:none; opacity:.4;
  background:repeating-linear-gradient(90deg, transparent 0 38px, rgba(124,23,20,.2) 38px 76px);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent); mask-image:linear-gradient(180deg,#000,transparent); }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg-slide{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.5s ease; will-change:opacity; }
.hero__bg-slide:nth-child(1){ background-image:url('../img/集合.png'); }
.hero__bg-slide:nth-child(2){ background-image:url('../img/ファサード.png'); }
.hero__bg-slide.is-active{ opacity:1; }
.hero__bg-overlay{ position:absolute; inset:0; background:rgba(0,0,0,.48); }
.hero__embers{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.hero__lantern3d{ position:absolute; inset:0; width:100%; height:100%; z-index:3; pointer-events:none; opacity:0; transition:opacity .9s ease; }
.is-lantern3d .hero__lantern3d{ opacity:1; }
.is-lantern3d .hero__lantern{ display:none; } /* 3D起動時はCSS提灯を退避(フォールバック) */
.hero__inner{ position:relative; z-index:4;width:100%; max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:3rem; }
.hero__lantern{ position:absolute; top:clamp(64px,8vh,98px); z-index:2; width:clamp(68px,7.2vw,102px); height:clamp(90px,9.6vw,132px);
  border-radius:48% 48% 46% 46%/40% 40% 60% 60%;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,.12) 0 3px, transparent 3px 13px), radial-gradient(circle at 50% 38%, #ff6a4d, #d6271f 60%, #8c1410);
  box-shadow:0 0 60px 6px rgba(226,58,46,.45), inset 0 -10px 24px rgba(0,0,0,.4); transform-origin:top center; animation:sway 5.5s ease-in-out infinite; display:grid; place-items:center; }
.hero__lantern::before{ content:""; position:absolute; top:-160px; left:50%; transform:translateX(-50%); width:2px; height:160px; background:linear-gradient(rgba(201,162,75,0), var(--kin-soft)); }
.hero__lantern::after{ content:""; position:absolute; bottom:-9px; left:50%; transform:translateX(-50%); width:30%; height:12px; background:#241712; border-radius:2px; }
.hero__lantern span{ font-family:var(--ff-brush); color:#2a0d0a; font-size:clamp(1.5rem,2.4vw,2.2rem); writing-mode:vertical-rl; }
.hero__lantern--l{ left:clamp(.3rem,1vw,1.4rem); } .hero__lantern--r{ right:clamp(.3rem,1vw,1.4rem); animation-delay:-2.6s; }
@keyframes sway{ 0%,100%{ transform:rotate(-3.2deg);} 50%{ transform:rotate(3.2deg);} }
.hero__copy{ color:var(--kinari); }
.hero__eyebrow{ font-family:var(--ff-mincho); color:var(--kin-bright); letter-spacing:.32em; font-size:clamp(.85rem,1.7vw,1.05rem); margin-bottom:1.4rem; padding-left:.3em; }
.hero__eyebrow::before{ content:"━ "; color:var(--aka-bright); }
.hero__title{ display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1.6rem; }
.hero__title-main{ display:flex; align-items:center; }
.hero__title-sub{ writing-mode:vertical-rl; font-family:var(--ff-brush); font-size:clamp(1.2rem,2.8vw,1.9rem); letter-spacing:.25em; color:var(--kin-soft); align-self:center; padding-top:.2em; }
.hero__lead{ font-family:var(--ff-mincho); font-weight:600; font-size:clamp(1.5rem,4vw,2.6rem); line-height:1.55; margin-bottom:1.2rem; text-shadow:0 2px 20px rgba(0,0,0,.5); }
.hero__since{ font-size:.95rem; letter-spacing:.12em; color:var(--kin-soft); margin-bottom:2rem; }
.hero__since em{ font-family:var(--ff-latin); font-style:italic; font-size:1.15rem; }
.hero__since b{ font-family:var(--ff-latin); font-size:1.35rem; color:var(--kin-bright); letter-spacing:.05em; }
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; } .hero__cta .btn--ghost{ color:var(--kinari); }
.hero__plate{ position:relative; margin:0; justify-self:center; }
.hero__plate-ring{ position:relative; width:min(40vw,420px); aspect-ratio:1; border-radius:50%; overflow:hidden; isolation:isolate;
  box-shadow:0 0 0 2px var(--kin),0 0 0 14px rgba(20,16,14,.9),0 0 0 16px rgba(201,162,75,.35),0 40px 80px -30px rgba(0,0,0,.9); }
.hero__plate-ring img{ width:100%; height:100%; object-fit:cover; transform:scale(1.05); transition:opacity .6s ease; }
.hero__plate-ring.is-fading img{ opacity:0; }
.hero__plate-ring::after{ content:""; position:absolute; inset:0; background:radial-gradient(60% 50% at 50% 20%, rgba(255,210,120,.25), transparent 70%); }
.hero__stamp{ position:absolute; right:-6px; bottom:6px; z-index:2; width:clamp(72px,9vw,104px); height:clamp(72px,9vw,104px); border-radius:50%;
  background:radial-gradient(circle at 35% 30%,var(--aka-bright),var(--aka-deep)); color:var(--kinari); font-family:var(--ff-brush); font-size:clamp(1rem,1.7vw,1.35rem);
  line-height:1.1; display:grid; place-items:center; text-align:center; border:2px solid rgba(255,255,255,.35); transform:rotate(-10deg); box-shadow:0 10px 26px -10px rgba(0,0,0,.8); }
.hero__dots{ position:absolute; left:50%; bottom:-2.4rem; transform:translateX(-50%); display:flex; gap:.5rem; z-index:3; }
.hero__dots button{ width:9px; height:9px; border-radius:50%; border:1px solid var(--kin-soft); background:transparent; cursor:pointer; padding:0; transition:.3s var(--ease); }
.hero__dots button.is-on{ background:var(--kin-bright); border-color:var(--kin-bright); width:22px; border-radius:6px; }
.steam{ position:absolute; bottom:46%; left:50%; width:10px; height:60px; border-radius:50%; background:linear-gradient(180deg, rgba(255,255,255,.5), transparent); filter:blur(7px); opacity:0; z-index:1; animation:steam 4s ease-in infinite; }
.steam:nth-child(2){ left:42%; animation-delay:1.3s; } .steam:nth-child(3){ left:58%; animation-delay:2.5s; }
@keyframes steam{ 0%{ transform:translateY(10px) scale(.8); opacity:0;} 30%{ opacity:.7;} 100%{ transform:translateY(-70px) scaleX(1.6); opacity:0;} }
.hero__marquee{ position:absolute; bottom:2.4rem; left:0; right:0; z-index:3; overflow:hidden; border-top:1px solid rgba(201,162,75,.22); border-bottom:1px solid rgba(201,162,75,.22); padding:.55rem 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.hero__marquee-track{ display:flex; width:max-content; animation:marq 36s linear infinite; }
.hero__marquee-track span{ font-family:var(--ff-mincho); color:var(--kin-soft); font-size:.95rem; letter-spacing:.18em; white-space:nowrap; padding-right:1rem; }
@keyframes marq{ to{ transform:translateX(-50%);} }
.hero__scroll{ position:absolute; bottom:5.2rem; left:50%; transform:translateX(-50%); z-index:4; }
.hero__scroll span{ display:block; width:1px; height:46px; background:linear-gradient(var(--kin-bright),transparent); position:relative; overflow:hidden; }
.hero__scroll span::after{ content:""; position:absolute; top:0; left:0; width:100%; height:40%; background:var(--kin-bright); animation:scrolldot 1.8s ease-in-out infinite; }
@keyframes scrolldot{ 0%{ transform:translateY(-100%);} 100%{ transform:translateY(260%);} }

/* ===== QUICK DECISION STRIP ===== */
.conversion-strip{ background:linear-gradient(110deg,var(--aka-deep),var(--aka)); color:#fff; border-top:1px solid rgba(230,200,120,.45); border-bottom:1px solid rgba(90,10,8,.5); }
.conversion-strip__inner{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); }
.conversion-strip__inner>div{ min-height:116px; padding:1.4rem 1rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; }
.conversion-strip__inner>div:not(:last-child)::after{ content:""; position:absolute; right:0; top:22%; bottom:22%; width:1px; background:rgba(255,255,255,.22); }
.conversion-strip b{ font-family:var(--ff-latin); font-size:2.35rem; line-height:1; color:var(--kin-bright); letter-spacing:.02em; }
.conversion-strip b span{ font-family:var(--ff-mincho); font-size:.9rem; color:#fff; margin-left:.15em; }
.conversion-strip p{ margin-top:.45rem; font-size:.78rem; font-weight:700; letter-spacing:.08em; color:#fff4e5; }

/* ===== RESERVATION QUICK PANEL ===== */
.reserve-quick{ max-width:var(--maxw); margin:-2.2rem auto 0; position:relative; z-index:5; display:grid; grid-template-columns:1.3fr 1fr auto; gap:1.4rem; align-items:center; background:linear-gradient(120deg,#2a1710,#160e0b); color:var(--kinari); border:1px solid rgba(201,162,75,.5); border-radius:8px; padding:1.25rem 1.5rem; box-shadow:0 24px 55px -30px rgba(0,0,0,.7); }
.reserve-quick__kicker,.course-matrix__kicker,.meibutsu__editorial-kicker{ display:block; font-size:.7rem; font-weight:700; letter-spacing:.18em; color:var(--kin-bright); text-transform:uppercase; }
.reserve-quick h2{ font-family:var(--ff-mincho); font-size:clamp(1.25rem,2.5vw,1.8rem); color:var(--kinari); margin:.2rem 0 .25rem; }
.reserve-quick p{ color:#cdbfa9; font-size:.82rem; }
.reserve-quick__facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; }
.reserve-quick__facts div{ border-left:1px solid rgba(201,162,75,.28); padding-left:.7rem; }
.reserve-quick__facts b{ display:block; font-family:var(--ff-latin); font-size:1.15rem; color:var(--kin-bright); }
.reserve-quick__facts span{ display:block; font-size:.68rem; color:#cdbfa9; margin-top:.2rem; }
.reserve-quick__actions{ display:flex; flex-direction:column; gap:.55rem; }
.reserve-quick__actions .btn{ padding:.75em 1.1em; font-size:.82rem; white-space:nowrap; }
.reserve-quick__actions .btn--ghost{ color:var(--kinari); border-color:rgba(201,162,75,.55); }

/* ===== SECTION HEADINGS ===== */
.sec-head{ text-align:center; margin-bottom:3rem; }
.sec-head--left{ text-align:left; }
.sec-head__kanji{ display:inline-block; font-family:var(--ff-brush); font-size:clamp(2.2rem,6vw,3.6rem); letter-spacing:.14em; position:relative; padding:0 .2em; }
.sec-head__kanji::before,.sec-head__kanji::after{ content:""; position:absolute; top:50%; width:clamp(28px,6vw,64px); height:1px; background:currentColor; opacity:.5; }
.sec-head--left .sec-head__kanji::before{ display:none; }
.sec-head__kanji::before{ right:100%; margin-right:.5em; } .sec-head__kanji::after{ left:100%; margin-left:.5em; }
.sec-head__en{ font-family:var(--ff-latin); font-weight:500; font-size:.95rem; letter-spacing:.5em; opacity:.65; margin-top:.6rem; text-indent:.5em; }
.sec-head--light .sec-head__kanji{ color:var(--aka-deep); } .sec-head--light .sec-head__en{ color:var(--ink-soft); }
.sec-head--dark .sec-head__kanji{ color:var(--kin-bright); } .sec-head--dark .sec-head__en{ color:var(--kin-soft); }

/* ===== STORY / TIMELINE ===== */
.story{ background:radial-gradient(70% 55% at 12% 0%, #2a1812 0%, transparent 55%), linear-gradient(180deg,var(--sumi),var(--sumi-2)); color:var(--kinari);
  padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.story__intro{ max-width:760px; margin:0 auto 4rem; text-align:center; }
.story__big{ font-family:var(--ff-mincho); font-weight:700; font-size:clamp(1.7rem,4.6vw,2.9rem); line-height:1.5; margin-bottom:1.4rem; }
.story__big .hl{ color:var(--kin-bright); }
.story__txt{ color:#cdbfa9; line-height:2.1; font-size:1.02rem; }
.story--compact .story__intro{ max-width:820px; margin-bottom:2.8rem; }
.brand-proof{ max-width:900px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(201,162,75,.3); border-bottom:1px solid rgba(201,162,75,.3); }
.brand-proof>div{ padding:1.8rem 1rem; text-align:center; position:relative; }
.brand-proof>div:not(:last-child)::after{ content:""; position:absolute; right:0; top:20%; bottom:20%; width:1px; background:rgba(201,162,75,.24); }
.brand-proof b{ display:block; font-family:var(--ff-mincho); font-size:clamp(1.55rem,3vw,2.2rem); color:var(--kin-bright); line-height:1.2; }
.brand-proof span{ display:block; margin-top:.6rem; color:#cdbfa9; font-size:.82rem; letter-spacing:.08em; }
.brand-proof__cta{ margin-top:2.4rem; display:flex; justify-content:center; }
.brand-proof__cta .btn--ghost{ color:var(--kinari); }
.timeline{ max-width:var(--maxw); margin:0 auto; padding:0; list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.timeline::before{ content:""; position:absolute; top:34px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,transparent,var(--kin) 12%,var(--kin) 88%,transparent); }
.tl{ position:relative; padding:0 1rem; text-align:center; }
.tl::before{ content:""; position:absolute; top:26px; left:50%; transform:translateX(-50%); width:18px; height:18px; border-radius:50%; background:var(--sumi); border:2px solid var(--kin); z-index:2; transition:.4s var(--ease); }
.tl.is-in::before{ background:var(--kin); box-shadow:0 0 0 5px rgba(201,162,75,.18); }
.tl--now::before{ background:var(--aka); border-color:var(--aka-bright); box-shadow:0 0 0 6px rgba(226,58,46,.22); animation:plPulse 2.2s infinite; }
.tl__year{ display:block; font-family:var(--ff-latin); font-weight:600; font-size:1.9rem; color:var(--kin-bright); margin-top:4.2rem; line-height:1; }
.tl__wa{ display:block; font-size:.72rem; letter-spacing:.2em; color:var(--kin-soft); margin:.3rem 0 1rem; }
.tl__title{ font-family:var(--ff-mincho); font-size:1.12rem; color:var(--kinari); margin-bottom:.6rem; }
.tl__txt{ font-size:.84rem; color:#b6a890; line-height:1.85; }

/* ===== CRAFT / CONCEPT ===== */
.concept{ background:radial-gradient(80% 50% at 80% 0%, rgba(201,162,75,.1), transparent 60%), var(--kinari); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); position:relative; }
.concept__intro{ max-width:760px; margin:0 auto 4.5rem; text-align:center; }
.concept__big{ font-family:var(--ff-mincho); font-weight:700; font-size:clamp(1.7rem,4.6vw,2.9rem); line-height:1.55; color:var(--ink); margin-bottom:1.6rem; }
.concept__txt{ font-size:1.02rem; color:var(--ink-soft); line-height:2.1; }
.pillars{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.pillar{ background:linear-gradient(180deg,#fff,var(--cream-soft)); border:1px solid rgba(124,23,20,.12); border-top:3px solid var(--aka); border-radius:4px; padding:2.2rem 1.5rem; position:relative; box-shadow:0 18px 40px -30px rgba(42,33,28,.6); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.pillar:hover{ transform:translateY(-8px); box-shadow:0 30px 55px -32px rgba(42,33,28,.7); }
.pillar__no{ position:absolute; top:-.55em; right:.6rem; font-family:var(--ff-brush); font-size:3.4rem; color:rgba(192,39,31,.12); line-height:1; }
.pillar h3{ font-family:var(--ff-mincho); font-size:1.18rem; margin-bottom:.7rem; color:var(--aka-deep); }
.pillar p{ font-size:.92rem; color:var(--ink-soft); line-height:1.95; }
.stats{ max-width:var(--maxw); margin:4.5rem auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; border-top:1px solid rgba(124,23,20,.2); border-bottom:1px solid rgba(124,23,20,.2); padding:2.4rem 0; }
.stat{ text-align:center; position:relative; }
.stat:not(:last-child)::after{ content:""; position:absolute; right:0; top:15%; height:70%; width:1px; background:rgba(124,23,20,.15); }
.stat__num{ font-family:var(--ff-latin); font-weight:600; font-size:clamp(2.6rem,6vw,3.8rem); color:var(--aka); line-height:1; }
.stat__unit{ font-family:var(--ff-mincho); font-size:1.2rem; color:var(--aka-deep); margin-left:.1em; }
.stat__label{ display:block; font-size:.8rem; letter-spacing:.12em; color:var(--ink-soft); margin-top:.7rem; }

/* ===== MEIBUTSU ===== */
.meibutsu{ background:radial-gradient(70% 60% at 15% 0%, #2a1812 0%, transparent 55%), linear-gradient(180deg,var(--sumi-2),var(--sumi)); color:var(--kinari); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.meibutsu__lead{ max-width:720px; margin:-1rem auto 2.8rem; text-align:center; font-family:var(--ff-mincho); font-size:clamp(1.02rem,2.4vw,1.3rem); line-height:1.9; color:#d8cab5; }
.meibutsu__editorial{ max-width:var(--maxw); margin:0 auto 3rem; display:grid; grid-template-columns:.75fr 1.25fr; gap:1.5rem; align-items:stretch; }
.meibutsu__editorial-copy{ display:flex; flex-direction:column; justify-content:center; padding:1.6rem; border:1px solid rgba(201,162,75,.25); background:rgba(201,162,75,.06); border-radius:8px; }
.meibutsu__editorial-copy h3{ font-family:var(--ff-mincho); font-size:clamp(1.5rem,3vw,2.3rem); color:var(--kinari); margin:.45rem 0 .8rem; }
.meibutsu__editorial-copy p{ color:#cdbfa9; font-size:.9rem; line-height:1.9; }
.featured-dishes{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:110px; gap:.65rem; }
.featured-dish{ position:relative; min-width:0; overflow:hidden; padding:0; border:1px solid rgba(201,162,75,.22); border-radius:6px; background:#1b120f; cursor:pointer; text-align:left; color:#fff; }
.featured-dish--wide{ grid-column:span 2; }
.featured-dish--tall{ grid-row:span 2; }
.featured-dish img{ width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); }
.featured-dish::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 34%,rgba(12,9,8,.9)); }
.featured-dish:hover img{ transform:scale(1.08); }
.featured-dish__label,.featured-dish__price,.featured-dish__badge{ position:absolute; z-index:2; }
.featured-dish__label{ left:.75rem; bottom:.55rem; font-family:var(--ff-mincho); font-size:.92rem; }
.featured-dish__price{ right:.7rem; bottom:.58rem; font-family:var(--ff-latin); color:var(--kin-bright); font-size:.95rem; }
.featured-dish__badge{ left:.65rem; top:.6rem; padding:.2em .55em; font-size:.62rem; background:var(--aka); border-radius:2px; letter-spacing:.06em; }
/* omikuji */
.omikuji{ max-width:var(--maxw); margin:0 auto 2.6rem; display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap;
  background:linear-gradient(110deg,#241712,#1a1310); border:1px solid rgba(201,162,75,.25); border-radius:8px; padding:1.4rem 1.8rem; }
.omikuji--after-menu{ margin-top:2.8rem; margin-bottom:0; }
.omikuji__lhs{ flex:1; min-width:200px; }
.omikuji__label{ font-family:var(--ff-mincho); color:var(--kin-bright); font-size:.9rem; letter-spacing:.1em; }
.omikuji__title{ font-family:var(--ff-mincho); font-size:1.25rem; color:var(--kinari); }
.omikuji__btn{ background:linear-gradient(180deg,var(--aka-bright),var(--aka)); color:#fff; border:none; padding:.85em 1.6em; border-radius:40px; font-weight:700; letter-spacing:.08em; cursor:pointer; box-shadow:0 12px 28px -12px rgba(226,58,46,.8); transition:.3s var(--ease); }
.omikuji__btn:hover{ transform:translateY(-3px); }
.omikuji__btn.is-rolling{ animation:wob .4s ease; }
@keyframes wob{ 0%,100%{ transform:rotate(0);} 25%{ transform:rotate(-4deg);} 75%{ transform:rotate(4deg);} }
.omikuji__result{ flex-basis:100%; }
.omikuji__result:empty{ display:none; }
.omikuji__card{ display:flex; align-items:center; gap:1rem; background:rgba(201,162,75,.08); border:1px dashed rgba(201,162,75,.4); border-radius:8px; padding:.8rem 1rem; animation:dishIn .5s var(--ease); cursor:pointer; }
.omikuji__card img{ width:84px; height:64px; object-fit:cover; border-radius:5px; flex:0 0 auto; }
.omikuji__card b{ font-family:var(--ff-mincho); color:var(--kin-bright); font-size:1.1rem; display:block; }
.omikuji__card span{ font-size:.85rem; color:#c9bca8; }
.omikuji__card .px{ font-family:var(--ff-latin); font-size:1.3rem; color:var(--kin-bright); margin-left:auto; padding-left:1rem; }
/* controls */
.mctrl{ max-width:var(--maxw); margin:0 auto 2.4rem; }
.filter{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; margin-bottom:1.2rem; }
.filter__btn{ font-weight:700; font-size:.88rem; letter-spacing:.04em; color:var(--kin-soft); background:transparent; cursor:pointer; border:1px solid rgba(201,162,75,.4); border-radius:40px; padding:.55em 1.3em; transition:.35s var(--ease); }
.filter__btn:hover{ color:var(--kinari); border-color:var(--kin); }
.filter__btn.is-active{ background:var(--aka); border-color:var(--aka-bright); color:#fff; box-shadow:0 10px 26px -12px rgba(226,58,46,.8); }
.mtools{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.search{ display:flex; align-items:center; gap:.5em; background:rgba(255,255,255,.05); border:1px solid rgba(201,162,75,.35); border-radius:40px; padding:.5em 1.1em; min-width:230px; }
.search svg{ width:1.1em; height:1.1em; color:var(--kin-soft); flex:0 0 auto; }
.search input{ background:transparent; border:none; outline:none; color:var(--kinari); font-family:var(--ff-gothic); font-size:.92rem; width:100%; }
.search input::placeholder{ color:rgba(221,193,140,.6); }
.sortsel{ background:rgba(255,255,255,.05); border:1px solid rgba(201,162,75,.35); border-radius:40px; padding:.5em 1.1em; color:var(--kinari); font-family:var(--ff-gothic); font-size:.9rem; cursor:pointer; }
.sortsel option{ color:#222; }
/* dish grid */
.dishes{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.dish{ background:linear-gradient(180deg,#221a16,#1a1310); border:1px solid rgba(201,162,75,.18); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); transform-style:preserve-3d; animation:dishIn .5s var(--ease) both; }
.dish:hover{ border-color:rgba(201,162,75,.55); box-shadow:0 34px 60px -34px rgba(0,0,0,.95); }
@keyframes dishIn{ from{ opacity:0; transform:translateY(18px) scale(.97);} to{ opacity:1; transform:none;} }
.dish__img{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.dish__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.dish:hover .dish__img img{ transform:scale(1.09); }
.dish__img::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(20,16,14,.7)); }
.dish__badges{ position:absolute; top:.7rem; left:.7rem; z-index:2; display:flex; flex-direction:column; gap:.3rem; align-items:flex-start; }
.dish__badge{ font-family:var(--ff-mincho); font-size:.72rem; letter-spacing:.06em; color:#fff; background:var(--aka); padding:.22em .7em; border-radius:2px; box-shadow:0 6px 16px -8px rgba(0,0,0,.8); }
.dish__badge--gold{ background:linear-gradient(180deg,var(--kin-bright),var(--kin)); color:var(--sumi); }
.dish__fav{ position:absolute; top:.6rem; right:.6rem; z-index:3; width:32px; height:32px; border-radius:50%; border:none; background:rgba(20,16,14,.55); color:#fff; font-size:1rem; cursor:pointer; display:grid; place-items:center; transition:.3s var(--ease); backdrop-filter:blur(4px); }
.dish__fav:hover{ background:rgba(192,39,31,.6); transform:scale(1.12); }
.dish__fav.is-fav{ color:#ff5a4d; background:rgba(20,16,14,.7); }
.dish__body{ padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.dish__name{ font-family:var(--ff-mincho); font-size:1.12rem; color:var(--kinari); margin-bottom:.4rem; line-height:1.4; }
.dish__name span{ font-size:.76rem; color:var(--kin-soft); margin-left:.3em; }
.dish__desc{ font-size:.84rem; color:#c2b49f; line-height:1.8; flex:1; }
.dish__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:1rem; }
.dish__price{ font-family:var(--ff-latin); font-weight:600; font-size:1.45rem; color:var(--kin-bright); letter-spacing:.02em; }
.dish__more{ font-size:.74rem; letter-spacing:.1em; color:var(--kin-soft); border:1px solid rgba(201,162,75,.4); border-radius:20px; padding:.25em .9em; }
.dish:hover .dish__more{ background:var(--kin); color:var(--sumi); border-color:var(--kin); transition:.3s var(--ease); }
.meibutsu__empty{ text-align:center; color:var(--kin-soft); margin:2rem 0; }
.meibutsu__note{ max-width:var(--maxw); margin:2.4rem auto 0; text-align:center; font-size:.76rem; color:var(--kin-soft); opacity:.75; }

/* gauges */
.gauges{ display:flex; flex-direction:column; gap:.5rem; margin:1.2rem 0; }
.gauge{ display:grid; grid-template-columns:4.5em 1fr; align-items:center; gap:.7rem; }
.gauge span{ font-size:.8rem; color:var(--ink-soft); }
.gauge__bar{ height:7px; background:rgba(124,23,20,.12); border-radius:6px; overflow:hidden; }
.gauge__fill{ height:100%; width:0; border-radius:6px; background:linear-gradient(90deg,var(--aka),var(--kin)); transition:width .9s var(--ease); }

/* ===== OCCASIONS ===== */
.occasion{ background:linear-gradient(180deg,#fffaf0,var(--kinari-2)); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.occasion__lead{ max-width:720px; margin:-1rem auto 3rem; text-align:center; font-family:var(--ff-mincho); font-size:clamp(1.02rem,2.4vw,1.3rem); line-height:1.9; color:var(--ink-soft); }
.occasion__grid{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.occasion-card{ background:#fff; border:1px solid rgba(124,23,20,.14); border-radius:8px; overflow:hidden; box-shadow:0 24px 50px -38px rgba(42,33,28,.75); transition:transform .4s var(--ease),box-shadow .4s var(--ease); }
.occasion-card:hover{ transform:translateY(-7px); box-shadow:0 36px 60px -38px rgba(42,33,28,.8); }
.occasion-card>img{ width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .8s var(--ease); }
.occasion-card:hover>img{ transform:scale(1.04); }
.occasion-card__body{ padding:1.5rem 1.45rem 1.7rem; }
.occasion-card__body>span{ display:inline-block; color:var(--aka); font-size:.74rem; font-weight:700; letter-spacing:.1em; border:1px solid rgba(192,39,31,.35); border-radius:30px; padding:.2em .75em; margin-bottom:.75rem; }
.occasion-card h3{ font-family:var(--ff-mincho); font-size:1.25rem; color:var(--aka-deep); margin-bottom:.65rem; }
.occasion-card p{ color:var(--ink-soft); font-size:.9rem; line-height:1.9; }
.occasion__cta,.course__cta{ max-width:var(--maxw); margin:2.6rem auto 0; display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* ===== COURSE ===== */
.course{ background:radial-gradient(70% 50% at 85% 100%, rgba(201,162,75,.12), transparent 60%), var(--kinari); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.course__lead{ text-align:center; font-family:var(--ff-mincho); font-size:clamp(1.05rem,2.6vw,1.4rem); color:var(--ink); line-height:1.9; margin-bottom:3rem; }
.courses{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.ckard{ background:linear-gradient(180deg,#fff,var(--cream-soft)); border:1px solid rgba(124,23,20,.14); border-radius:6px; padding:2rem 1.7rem; position:relative; overflow:hidden;
  box-shadow:0 18px 44px -34px rgba(42,33,28,.7); transition:transform .4s var(--ease), box-shadow .4s var(--ease); display:flex; flex-direction:column; }
.ckard:hover{ transform:translateY(-8px); box-shadow:0 34px 60px -34px rgba(42,33,28,.6); }
.ckard--feature{ background:linear-gradient(180deg,#241712,#160f0c); color:var(--kinari); border-color:var(--kin); box-shadow:0 26px 60px -30px rgba(124,23,20,.7); }
.ckard--feature::before{ content:"記念"; position:absolute; top:14px; right:-34px; transform:rotate(45deg); background:var(--aka); color:#fff; font-family:var(--ff-mincho); font-size:.72rem; letter-spacing:.18em; padding:.3em 3em; box-shadow:0 6px 14px -8px rgba(0,0,0,.7); }
.ckard__tag{ display:inline-block; align-self:flex-start; font-family:var(--ff-mincho); font-size:.78rem; letter-spacing:.1em; color:var(--aka); border:1px solid currentColor; padding:.18em .7em; border-radius:2px; margin-bottom:.9rem; }
.ckard--feature .ckard__tag{ color:var(--kin-bright); }
.ckard__name{ font-family:var(--ff-mincho); font-size:1.4rem; margin-bottom:.6rem; letter-spacing:.02em; }
.ckard--feature .ckard__name{ color:var(--kinari); }
.ckard__bushou{ font-size:.74rem; letter-spacing:.1em; color:var(--ink-soft); margin-bottom:.8rem; }
.ckard--feature .ckard__bushou{ color:var(--kin-soft); }
.ckard__price{ display:flex; align-items:baseline; gap:.15em; margin-bottom:.3rem; color:var(--aka-deep); }
.ckard--feature .ckard__price{ color:var(--kin-bright); }
.ckard__price b{ font-family:var(--ff-latin); font-weight:600; font-size:2.7rem; line-height:1; }
.ckard__price span{ font-size:.85rem; font-weight:700; }
.ckard__food{ font-size:.78rem; color:var(--ink-soft); margin-bottom:1rem; }
.ckard--feature .ckard__food{ color:#cbbda7; }
.ckard__meta{ list-style:none; margin:0; padding:1rem 0 0; border-top:1px dashed rgba(124,23,20,.25); display:flex; flex-direction:column; gap:.5rem; margin-top:auto; }
.ckard--feature .ckard__meta{ border-color:rgba(201,162,75,.3); }
.ckard__meta li{ font-size:.86rem; padding-left:1.5em; position:relative; }
.ckard__meta li::before{ content:"伍"; position:absolute; left:0; font-family:var(--ff-brush); color:var(--aka); font-size:.95em; }
.ckard--feature .ckard__meta li::before{ color:var(--kin-bright); }
.course-matrix{ max-width:var(--maxw); margin:3rem auto 0; border:1px solid rgba(124,23,20,.16); border-radius:8px; background:#fffaf0; padding:1.5rem; }
.course-matrix__head{ display:flex; justify-content:space-between; gap:1rem; align-items:end; margin-bottom:1rem; }
.course-matrix__head h3{ font-family:var(--ff-mincho); color:var(--aka-deep); font-size:1.5rem; margin-top:.25rem; }
.course-matrix__head p{ color:var(--ink-soft); font-size:.82rem; }
.course-matrix__scroll{ overflow-x:auto; }
.course-matrix table{ width:100%; min-width:620px; border-collapse:collapse; font-size:.84rem; }
.course-matrix th,.course-matrix td{ padding:.75rem .8rem; text-align:left; border-bottom:1px solid rgba(124,23,20,.12); }
.course-matrix thead th{ color:var(--aka-deep); font-size:.72rem; letter-spacing:.08em; white-space:nowrap; background:rgba(192,39,31,.06); }
.course-matrix tbody th{ font-family:var(--ff-mincho); color:var(--ink); white-space:nowrap; }
.course-matrix tbody td:nth-child(2){ color:var(--aka); font-weight:700; }
.course-matrix tbody td small{ display:block; color:var(--ink-soft); font-size:.68rem; font-weight:400; margin-top:.2rem; }
.course-matrix__note{ margin-top:.9rem; color:var(--ink-soft); font-size:.72rem; }

/* simulator */
.sim{ max-width:var(--maxw); margin:3.4rem auto 0; background:linear-gradient(160deg,#241712,#160f0c); color:var(--kinari); border:1px solid rgba(201,162,75,.3); border-radius:12px; padding:clamp(1.6rem,4vw,2.6rem); box-shadow:0 30px 70px -40px rgba(0,0,0,.8); }
.sim__head{ display:flex; align-items:center; gap:1.1rem; margin-bottom:1.6rem; }
.sim__kanji{ font-family:var(--ff-brush); font-size:1.8rem; color:var(--sumi); width:2.2em; height:2.2em; flex:0 0 auto; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%,var(--kin-bright),var(--kin)); border-radius:50%; }
.sim__title{ font-family:var(--ff-mincho); font-size:1.4rem; color:var(--kin-bright); }
.sim__sub{ font-size:.86rem; color:#cbbda7; }
.sim__grid{ display:grid; grid-template-columns:1.3fr 1.3fr auto; gap:1.4rem; align-items:center; margin-bottom:1.6rem; }
.sim__field{ display:flex; flex-direction:column; gap:.5rem; }
.sim__field>span{ font-size:.85rem; color:var(--kin-soft); letter-spacing:.05em; }
.sim__field>span b{ font-family:var(--ff-latin); font-size:1.3rem; color:var(--kin-bright); }
.sim__field select{ background:rgba(255,255,255,.06); border:1px solid rgba(201,162,75,.4); border-radius:4px; color:var(--kinari); padding:.7em .9em; font-family:var(--ff-gothic); font-size:.92rem; cursor:pointer; }
.sim__field select option{ color:#222; }
.sim input[type=range]{ -webkit-appearance:none; appearance:none; width:100%; height:5px; border-radius:6px; background:rgba(201,162,75,.25); outline:none; }
.sim input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:radial-gradient(circle at 35% 30%,var(--aka-bright),var(--aka-deep)); border:2px solid var(--kin-bright); cursor:pointer; box-shadow:0 4px 12px -4px rgba(0,0,0,.7); }
.sim input[type=range]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:var(--aka); border:2px solid var(--kin-bright); cursor:pointer; }
.sim__check{ grid-column:1 / -1; display:flex; align-items:center; gap:.6em; font-size:.86rem; color:#cbbda7; cursor:pointer; }
.sim__check input{ width:18px; height:18px; accent-color:var(--aka); }
.sim__out{ display:grid; grid-template-columns:1fr 1fr auto; gap:1rem; align-items:center; }
.sim__out-box{ background:rgba(255,255,255,.05); border:1px solid rgba(201,162,75,.25); border-radius:8px; padding:1rem 1.2rem; text-align:center; }
.sim__out-box--total{ background:rgba(192,39,31,.15); border-color:rgba(226,58,46,.4); }
.sim__out-label{ display:block; font-size:.76rem; letter-spacing:.1em; color:var(--kin-soft); margin-bottom:.2rem; }
.sim__out-num{ font-size:1rem; color:var(--kinari); } .sim__out-num b{ font-family:var(--ff-latin); font-weight:600; font-size:2rem; color:var(--kin-bright); }
.sim__out-box--total .sim__out-num b{ color:#ff6a5d; }
.sim__cta{ height:100%; }
.sim__note{ font-size:.74rem; color:var(--kin-soft); opacity:.7; margin-top:1rem; }

/* ===== DRINK ===== */
.drink{ background:radial-gradient(60% 50% at 50% 0%, #2a1812 0%, transparent 55%), linear-gradient(180deg,var(--sumi),var(--sumi-2)); color:var(--kinari); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.drink__lead{ text-align:center; font-size:1.05rem; color:#cbbda7; margin-bottom:2.6rem; } .drink__lead b{ font-family:var(--ff-latin); font-size:1.5rem; color:var(--kin-bright); }
.drinks{ max-width:var(--maxw); margin:0 auto 2rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.dcard{ position:relative; margin:0; border-radius:8px; overflow:hidden; aspect-ratio:3/4; border:1px solid rgba(201,162,75,.2); }
.dcard--wide{ grid-column:span 2; aspect-ratio:auto; }
.dcard img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.dcard:hover img{ transform:scale(1.06); }
.dcard::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(20,16,14,.88)); }
.dcard figcaption{ position:absolute; left:1.1rem; right:1.1rem; bottom:1rem; z-index:2; }
.dcard figcaption b{ display:block; font-family:var(--ff-mincho); font-size:1.05rem; color:var(--kin-bright); margin-bottom:.2rem; }
.dcard figcaption span{ font-size:.8rem; color:#d8cbb5; line-height:1.6; }
.nomi{ max-width:680px; margin:0 auto; display:flex; flex-direction:column; gap:.2rem; }
.nomi__row{ display:flex; justify-content:space-between; align-items:center; padding:.9rem 1.2rem; border-bottom:1px solid rgba(201,162,75,.18); font-size:.95rem; }
.nomi__row b{ font-family:var(--ff-latin); font-size:1.4rem; color:var(--kin-bright); }
.nomi__row--accent{ background:rgba(192,39,31,.14); border-radius:6px; border-bottom:none; }
.nomi__row--accent b{ color:#ff6a5d; }

/* ===== SPACE ===== */
.space{ background:radial-gradient(80% 50% at 80% 0%, rgba(201,162,75,.1), transparent 60%), var(--kinari); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.space__lead{ max-width:680px; margin:0 auto 2.4rem; text-align:center; font-size:1rem; color:var(--ink-soft); line-height:2; }
.gal-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem; margin-bottom:2.2rem; }
.gal-tab{ font-weight:700; font-size:.88rem; letter-spacing:.04em; color:var(--ink-soft); background:transparent; border:1px solid rgba(124,23,20,.3); border-radius:40px; padding:.5em 1.3em; cursor:pointer; transition:.35s var(--ease); }
.gal-tab:hover{ color:var(--aka-deep); border-color:var(--aka); }
.gal-tab.is-active{ background:var(--aka); border-color:var(--aka); color:#fff; }
.gallery{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; grid-auto-flow:dense; }
.gcell{ position:relative; margin:0; overflow:hidden; border-radius:6px; cursor:pointer; aspect-ratio:1; border:1px solid rgba(124,23,20,.15); animation:dishIn .5s var(--ease) both; box-shadow:0 14px 30px -24px rgba(42,33,28,.6); }
.gcell--wide{ grid-column:span 2; } .gcell--tall{ grid-row:span 2; aspect-ratio:auto; }
.gcell img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gcell:hover img{ transform:scale(1.08); }
.gcell::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(20,16,14,.8)); }
.gcell figcaption{ position:absolute; left:1rem; right:1rem; bottom:.9rem; z-index:2; font-size:.82rem; color:#e6dcc8; transform:translateY(6px); transition:transform .45s var(--ease); }
.gcell:hover figcaption{ transform:none; }
.gcell figcaption b{ display:block; font-family:var(--ff-mincho); font-size:1.02rem; color:var(--kin-bright); margin-bottom:.1rem; }
.gcell__zoom{ position:absolute; top:.7rem; right:.7rem; z-index:2; width:30px; height:30px; border-radius:50%; background:rgba(20,16,14,.5); color:#fff; display:grid; place-items:center; font-size:.9rem; opacity:0; transition:.3s var(--ease); }
.gcell:hover .gcell__zoom{ opacity:1; }
.space-facts{ max-width:var(--maxw); margin:2.8rem auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.space-facts article{ padding:1.4rem; border:1px solid rgba(124,23,20,.15); border-top:3px solid var(--aka); background:rgba(255,255,255,.55); }
.space-facts b{ font-family:var(--ff-latin); color:var(--aka); font-size:1.5rem; }
.space-facts h3{ font-family:var(--ff-mincho); color:var(--aka-deep); margin:.25rem 0 .35rem; }
.space-facts p{ color:var(--ink-soft); font-size:.85rem; line-height:1.8; }

/* ===== FAQ ===== */
.faq{ background:var(--kinari-2); padding:clamp(4.5rem,9vw,8rem) clamp(1.2rem,5vw,3rem); }
.faq__list{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem; }
.faq details{ background:rgba(255,255,255,.65); border:1px solid rgba(124,23,20,.14); border-radius:6px; padding:0 1.2rem; }
.faq summary{ cursor:pointer; list-style:none; padding:1rem 2rem 1rem 0; position:relative; font-family:var(--ff-mincho); color:var(--aka-deep); font-weight:700; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"＋"; position:absolute; right:0; color:var(--aka); font-family:var(--ff-gothic); }
.faq details[open] summary::after{ content:"−"; }
.faq details p{ padding:0 0 1rem; color:var(--ink-soft); font-size:.88rem; line-height:1.9; }

/* ===== ACCESS ===== */
.access{ display:grid; grid-template-columns:1fr 1fr; background:var(--kinari); }
.access__photo{ position:relative; min-height:440px; overflow:hidden; }
.access__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.access__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(20,16,14,.15),rgba(20,16,14,.55)); }
.access__photo-cap{ position:absolute; left:2rem; bottom:2rem; z-index:2; color:var(--kinari); }
.access__photo-cap span{ display:block; font-size:.72rem; font-family:var(--ff-gothic); font-weight:700; letter-spacing:.3em; color:var(--kin-bright); margin-bottom:.4rem; }
.access__photo-big{ font-family:var(--ff-brush) !important; font-size:clamp(1.8rem,3vw,2.6rem) !important; letter-spacing:.1em; text-shadow:0 2px 16px rgba(0,0,0,.7); color:var(--kinari) !important; }
.access__panel{ padding:clamp(3rem,6vw,5rem) clamp(1.4rem,5vw,4rem); }
.route{ margin-bottom:2.4rem; }
.route__line{ position:relative; height:2px; background:repeating-linear-gradient(90deg,var(--aka) 0 8px, transparent 8px 16px); margin:0 8% 1rem; border-radius:2px; }
.route__dot{ position:absolute; top:50%; left:0; width:16px; height:16px; border-radius:50%; background:var(--aka); border:2px solid var(--kinari); transform:translate(-50%,-50%); box-shadow:0 0 0 4px rgba(192,39,31,.2); animation:walk 4s var(--ease) infinite; }
@keyframes walk{ 0%{ left:0; } 45%{ left:100%; } 50%{ left:100%; } 95%{ left:0; } 100%{ left:0; } }
.route__stops{ display:flex; justify-content:space-between; align-items:flex-start; }
.route__stop{ display:flex; flex-direction:column; text-align:center; max-width:42%; }
.route__stop b{ font-family:var(--ff-mincho); color:var(--aka-deep); font-size:1rem; }
.route__stop i{ font-style:normal; font-size:.74rem; color:var(--ink-soft); }
.route__stop--end b{ color:var(--aka); }
.route__mid{ font-size:.78rem; color:var(--ink-soft); letter-spacing:.1em; align-self:center; padding-top:.4rem; }
.info{ margin:0 0 2.2rem; }
.info>div{ display:grid; grid-template-columns:6.5em 1fr; gap:1rem; padding:.9rem 0; border-bottom:1px solid rgba(124,23,20,.14); }
.info dt{ font-family:var(--ff-mincho); font-weight:600; color:var(--aka-deep); font-size:.92rem; letter-spacing:.06em; }
.info dd{ margin:0; font-size:.92rem; color:var(--ink); line-height:1.7; display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.info dd a[href^="tel"]{ color:var(--aka); font-family:var(--ff-latin); font-weight:600; font-size:1.3rem; letter-spacing:.03em; border-bottom:1px solid currentColor; }
.copy{ font-size:.66rem; letter-spacing:.08em; color:var(--ink-soft); background:transparent; border:1px solid rgba(124,23,20,.3); border-radius:20px; padding:.2em .8em; cursor:pointer; transition:.3s var(--ease); }
.copy:hover{ background:var(--aka); color:#fff; border-color:var(--aka); }
.copy.copied{ background:var(--kin); color:var(--sumi); border-color:var(--kin); }
.access__cta{ display:flex; gap:1rem; flex-wrap:wrap; }
.access__map{ grid-column:1 / -1; height:420px; border-top:3px solid var(--aka); }
.access__map iframe{ width:100%; height:100%; border:0; filter:saturate(.9) contrast(1.02); }

/* ===== FOOTER ===== */
.ftr{ background:var(--sumi); color:var(--kinari); padding:clamp(3rem,6vw,4.5rem) clamp(1.4rem,5vw,4rem) 2rem; }
.ftr__top{ max-width:var(--maxw); margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; padding-bottom:2.4rem; border-bottom:1px solid rgba(201,162,75,.22); }
.ftr__brand{ display:flex; flex-direction:column; gap:.4rem; }
.ftr__seal{ font-family:var(--ff-brush); font-size:1.5rem; color:var(--kinari); width:2.1em; height:2.1em; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%,var(--aka-bright),var(--aka-deep)); border-radius:50%; box-shadow:inset 0 0 0 2px rgba(255,255,255,.18); margin-bottom:.4rem; }
.ftr__logo{ width:clamp(96px,12vw,120px); height:auto; border-radius:12px; margin-bottom:.5rem;
  box-shadow:0 12px 30px -12px rgba(0,0,0,.7), inset 0 0 0 1px rgba(201,162,75,.4); }
.ftr__name{ font-family:var(--ff-brush); font-size:1.1rem; letter-spacing:.3em; color:var(--kin-soft); margin-bottom:.3rem; } .ftr__name i{ font-style:normal; }
.ftr__tag{ font-size:.8rem; color:var(--kin-soft); letter-spacing:.1em; }
.ftr__links{ display:flex; flex-direction:column; gap:.7rem; text-align:right; }
.ftr__links a{ font-size:.92rem; color:var(--kinari); letter-spacing:.05em; transition:color .3s; }
.ftr__links a:first-child{ font-family:var(--ff-latin); font-weight:600; font-size:1.15rem; color:var(--kin-bright); }
.ftr__links a:hover{ color:var(--kin-bright); }
.ftr__bottom{ max-width:var(--maxw); margin:1.8rem auto 0; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.78rem; color:var(--kin-soft); letter-spacing:.08em; }

/* ===== MOBILE STICKY CTA ===== */
.mbar{ position:fixed; left:0; right:0; bottom:0; z-index:900; display:none; gap:1px; background:rgba(201,162,75,.4); transform:translateY(110%); transition:transform .5s var(--ease); }
.mbar.is-show{ transform:none; }
.mbar__btn{ flex:1; display:flex; align-items:center; justify-content:center; gap:.5em; padding:1.05rem; font-weight:700; font-size:1rem; letter-spacing:.06em; }
.mbar__btn svg{ width:1.15em; height:1.15em; fill:currentColor; }
.mbar__btn--call{ background:var(--aka); color:#fff; } .mbar__btn--net{ background:var(--sumi); color:var(--kin-bright); }

/* ===== DISH MODAL ===== */
.modal{ position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center; padding:5vw; opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease; }
.modal.is-open{ opacity:1; visibility:visible; }
.modal__backdrop{ position:absolute; inset:0; background:rgba(12,9,8,.86); backdrop-filter:blur(3px); }
.modal__card{ position:relative; z-index:2; width:min(880px,100%); max-height:88vh; overflow:auto; display:grid; grid-template-columns:1fr 1fr; background:linear-gradient(180deg,#221a16,#1a1310); border:1px solid rgba(201,162,75,.4); border-radius:10px; box-shadow:0 50px 100px -40px #000; transform:scale(.94); transition:transform .4s var(--ease); }
.modal.is-open .modal__card{ transform:scale(1); }
.modal__close{ position:absolute; top:.6rem; right:.8rem; z-index:5; font-size:2rem; line-height:1; color:var(--kinari); background:rgba(0,0,0,.3); border:none; width:40px; height:40px; border-radius:50%; cursor:pointer; transition:.3s var(--ease); }
.modal__close:hover{ background:var(--aka); transform:rotate(90deg); }
.modal__img{ position:relative; min-height:260px; }
.modal__img img{ width:100%; height:100%; object-fit:cover; }
.modal__badges{ position:absolute; top:.8rem; left:.8rem; display:flex; flex-direction:column; gap:.3rem; align-items:flex-start; }
.modal__badges b{ font-family:var(--ff-mincho); font-size:.74rem; color:#fff; background:var(--aka); padding:.2em .7em; border-radius:2px; }
.modal__body{ padding:2rem 1.9rem; color:var(--kinari); display:flex; flex-direction:column; }
.modal__name{ font-family:var(--ff-mincho); font-size:1.5rem; color:var(--kinari); margin-bottom:.2rem; }
.modal__en{ font-family:var(--ff-latin); font-style:italic; color:var(--kin-soft); font-size:.95rem; margin-bottom:.8rem; }
.modal__price{ font-family:var(--ff-latin); font-weight:600; font-size:2rem; color:var(--kin-bright); margin-bottom:.8rem; }
.modal__desc{ font-size:.92rem; color:#cbbda7; line-height:1.95; }
.gauges .gauge span{ color:var(--kin-soft); }
.modal__cta{ display:flex; gap:.8rem; margin-top:auto; padding-top:1.2rem; flex-wrap:wrap; }
.modal__fav{ color:var(--kin-soft); } .modal__fav.is-fav{ color:#ff5a4d; border-color:#ff5a4d; }
.modal__fav.is-fav::after{ background:#ff5a4d; }

/* ===== LIGHTBOX ===== */
.lightbox{ position:fixed; inset:0; z-index:9999; background:rgba(12,9,8,.95); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; padding:4vh 5vw; opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease; }
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__fig{ margin:0; display:flex; flex-direction:column; align-items:center; gap:.8rem; max-width:90vw; }
.lightbox__fig img{ max-width:88vw; max-height:64vh; border-radius:4px; box-shadow:0 0 0 1px var(--kin),0 40px 90px -40px #000; transform:scale(.96); transition:transform .45s var(--ease); }
.lightbox.is-open .lightbox__fig img{ transform:scale(1); }
.lightbox__cap{ color:var(--kinari); font-family:var(--ff-mincho); letter-spacing:.1em; }
.lightbox__close{ position:absolute; top:1.6rem; right:2rem; font-size:2.4rem; line-height:1; color:var(--kinari); background:none; border:none; cursor:pointer; transition:.3s; }
.lightbox__close:hover{ color:var(--kin-bright); transform:rotate(90deg); }
.lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; background:rgba(201,162,75,.12); border:1px solid rgba(201,162,75,.4); color:var(--kinari); font-size:1.8rem; cursor:pointer; transition:.3s var(--ease); z-index:3; }
.lightbox__nav:hover{ background:var(--kin); color:var(--sumi); }
.lightbox__nav--prev{ left:2vw; } .lightbox__nav--next{ right:2vw; }
.lightbox__thumbs{ display:flex; gap:.5rem; max-width:90vw; overflow-x:auto; padding:.4rem; }
.lightbox__thumbs img{ width:64px; height:48px; object-fit:cover; border-radius:3px; opacity:.45; cursor:pointer; border:2px solid transparent; transition:.3s var(--ease); flex:0 0 auto; }
.lightbox__thumbs img.is-on{ opacity:1; border-color:var(--kin-bright); }

/* ===== BACK TO TOP ===== */
.totop{ position:fixed; right:1.6rem; bottom:6.5rem; z-index:850; width:48px; height:48px; border-radius:50%; border:1px solid var(--kin); background:rgba(20,16,14,.9); color:var(--kinari); font-family:var(--ff-brush); font-size:1.3rem; cursor:pointer; opacity:0; transform:translateY(14px); pointer-events:none; transition:.4s var(--ease); }
.totop.is-show{ opacity:1; transform:none; pointer-events:auto; }
.totop:hover{ background:var(--aka); border-color:var(--aka-bright); transform:translateY(-3px); }

/* ===== SCROLL REVEAL ===== */
[data-rise]{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-rise].is-in{ opacity:1; transform:none; }
[data-rise-d="1"]{ transition-delay:.1s; } [data-rise-d="2"]{ transition-delay:.2s; } [data-rise-d="3"]{ transition-delay:.3s; }
[data-rise-d="4"]{ transition-delay:.4s; } [data-rise-d="5"]{ transition-delay:.5s; } [data-rise-d="6"]{ transition-delay:.6s; } [data-rise-d="7"]{ transition-delay:.7s; }

/* ===== RESPONSIVE ===== */
.sp{ display:none; }
@media (max-width:1100px){ .sidenav{ display:none; } }
@media (max-width:1024px){
  .hdr__nav,.hdr__cta,.hdr__right .lang{ display:none; } .hdr__burger{ display:flex; }
  .hero__inner{ grid-template-columns:1fr; gap:2.4rem; text-align:center; }
  .hero__copy{ order:1; } .hero__plate{ order:2; } .hero__title{ justify-content:center; } .hero__cta{ justify-content:center; }
  .pillars{ grid-template-columns:repeat(2,1fr); }
  .dishes{ grid-template-columns:repeat(2,1fr); }
  .courses{ grid-template-columns:repeat(2,1fr); }
  .reserve-quick{ grid-template-columns:1fr 1fr; }
  .reserve-quick__actions{ flex-direction:row; }
  .meibutsu__editorial{ grid-template-columns:1fr; }
  .course-matrix__head{ align-items:flex-start; flex-direction:column; }
  .faq__list{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:repeat(2,1fr); gap:2.5rem 0; }
  .timeline::before{ display:none; }
  .drinks{ grid-template-columns:repeat(2,1fr); } .dcard--wide{ grid-column:span 2; }
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .sim__grid{ grid-template-columns:1fr; } .sim__out{ grid-template-columns:1fr 1fr; } .sim__cta{ grid-column:1 / -1; }
  .access{ grid-template-columns:1fr; } .access__photo{ min-height:300px; }
  .modal__card{ grid-template-columns:1fr; } .modal__img{ min-height:200px; max-height:34vh; }
}
@media (max-width:760px){
  .hdr__nav,.hdr__cta,.hdr__right .lang{ display:none; } .hdr__burger{ display:flex; }
  .hero{ padding-top:6rem; } .hero__marquee{ display:none; } .hero__scroll{ display:none; }
  .conversion-strip__inner{ grid-template-columns:repeat(2,1fr); }
  .conversion-strip__inner>div:nth-child(2)::after{ display:none; }
  .conversion-strip__inner>div{ min-height:100px; padding:1.1rem .7rem; }
  .conversion-strip b{ font-size:2rem; }
  .reserve-quick{ margin:.8rem 1.2rem 0; grid-template-columns:1fr; padding:1.2rem; }
  .reserve-quick__actions{ flex-direction:row; }
  .reserve-quick__actions .btn{ flex:1; }
  .featured-dishes{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; }
  .featured-dish--wide{ grid-column:span 2; }
  .featured-dish--tall{ grid-row:span 1; }
  .occasion__grid{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:repeat(2,1fr); } .gcell--wide{ grid-column:span 2; } .gcell--tall{ grid-row:span 1; aspect-ratio:1; }
  .stats{ grid-template-columns:repeat(2,1fr); gap:2rem 1rem; } .stat:nth-child(2)::after{ display:none; }
  .mbar{ display:flex; } .totop{ bottom:5rem; right:1rem; }
  .ftr__top{ flex-direction:column; align-items:flex-start; } .ftr__links{ text-align:left; }
  .ftr{ padding-bottom:6rem; }
  .sp{ display:inline; }
  .drinks{ grid-template-columns:1fr; } .dcard--wide{ grid-column:span 1; aspect-ratio:16/10; } .dcard{ aspect-ratio:16/10; }
}
@media (max-width:520px){
  .pillars,.dishes,.courses,.timeline{ grid-template-columns:1fr; }
  .brand-proof{ grid-template-columns:1fr; }
  .brand-proof>div:not(:last-child)::after{ right:18%; left:18%; top:auto; bottom:0; width:auto; height:1px; }
  .hero__wordmark{ max-width:72vw; }
  .access__panel{ padding-bottom:7rem; }
  .sim__out{ grid-template-columns:1fr; }
  .omikuji{ flex-direction:column; align-items:flex-start; }
  .reserve-quick__facts{ grid-template-columns:1fr; gap:.5rem; }
  .reserve-quick__facts div{ border-left:0; border-top:1px solid rgba(201,162,75,.28); padding:.5rem 0 0; }
  .reserve-quick__actions{ flex-direction:column; }
  .meibutsu__editorial-copy{ padding:1.2rem; }
  .space-facts{ grid-template-columns:1fr; }
}
/* concept wordmark — faint watermark override (must come after [data-rise].is-in) */
.concept__wordmark.is-in{ opacity:.22 !important; transform:none; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  [data-rise]{ opacity:1; transform:none; }
}
