/* Layout: 暖簾をくぐると一膳が出てくる。外は藍の夜、内は生成りの昼。見出しは縦書きで、品書きのように右肩へ。 */
:root{
  --ai-950:#0B1728; --ai-900:#12223A; --ai-800:#182D4C; --ai-700:#1F3A63; --ai-500:#4D6C96; --ai-200:#C5D1E0;
  --kinari:#F1E9DA; --kinari-2:#E6DAC4; --washi:#FAF5EC; --white:#FFFDF8;
  --sumi:#1D1B19; --sumi-2:#4A443F; --sumi-3:#7B726A;
  --daidai:#E3742F; --daidai-2:#B4521A; --akari:#F7B46A; --akari-2:#FFE3B8;
  --f-brush:"Yuji Syuku","Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;
  --f-mincho:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;
  --f-gothic:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP","Noto Sans CJK JP",sans-serif;
  --f-num:"Cormorant Garamond","Times New Roman",serif;
  --fs-2xl:clamp(1.7rem, 1.1rem + 2.5vw, 2.9rem);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  --spring:linear(0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 85.5%, 1);
  --gutter:clamp(16px, 5vw, 64px);
  --maxw:1180px;
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .24 0 0 0 0 .14 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --noise-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color-scheme:light;
}
@property --glow{ syntax:'<percentage>'; inherits:false; initial-value:44%; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:88px; overflow-x:clip; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--kinari); color:var(--sumi); font:400 16px/1.95 var(--f-gothic); letter-spacing:.04em; overflow-x:clip; -webkit-font-smoothing:antialiased; }
::selection{ background:var(--akari); color:var(--ai-950); }
:focus-visible{ outline:2px solid var(--daidai); outline-offset:3px; border-radius:6px; }
a{ color:inherit; }
img,svg{ max-width:100%; }
.wrap{ box-sizing:content-box; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.paper{ background-color:var(--kinari); background-image:var(--noise); }
.eyebrow{ display:inline-flex; align-items:center; gap:.8em; margin:0 0 1.1rem; font:500 .78rem/1.4 var(--f-gothic); letter-spacing:.3em; color:var(--daidai-2); }
.eyebrow::before{ content:""; width:1.8em; height:2px; border-radius:2px; background:currentColor; }
.eyebrow--light{ color:var(--akari); }
.sec-title{ margin:0; font:700 var(--fs-2xl)/1.5 var(--f-mincho); letter-spacing:.06em; text-wrap:balance; font-feature-settings:"palt"; color:var(--sumi); }
.sec-title--light{ color:var(--washi); }

/* ---------- 文字の“にじみ”アニメーション ---------- */
.ch{ display:inline-block; }
html.anim [data-split]:not(.is-in) .ch{ opacity:0; }
[data-split].is-in .ch{ animation:ink 1s var(--ease-out) both; animation-delay:calc(var(--d, 0ms) + var(--i) * 46ms); }
@keyframes ink{ from{ opacity:0; filter:blur(10px); transform:translateY(.45em) scale(1.14); } 55%{ opacity:1; } to{ opacity:1; filter:blur(0); transform:none; } }
html.anim [data-reveal]:not(.is-in){ opacity:0; transform:translateY(28px); }
[data-reveal]{ transition:opacity 1s var(--ease-out), transform 1.1s var(--ease-out); transition-delay:var(--d, 0ms); }

/* ---------- ボタン ---------- */
.btn{ text-wrap:balance; position:relative; isolation:isolate; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:.6em; padding:1em 1.7em; border:0; border-radius:999px; font:700 1rem/1.35 var(--f-gothic); letter-spacing:.08em; text-decoration:none; text-align:center; cursor:pointer; translate:var(--tx, 0px) var(--ty, 0px); transition:transform .6s var(--spring), translate .6s var(--spring), background-color .3s, box-shadow .3s, color .3s; -webkit-tap-highlight-color:transparent; }
.btn svg{ width:1.3em; height:1.3em; flex:none; }
.btn::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.5) 50%, transparent 70%); transform:translateX(-120%); transition:transform .9s var(--ease-out); }
.btn:hover::after{ transform:translateX(120%); }
.btn:active{ transform:scale(.96); }
.btn--line{ background:var(--daidai); color:var(--ai-950); box-shadow:0 14px 30px -14px rgba(227,116,47,.85), inset 0 -3px 0 rgba(0,0,0,.14); }
.btn--line:hover{ background:var(--akari); }
.btn--ai{ background:var(--ai-700); color:var(--washi); box-shadow:inset 0 -3px 0 rgba(0,0,0,.2); }
.btn--ai:hover{ background:var(--ai-800); }
.btn--ghost{ background:transparent; color:inherit; box-shadow:inset 0 0 0 1.5px currentColor; }
.btn--lg{ width:100%; padding:1.15em 2em; font-size:1.08rem; }
.btn--sm{ padding:.72em 1.2em; font-size:.86rem; }
.chip{ appearance:none; border:1px solid currentColor; background:transparent; color:inherit; border-radius:999px; padding:.5em 1em; font:700 .78rem/1 var(--f-gothic); letter-spacing:.1em; cursor:pointer; }

/* ---------- ローディング：茶碗を描く → 暖簾がおりる ---------- */
.loader{ display:none; }
html.js .loader{ position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:var(--kinari) var(--noise); color:var(--sumi); animation:failsafe .5s 7s forwards; cursor:pointer; }
@keyframes failsafe{ to{ opacity:0; visibility:hidden; } }
.loader__stage{ display:grid; justify-items:center; gap:8px; }
.loader__bowl{ width:clamp(120px, 22vw, 168px); height:auto; overflow:visible; }
.ld-line{ fill:transparent; stroke:var(--sumi); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:100 100; stroke-dashoffset:100; }
.loader.is-run .ld-bowl{ animation:draw 1s var(--ease-io) .1s forwards, fillAi .7s ease 1s forwards; }
.loader.is-run .ld-rice{ animation:draw .8s var(--ease-io) .45s forwards, fillRice .7s ease 1.05s forwards; }
.loader.is-run .ld-foot{ animation:draw .5s var(--ease-io) .9s forwards, fillAi .7s ease 1.1s forwards; }
.loader.is-quick .ld-line{ animation-duration:.01s !important; animation-delay:0s !important; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes fillAi{ to{ fill:var(--ai-700); } }
@keyframes fillRice{ to{ fill:var(--white); } }
.ld-steam path{ fill:none; stroke:var(--ai-500); stroke-width:3.2; stroke-linecap:round; stroke-dasharray:30 200; stroke-dashoffset:30; opacity:0; }
.loader.is-run .ld-steam path{ animation:steam 2.4s ease-in-out 1.1s infinite; }
.loader.is-run .ld-steam path:nth-child(2){ animation-delay:1.5s; }
.loader.is-run .ld-steam path:nth-child(3){ animation-delay:1.9s; }
.loader__logo{ margin:4px 0 0; font:400 clamp(2.6rem, 8vw, 3.6rem)/1.1 var(--f-brush); letter-spacing:.14em; color:var(--sumi); opacity:0; }
.loader.is-run .loader__logo{ animation:logoIn 1.2s var(--ease-out) .75s forwards; }
.loader.is-quick .loader__logo{ animation-delay:0s; animation-duration:.4s; }
@keyframes logoIn{ from{ opacity:0; filter:blur(12px); letter-spacing:.5em; } to{ opacity:1; filter:blur(0); letter-spacing:.14em; } }
.loader__msg{ margin:0; display:flex; gap:1em; align-items:baseline; font:500 .8rem/1 var(--f-gothic); letter-spacing:.28em; color:var(--sumi-3); }
.loader__pct b{ display:inline-block; min-width:2.2ch; text-align:right; font:600 1.15rem/1 var(--f-num); letter-spacing:.02em; color:var(--sumi); font-variant-numeric:tabular-nums lining-nums; }

.noren{ position:fixed; inset:0; z-index:110; display:grid; grid-template-columns:repeat(3, 1fr); visibility:hidden; pointer-events:none; }
.noren.is-on{ visibility:visible; pointer-events:auto; }
.noren__rod{ position:absolute; z-index:2; top:0; left:-2%; right:-2%; height:14px; background:linear-gradient(#6A452C, #3A2416); box-shadow:0 3px 8px rgba(0,0,0,.35); transform:translateY(-100%); }
.noren__panel{ position:relative; display:grid; justify-items:center; align-content:start; padding-top:24vh; background:var(--ai-700) var(--noise-light); color:var(--washi); border-inline:1px solid rgba(0,0,0,.28); transform:translateY(-105%); transform-origin:50% 0; box-shadow:inset 0 -40px 50px -40px rgba(0,0,0,.4); }
.noren__panel::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:12px; background:rgba(0,0,0,.2); }
.noren__panel span{ font:400 clamp(3.4rem, 11vw, 8rem)/1 var(--f-brush); }
.noren__panel small{ margin-top:2.2rem; writing-mode:vertical-rl; font:500 .8rem/1 var(--f-gothic); letter-spacing:.5em; opacity:.75; }

/* ---------- ティザー：ヘッダー ---------- */
.t-header{ position:fixed; top:0; left:0; right:0; z-index:50; padding-top:env(safe-area-inset-top, 0px); color:var(--washi); transition:background-color .4s, box-shadow .4s; }
.t-header.is-scrolled{ background:rgba(11,23,40,.9); background:color-mix(in srgb, var(--ai-950) 88%, transparent); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(255,255,255,.06); }
.t-header__in{ display:flex; align-items:center; justify-content:space-between; gap:16px; height:72px; }
.t-header__right{ display:flex; align-items:center; gap:18px; }
.t-header__open{ margin:0; font:600 1.05rem/1 var(--f-num); letter-spacing:.14em; color:var(--akari-2); }
.logo{ display:inline-flex; align-items:center; gap:.6em; color:inherit; text-decoration:none; }
.logo__mark{ display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--daidai); color:var(--ai-950); font:400 1.35rem/1 var(--f-brush); }
.logo__name{ font:400 1.6rem/1 var(--f-brush); letter-spacing:.1em; }
.progress{ position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--daidai); transform:scaleX(0); transform-origin:0 50%; }

/* ---------- ティザー：ヒーロー ---------- */
.hero{ --glow:44%; position:relative; overflow:clip; color:var(--washi); padding-block:clamp(96px, 8vw, 116px) clamp(84px, 8vw, 112px);
  background:radial-gradient(56% var(--glow) at 30% 56%, rgba(247,180,106,.22), transparent 72%), linear-gradient(180deg, var(--ai-950) 0%, var(--ai-900) 55%, var(--ai-800) 100%);
  animation:breathe 7s ease-in-out infinite; }
@keyframes breathe{ 50%{ --glow:54%; } }
.hero::before{ content:""; position:absolute; inset:0; background-image:var(--noise-light); pointer-events:none; }
.hero__grid{ position:relative; display:grid; grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr) auto; grid-template-areas:"date tray copy"; gap:36px clamp(28px, 3.4vw, 56px); align-items:center; }
.hero__copy{ grid-area:copy; justify-self:center; align-self:start; margin:0; writing-mode:vertical-rl; inline-size:max-content; font-weight:400; }
.hero__l1{ display:block; white-space:nowrap; font:400 clamp(3.9rem, 1.2rem + 5.6vw, 6.8rem)/1.12 var(--f-brush); letter-spacing:.06em; color:var(--washi); }
.hero__l2{ display:block; white-space:nowrap; margin-block-start:.6rem; padding-inline-start:1.5em; font:700 clamp(1.9rem, .9rem + 2.4vw, 3.3rem)/1.3 var(--f-mincho); letter-spacing:.14em; color:var(--akari-2); }
.hero__tray{ grid-area:tray; position:relative; width:100%; max-width:560px; margin:0; justify-self:center; }
.hero__tray::before{ content:""; position:absolute; inset:6% 4%; border-radius:50%; background:radial-gradient(closest-side, rgba(247,180,106,.34), transparent); filter:blur(14px); animation:flick 5s ease-in-out infinite; }
.tray-svg{ position:relative; display:block; width:100%; height:auto; overflow:visible; transform:rotate(-5deg); }
.dish{ transform-box:fill-box; transform-origin:center; }
html.anim :is(.hero__tray, .r-hero__visual):not(.is-in) .dish{ opacity:0; }
:is(.hero__tray, .r-hero__visual).is-in .dish{ animation:dishPop .85s var(--spring) both; animation-delay:calc(.2s + var(--i) * .13s); }
@keyframes dishPop{ from{ opacity:0; transform:translateY(-22px) scale(.55); } 30%{ opacity:1; } to{ opacity:1; transform:none; } }
.steam path{ fill:none; stroke:rgba(255,247,234,.72); stroke-width:5; stroke-linecap:round; stroke-dasharray:34 200; stroke-dashoffset:34; animation:steam 3.8s ease-in-out infinite; }
.steam path:nth-child(2){ animation-delay:1.3s; }
.steam path:nth-child(3){ animation-delay:2.5s; }
.steam--ink path{ stroke:rgba(77,108,150,.55); stroke-width:3.5; }
@keyframes steam{ 0%{ stroke-dashoffset:34; opacity:0; } 25%{ opacity:1; } 100%{ stroke-dashoffset:-100; opacity:0; } }

.hero__date{ grid-area:date; position:relative; display:grid; gap:14px; justify-items:start; }
.hero__place{ margin:0; font:500 .95rem/1.6 var(--f-gothic); letter-spacing:.24em; color:var(--ai-200); }
.hero__open{ position:relative; width:fit-content; margin:0; display:flex; align-items:center; gap:.02em; font:600 clamp(3.2rem, 1.4rem + 3.6vw, 5.2rem)/.95 var(--f-num); letter-spacing:.01em; color:var(--washi); font-variant-numeric:lining-nums; }
.hero__open .dot{ color:var(--daidai); }
.hero__open .wd{ display:grid; place-items:center; width:2rem; height:2rem; margin-left:.4em; border:1px solid currentColor; border-radius:50%; font:700 .95rem/1 var(--f-mincho); color:var(--akari-2); }
.hanko{ position:absolute; right:-3.6rem; top:-2.7rem; display:grid; place-items:center; width:clamp(3.6rem, 3rem + 1.6vw, 4.6rem); aspect-ratio:1; border:3px solid var(--daidai); border-radius:50%; color:var(--daidai); font:400 clamp(1.1rem, .9rem + .5vw, 1.4rem)/1 var(--f-brush); writing-mode:vertical-rl; letter-spacing:.06em; rotate:-14deg; box-shadow:inset 0 0 0 3px var(--ai-900), inset 0 0 0 4px rgba(227,116,47,.5); }
html.anim .hero:not(.is-in) .hanko{ opacity:0; }
.hero.is-in .hanko{ animation:stamp .75s var(--spring) 1.55s both; }
.hero.is-in .hero__open{ animation:thud .35s ease-out 1.75s; }
@keyframes stamp{ 0%{ opacity:0; transform:scale(2.6) rotate(-28deg); } 40%{ opacity:1; } 100%{ opacity:1; transform:none; } }
@keyframes thud{ 40%{ transform:translateY(3px); } }
.hero__lead{ margin:0; font:700 clamp(1.05rem, .9rem + .6vw, 1.35rem)/1.7 var(--f-mincho); letter-spacing:.08em; }
.countdown{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem 1rem; padding:14px 22px; border:1px solid rgba(197,209,224,.26); border-radius:16px; background:rgba(11,23,40,.38); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.countdown__label{ font:500 .85rem/1 var(--f-gothic); letter-spacing:.22em; color:var(--ai-200); }
.countdown__days{ display:inline-flex; align-items:baseline; gap:.3em; color:var(--akari); }
.countdown__days small{ font:700 1.1rem/1 var(--f-mincho); color:var(--washi); }
.countdown__clock{ font:500 1.4rem/1 var(--f-num); letter-spacing:.06em; color:var(--washi); font-variant-numeric:tabular-nums lining-nums; }
.countdown__today{ font:700 1.2rem/1.4 var(--f-mincho); letter-spacing:.12em; color:var(--akari-2); }
.countdown.is-today > :not(.countdown__today){ display:none; }
.odo{ display:inline-flex; height:1em; overflow:hidden; font:600 clamp(2.6rem, 2rem + 2vw, 3.6rem)/1 var(--f-num); font-variant-numeric:tabular-nums lining-nums; }
.odo__col{ display:block; height:1em; overflow:hidden; }
.odo__strip{ display:flex; flex-direction:column; transition:transform 1.7s var(--spring); transition-delay:calc(var(--k, 0) * 110ms); }
.odo__strip > span{ display:block; height:1em; line-height:1; }
.hero__cta{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 22px; margin-top:4px; }
.link-key{ color:var(--akari-2); font:500 .92rem/1.4 var(--f-gothic); letter-spacing:.12em; text-decoration:none; border-bottom:1px solid rgba(255,227,184,.4); padding-bottom:2px; transition:border-color .3s; }
.link-key:hover{ border-color:var(--akari-2); }
#i-lantern{ overflow:visible; }
.lantern{ position:absolute; top:0; left:56%; z-index:1; width:clamp(66px, 7.4vw, 108px); transform-origin:50% 0; animation:sway 6.5s ease-in-out infinite; pointer-events:none; }
.lantern svg{ display:block; width:100%; height:auto; overflow:visible; }
.lantern__glow{ position:absolute; left:50%; top:58%; width:440%; aspect-ratio:1; translate:-50% -50%; border-radius:50%; background:radial-gradient(closest-side, rgba(247,180,106,.42), rgba(247,180,106,.1) 48%, transparent); animation:flick 4.2s ease-in-out infinite; }
@keyframes sway{ 0%,100%{ transform:rotate(2.4deg); } 50%{ transform:rotate(-2.4deg); } }
@keyframes flick{ 0%,100%{ opacity:.86; transform:scale(1); } 22%{ opacity:1; } 41%{ opacity:.76; transform:scale(.97); } 63%{ opacity:.96; transform:scale(1.025); } 81%{ opacity:.82; } }
.hero__edge{ position:absolute; left:0; bottom:-1px; width:100%; height:46px; display:block; }
.hero__edge path{ fill:var(--kinari); }

[data-glow]{ --mx:50%; --my:50%; }
[data-glow]::after{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(440px circle at var(--mx) var(--my), rgba(247,180,106,.13), transparent 62%); opacity:0; transition:opacity .6s; }
@media (hover:hover) and (pointer:fine){ [data-glow]:hover::after{ opacity:1; } }

/* ---------- 帯（流れることば） ---------- */
.marquee{ overflow:clip; background:var(--kinari); padding-block:clamp(16px, 2.6vw, 30px); border-bottom:1px solid rgba(29,27,25,.08); }
.marquee__track{ display:flex; width:max-content; align-items:center; }
.marquee__track > *{ flex:none; margin-inline-end:clamp(26px, 3.6vw, 52px); }
.marquee__track span{ font:800 clamp(2.3rem, 1.4rem + 3.8vw, 5rem)/1.15 var(--f-mincho); letter-spacing:.1em; white-space:nowrap; color:transparent; -webkit-text-stroke:1.2px var(--ai-700); }
.marquee__track span.is-fill{ color:var(--daidai); -webkit-text-stroke:0; }
.marquee__track i{ width:.8rem; height:.8rem; border-radius:50%; background:var(--ai-700); }

/* ---------- ゆう膳のこと ---------- */
.concept{ position:relative; overflow:clip; padding-block:clamp(88px, 12vw, 168px); }
.concept::after{ content:"膳"; position:absolute; left:-1vw; bottom:-5vw; font:400 clamp(14rem, 30vw, 28rem)/1 var(--f-brush); color:rgba(31,58,99,.06); pointer-events:none; }
.concept__grid{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:clamp(32px, 8vw, 120px); align-items:start; }
.concept__title{ grid-column:2; grid-row:1; margin:0; writing-mode:vertical-rl; inline-size:max-content; font:700 clamp(2rem, 1.2rem + 3vw, 3.6rem)/1.6 var(--f-mincho); letter-spacing:.12em; color:var(--sumi); }
.concept__title > span{ display:block; white-space:nowrap; }
.concept__title > span + span{ padding-inline-start:2em; }
.concept__body{ grid-column:1; grid-row:1; max-width:34em; justify-self:end; padding-top:clamp(0px, 5vw, 72px); min-width:0; }
.concept__lead{ margin:0 0 1.6em; font:700 clamp(1.2rem, 1rem + .8vw, 1.55rem)/1.9 var(--f-mincho); letter-spacing:.06em; color:var(--ai-900); }
.concept__body p{ margin:0 0 1.4em; color:var(--sumi-2); }

/* ---------- 店名の由来（ベン図） ---------- */
.origin{ position:relative; overflow:clip; padding-block:clamp(80px, 10vw, 140px); background-color:var(--kinari-2); background-image:var(--noise); text-align:center; }
.origin .sec-title{ margin-bottom:clamp(36px, 6vw, 72px); }
.origin__row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(14px, 3vw, 36px); }
.venn{ position:relative; width:min(100%, 500px); aspect-ratio:500/300; view-timeline-name:--venn; }
.venn__c{ position:absolute; top:0; width:60%; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; mix-blend-mode:multiply; }
.venn__c--a{ left:0; background:rgba(31,58,99,.15); border:1.5px solid var(--ai-700); }
.venn__c--b{ right:0; background:rgba(227,116,47,.2); border:1.5px solid var(--daidai-2); }
.venn__txt{ display:grid; justify-items:center; gap:2px; }
.venn__c--a .venn__txt{ transform:translateX(-22%); }
.venn__c--b .venn__txt{ transform:translateX(22%); }
.venn__role{ font:500 .76rem/1.4 var(--f-gothic); letter-spacing:.32em; color:var(--sumi-2); }
.venn__name{ font:700 clamp(1.2rem, .95rem + 1vw, 1.8rem)/1.3 var(--f-mincho); letter-spacing:.1em; color:var(--sumi); }
.venn__name b{ color:var(--daidai-2); font-weight:800; }
.venn__good{ font-size:clamp(.7rem, .65rem + .2vw, .82rem); letter-spacing:.06em; color:var(--sumi-2); line-height:1.6; }
.venn__mid{ position:absolute; left:50%; top:50%; translate:-50% -50%; writing-mode:vertical-rl; font:400 clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem)/1 var(--f-brush); letter-spacing:.1em; color:var(--ai-900); }
.origin__op{ font:500 clamp(1.6rem, 1.2rem + 1vw, 2.2rem)/1 var(--f-mincho); color:var(--sumi-3); }
.origin__zen{ display:grid; justify-items:center; gap:8px; }
.origin__zen b{ font:400 clamp(3.6rem, 2.6rem + 3vw, 5.8rem)/1 var(--f-brush); color:var(--ai-700); }
.origin__zen small{ font-size:.78rem; letter-spacing:.2em; color:var(--sumi-2); }
.origin__name{ display:grid; justify-items:center; gap:8px; }
.origin__name b{ font:400 clamp(3rem, 2rem + 3vw, 5rem)/1 var(--f-brush); letter-spacing:.06em; color:var(--sumi); }
.origin__name small{ font-size:.78rem; letter-spacing:.2em; color:var(--daidai-2); }
.origin__note{ max-width:36em; margin:clamp(36px, 5vw, 56px) auto 0; font:700 clamp(1.05rem, .95rem + .4vw, 1.25rem)/2 var(--f-mincho); letter-spacing:.06em; color:var(--sumi-2); }

/* ---------- 三つのことば ---------- */
.kotoba{ padding-block:clamp(88px, 12vw, 160px); }
.kotoba__list{ list-style:none; margin:clamp(40px, 6vw, 72px) 0 0; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(36px, 4vw, 56px); }
.kotoba__item{ min-width:0; }
.kotoba__item:nth-child(2){ margin-top:clamp(0px, 6vw, 84px); }
.kotoba__item:nth-child(3){ margin-top:clamp(0px, 2.5vw, 32px); }
.kotoba__plate{ display:grid; place-items:center; width:min(100%, 250px); aspect-ratio:1; margin:0 auto 22px; border-radius:50%; background:var(--washi); box-shadow:inset 0 0 0 10px var(--kinari), inset 0 0 0 11px rgba(31,58,99,.22), 0 26px 40px -28px rgba(60,40,20,.5); transition:transform 1s var(--spring); }
.kotoba__item:hover .kotoba__plate{ transform:rotate(-8deg) translateY(-4px); }
.kotoba__plate svg{ width:74%; height:auto; overflow:visible; }
.kotoba__word{ margin:0 0 .5rem; text-align:center; font:400 clamp(2rem, 1.4rem + 1.6vw, 2.8rem)/1.2 var(--f-brush); letter-spacing:.08em; color:var(--ai-700); }
.kotoba__item p{ max-width:22em; margin:0 auto; color:var(--sumi-2); }

/* ---------- お品書き（昼／夜） ---------- */
.menu{ --string:var(--sumi-3); position:relative; overflow:clip; padding-block:clamp(80px, 10vw, 136px); background-color:var(--washi); background-image:var(--noise); color:var(--sumi); }
.menu[data-time="dinner"]{ --string:var(--ai-200); background-color:var(--ai-800); background-image:var(--noise-light); color:var(--washi); }
.menu::before{ content:""; position:absolute; inset:0; background:radial-gradient(40% 50% at 86% 18%, rgba(247,180,106,.22), transparent 70%); opacity:0; pointer-events:none; }
.menu[data-time="dinner"]::before{ opacity:1; }
.menu__grid{ position:relative; display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:clamp(28px, 6vw, 88px); }
.menu__side{ grid-column:2; grid-row:1; display:flex; flex-direction:row-reverse; align-items:flex-start; gap:18px; }
.menu__title{ margin:0; writing-mode:vertical-rl; font:800 clamp(2.4rem, 1.6rem + 3vw, 4.2rem)/1.2 var(--f-mincho); letter-spacing:.24em; }
.menu__sub{ margin:0; padding-top:2.6em; writing-mode:vertical-rl; font:500 .9rem/1.8 var(--f-gothic); letter-spacing:.2em; opacity:.75; }
.menu__main{ grid-column:1; grid-row:1; min-width:0; }
.switch{ position:relative; display:inline-grid; grid-template-columns:1fr 1fr; padding:5px; margin-bottom:30px; border-radius:999px; background:rgba(29,27,25,.06); border:1px solid rgba(29,27,25,.12); }
.menu[data-time="dinner"] .switch{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); }
.switch button{ position:relative; z-index:1; display:flex; align-items:baseline; justify-content:center; gap:.6em; padding:.85em 1.5em; border:0; border-radius:999px; background:none; color:inherit; font:700 1.05rem/1 var(--f-mincho); letter-spacing:.2em; white-space:nowrap; cursor:pointer; transition:color .4s; }
.switch button small{ font:500 .72rem/1 var(--f-gothic); letter-spacing:.12em; opacity:.75; }
.switch button[aria-selected="true"]{ color:var(--ai-950); }
.switch__thumb{ position:absolute; z-index:0; top:5px; bottom:5px; left:5px; width:calc(50% - 5px); border-radius:999px; background:var(--akari); box-shadow:0 6px 18px -8px rgba(227,116,47,.8); transition:transform .7s var(--spring); }
.menu[data-time="dinner"] .switch__thumb{ transform:translateX(100%); }
.menu__lead{ margin:0; font:700 clamp(1.12rem, 1rem + .6vw, 1.45rem)/1.85 var(--f-mincho); letter-spacing:.06em; }
.menu__note{ margin:40px 0 0; font-size:.82rem; letter-spacing:.08em; opacity:.72; }
.fuda{ list-style:none; margin:0; padding:30px 0 6px; display:flex; flex-wrap:wrap; flex-direction:row-reverse; justify-content:flex-end; gap:22px 14px; }
.fuda__item{ position:relative; min-height:13em; padding:1.5em .58em .9em; writing-mode:vertical-rl; font:600 1.22rem/1.5 var(--f-mincho); letter-spacing:.14em; color:var(--sumi); border-radius:6px 6px 3px 3px;
  background:linear-gradient(90deg, rgba(120,80,40,.12), transparent 28%, transparent 72%, rgba(120,80,40,.14)), repeating-linear-gradient(90deg, #EAD3AC 0 5px, #E2C899 5px 6px, #ECD8B4 6px 11px, #E5CDA2 11px 12px);
  box-shadow:0 10px 16px -10px rgba(40,25,10,.55), inset 0 0 0 1px rgba(80,50,20,.18); transform-origin:50% -14px; transition:opacity .6s ease, transform 1s var(--spring); transition-delay:calc(var(--i, 0) * 55ms); }
.fuda__item::before{ content:""; position:absolute; top:.5em; left:50%; width:6px; height:6px; translate:-50% 0; border-radius:50%; background:rgba(29,27,25,.55); }
.fuda__item::after{ content:""; position:absolute; top:-14px; left:50%; width:1.5px; height:calc(14px + .5em + 3px); translate:-50% 0; background:var(--string); }
.fuda__item.is-star{ color:var(--washi); background:linear-gradient(90deg, rgba(0,0,0,.18), transparent 30%, transparent 70%, rgba(0,0,0,.2)), var(--ai-700); }
.fuda__item.is-star::before{ background:rgba(255,255,255,.6); }
.fuda__item em{ position:absolute; left:50%; bottom:-11px; translate:-50% 0; writing-mode:horizontal-tb; padding:.32em .55em; border-radius:4px; background:var(--daidai); color:var(--ai-950); font:700 .68rem/1 var(--f-gothic); font-style:normal; letter-spacing:.1em; white-space:nowrap; }
.fuda__item:hover{ animation:swing 1.3s ease; }
@keyframes swing{ 20%{ transform:rotate(5deg); } 45%{ transform:rotate(-3.5deg); } 70%{ transform:rotate(1.6deg); } 100%{ transform:rotate(0); } }
html.anim .fuda:not(.is-in) .fuda__item{ opacity:0; transform:translateY(-26px) rotate(-7deg); }
.fuda-groups{ display:flex; flex-wrap:wrap; flex-direction:row-reverse; justify-content:flex-end; gap:30px 44px; margin-top:22px; }
.fuda-group{ min-width:0; }
.fuda-group h3{ margin:0; text-align:right; font:700 .82rem/1.4 var(--f-gothic); letter-spacing:.26em; color:var(--daidai-2); }
.menu[data-time="dinner"] .fuda-group h3{ color:var(--akari); }

::view-transition-old(root), ::view-transition-new(root){ animation:none; mix-blend-mode:normal; }
::view-transition-old(menu-board){ animation:none; }
::view-transition-new(menu-board){ animation:vtReveal .9s var(--ease-io) both; mix-blend-mode:normal; }
@keyframes vtReveal{ from{ clip-path:circle(0% at var(--vt-x, 50%) var(--vt-y, 0%)); } to{ clip-path:circle(150% at var(--vt-x, 50%) var(--vt-y, 0%)); } }

/* ---------- ふたり ---------- */
.futari{ padding-block:clamp(88px, 12vw, 160px); }
.futari__grid{ display:grid; grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr); gap:clamp(24px, 4vw, 56px); align-items:start; margin-top:clamp(40px, 6vw, 72px); }
.person{ min-width:0; display:grid; justify-items:center; text-align:center; }
.person__ill{ width:min(100%, 300px); height:auto; overflow:visible; }
.person__role{ margin:18px 0 0; font:500 .8rem/1 var(--f-gothic); letter-spacing:.4em; color:var(--daidai-2); }
.person__name{ margin:8px 0 0; font:700 clamp(1.8rem, 1.4rem + 1.2vw, 2.4rem)/1.2 var(--f-mincho); letter-spacing:.2em; }
.person__good{ margin:12px 0 14px; padding:.35em 1.1em; border-radius:999px; background:rgba(31,58,99,.08); color:var(--ai-700); font:500 .85rem/1.6 var(--f-gothic); letter-spacing:.1em; }
.person__text{ max-width:24em; margin:0; text-align:left; color:var(--sumi-2); }
.futari__mid{ align-self:center; margin:0; padding:14px 12px; writing-mode:vertical-rl; border-left:1px solid rgba(31,58,99,.22); border-right:1px solid rgba(31,58,99,.22); font:700 1.15rem/1.9 var(--f-mincho); letter-spacing:.2em; color:var(--ai-700); }

/* ---------- 支度帖・公式LINE ---------- */
.shitaku{ position:relative; overflow:clip; padding-block:clamp(96px, 12vw, 168px); color:var(--washi); background:radial-gradient(50% 60% at 14% 28%, rgba(247,180,106,.16), transparent 70%), linear-gradient(180deg, var(--ai-900), var(--ai-950)); }
.shitaku::before{ content:""; position:absolute; inset:0; background-image:var(--noise-light); pointer-events:none; }
.shitaku__grid{ position:relative; display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr); gap:clamp(40px, 6vw, 88px); align-items:start; }
.shitaku__head{ min-width:0; }
.shitaku__head > p:not(.eyebrow){ max-width:30em; margin:22px 0 0; color:var(--ai-200); }
.timeline{ position:relative; list-style:none; margin:40px 0 0; padding:0; view-timeline-name:--tl; }
.timeline::before, .timeline::after{ content:""; position:absolute; left:5px; top:30px; bottom:30px; width:2px; border-radius:2px; }
.timeline::before{ background:rgba(197,209,224,.22); }
.timeline::after{ background:linear-gradient(var(--ai-200), var(--daidai)); transform-origin:50% 0; }
.timeline li{ position:relative; display:grid; grid-template-columns:11.5em minmax(0, 1fr); gap:6px 16px; padding:18px 0 18px 32px; }
.timeline li::before{ content:""; position:absolute; z-index:1; left:0; top:27px; width:12px; height:12px; border-radius:50%; border:2px solid var(--ai-200); background:var(--ai-950); }
.timeline li.is-done::before{ background:var(--ai-200); }
.timeline li.is-goal::before{ border-color:var(--daidai); background:var(--daidai); animation:pulse 2.4s ease-out infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(227,116,47,.55); } 100%{ box-shadow:0 0 0 14px rgba(227,116,47,0); } }
.timeline .when{ font:700 1rem/1.6 var(--f-mincho); letter-spacing:.08em; color:var(--akari); }
.timeline .what{ color:var(--washi); }
.timeline .what small{ display:block; color:var(--ai-200); font-size:.82rem; }
.line-card{ position:relative; overflow:hidden; padding:clamp(48px, 5vw, 60px) clamp(22px, 4vw, 48px) clamp(28px, 4vw, 44px); border-radius:24px; background-color:var(--washi); background-image:var(--noise); color:var(--sumi); box-shadow:0 40px 80px -40px rgba(0,0,0,.65); }
.line-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:22px; background:linear-gradient(90deg, transparent calc(33.33% - 1px), rgba(250,245,236,.7) calc(33.33% - 1px) 33.33%, transparent 33.33% calc(66.66% - 1px), rgba(250,245,236,.7) calc(66.66% - 1px) 66.66%, transparent 66.66%), var(--ai-700); }
.line-card h3{ margin:0 0 20px; font:800 clamp(1.35rem, 1.1rem + 1vw, 1.75rem)/1.6 var(--f-mincho); letter-spacing:.06em; color:var(--ai-900); text-wrap:balance; }
.howto{ list-style:none; margin:0 0 26px; padding:0; display:grid; gap:12px; counter-reset:step; }
.howto li{ counter-increment:step; display:grid; grid-template-columns:2.1rem minmax(0, 1fr); gap:12px; align-items:start; color:var(--sumi-2); line-height:1.75; }
.howto li::before{ content:counter(step); display:grid; place-items:center; width:2.1rem; height:2.1rem; border-radius:50%; background:var(--ai-700); color:var(--washi); font:600 1.1rem/1 var(--f-num); }
.howto b{ color:var(--sumi); font-weight:700; }
.line-card__cta{ display:flex; align-items:center; gap:18px; }
.line-card__cta .btn{ flex:1; }
.qr{ flex:none; display:grid; justify-items:center; gap:4px; font-size:.72rem; color:var(--sumi-3); }
.qr img{ width:104px; height:104px; border-radius:8px; background:var(--white); padding:6px; }
.aikotoba{ margin-top:28px; padding-top:24px; border-top:1px dashed rgba(29,27,25,.22); }
.aikotoba label{ display:block; font:800 1.1rem/1.5 var(--f-mincho); letter-spacing:.1em; color:var(--ai-900); }
.aikotoba__hint{ margin:2px 0 0; font-size:.82rem; color:var(--sumi-3); }
.aikotoba__row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.aikotoba input{ flex:1 1 14em; min-width:0; padding:.9em 1.1em; border:1.5px solid rgba(29,27,25,.25); border-radius:12px; background:var(--white); color:var(--sumi); font:500 1.05rem/1.4 var(--f-gothic); letter-spacing:.06em; transition:border-color .3s, box-shadow .3s; }
.aikotoba input:focus{ outline:none; border-color:var(--ai-700); box-shadow:0 0 0 4px rgba(31,58,99,.16); }
.aikotoba input::placeholder{ color:var(--sumi-3); }
.btn--key{ flex:0 0 auto; background:var(--ai-700); color:var(--washi); font-family:var(--f-mincho); letter-spacing:.16em; }
.btn--key:hover{ background:var(--ai-900); }
.aikotoba__msg{ min-height:1.7em; margin:10px 0 0; font-size:.88rem; line-height:1.7; color:var(--daidai-2); }
.aikotoba__msg.is-ok{ color:var(--ai-700); font-weight:700; }
.aikotoba.is-shake .aikotoba__row{ animation:shake .5s ease; }
@keyframes shake{ 15%,55%{ transform:translateX(-7px); } 35%,75%{ transform:translateX(6px); } }
.aikotoba__passed{ display:none; margin-top:12px; }
.aikotoba.is-passed .aikotoba__row, .aikotoba.is-passed .aikotoba__hint{ display:none; }
.aikotoba.is-passed .aikotoba__passed{ display:grid; gap:12px; justify-items:start; }
.aikotoba__passed p{ margin:0; color:var(--sumi-2); }

/* ---------- フッター・SP固定CTA・トースト ---------- */
.foot{ padding-block:56px 40px; background:var(--sumi); color:var(--kinari); }
.foot__in{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:28px; }
.foot__logo{ display:block; font:400 2.4rem/1 var(--f-brush); letter-spacing:.1em; color:var(--washi); }
.foot__brand p{ margin:14px 0 0; font-size:.88rem; line-height:1.9; color:var(--kinari-2); }
.foot__links{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 24px; font-size:.88rem; }
.foot__links a{ text-decoration:none; color:var(--kinari); border-bottom:1px solid rgba(241,233,218,.3); }
.foot__copy{ margin-top:36px; font-size:.75rem; letter-spacing:.14em; color:var(--sumi-3); }
.sp-cta{ position:fixed; left:0; right:0; bottom:0; z-index:40; display:none; align-items:center; gap:12px; padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background:rgba(11,23,40,.95); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); color:var(--washi); transform:translateY(110%); transition:transform .55s var(--ease-out); }
.sp-cta.is-on{ transform:none; }
.sp-cta__date{ display:grid; font:600 1.1rem/1.1 var(--f-num); letter-spacing:.06em; }
.sp-cta__date small{ font:500 .66rem/1.3 var(--f-gothic); letter-spacing:.2em; color:var(--ai-200); }
.sp-cta .btn{ flex:1; padding:.9em 1em; font-size:.9rem; }
.toast{ position:fixed; left:50%; bottom:calc(28px + env(safe-area-inset-bottom, 0px)); z-index:130; width:max-content; max-width:min(92vw, 440px); padding:14px 20px; border-radius:14px; background:var(--sumi); color:var(--washi); font-size:.9rem; line-height:1.7; box-shadow:0 20px 40px -18px rgba(0,0,0,.6); translate:-50% 0; opacity:0; transform:translateY(14px); pointer-events:none; transition:opacity .35s, transform .6s var(--spring); }
.toast.is-on{ opacity:1; transform:none; }

/* ---------- 通常サイト ---------- */
.r-banner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:6px 16px; padding:10px var(--gutter); background:var(--daidai); color:var(--ai-950); font-size:.85rem; line-height:1.6; text-align:center; }
.r-banner p{ margin:0; }
.r-banner button{ padding:.6em 1.1em; border:0; border-radius:999px; background:var(--ai-950); color:var(--washi); font:700 .78rem/1 var(--f-gothic); letter-spacing:.08em; cursor:pointer; }
.r-header{ position:sticky; top:env(safe-area-inset-top, 0px); z-index:50; background:rgba(241,233,218,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid rgba(29,27,25,.08); color:var(--sumi); }
.r-header__in{ display:flex; align-items:center; gap:20px; height:70px; }
.r-header .logo__mark{ background:var(--ai-700); color:var(--washi); }
.r-nav{ display:flex; align-items:center; gap:28px; margin:0 0 0 auto; padding:0; border:0; background:none; color:inherit; position:static; inset:auto; width:auto; height:auto; overflow:visible; }
.r-nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:26px; }
.r-nav ul a{ position:relative; text-decoration:none; font:500 .92rem/1 var(--f-gothic); letter-spacing:.14em; }
.r-nav ul a::after{ content:""; position:absolute; left:0; right:0; bottom:-8px; height:2px; border-radius:2px; background:var(--daidai); transform:scaleX(0); transform-origin:0 50%; transition:transform .5s var(--ease-out); }
.r-nav ul a:hover::after{ transform:scaleX(1); }
.r-nav__close, .r-menu-btn{ display:none; }
.r-hero{ position:relative; overflow:clip; padding-block:clamp(48px, 7vw, 104px) clamp(48px, 6vw, 80px); }
.r-hero__grid{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(28px, 5vw, 72px); align-items:center; }
.r-hero__text{ min-width:0; }
.r-hero__title{ margin:0; font:400 clamp(3.4rem, 2rem + 6vw, 7.2rem)/1.08 var(--f-brush); letter-spacing:.04em; color:var(--ai-900); }
.r-hero__lead{ margin:24px 0 0; font:700 clamp(1.05rem, .95rem + .5vw, 1.3rem)/1.9 var(--f-mincho); letter-spacing:.04em; color:var(--sumi-2); }
.r-hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.r-hero__visual{ position:relative; margin:0; display:grid; place-items:center; }
.r-hero__visual::before{ content:""; position:absolute; width:94%; aspect-ratio:1; border-radius:50%; background:radial-gradient(closest-side, var(--ai-700), var(--ai-900)); box-shadow:0 40px 80px -40px rgba(18,34,58,.7); }
.r-hero__visual::after{ content:""; position:absolute; width:70%; aspect-ratio:1; border-radius:50%; background:radial-gradient(closest-side, rgba(247,180,106,.4), transparent); animation:flick 5s ease-in-out infinite; }
.r-hero__visual .tray-svg{ z-index:1; max-width:540px; }
.r-facts{ list-style:none; margin-top:clamp(40px, 6vw, 72px); margin-bottom:0; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); }
.r-facts li{ display:flex; align-items:baseline; gap:16px; padding:22px 4px; border-top:1px solid rgba(29,27,25,.16); border-bottom:1px solid rgba(29,27,25,.16); min-width:0; }
.r-facts li + li{ padding-left:22px; border-left:1px solid rgba(29,27,25,.12); }
.r-facts b{ font:800 1.7rem/1 var(--f-mincho); color:var(--daidai-2); }
.r-facts span{ font-weight:700; line-height:1.6; }
.r-facts small{ display:block; font-weight:400; font-size:.82rem; color:var(--sumi-3); }
.r-news{ padding-block:44px; background:var(--washi); }
.r-news__grid{ display:grid; grid-template-columns:9em minmax(0, 1fr); gap:20px; align-items:start; }
.r-news__h{ margin:0; font:700 1.2rem/1.6 var(--f-mincho); letter-spacing:.2em; }
.r-news__list{ list-style:none; margin:0; padding:0; }
.r-news__list li{ display:grid; grid-template-columns:7.5em minmax(0, 1fr); gap:16px; padding:12px 0; border-bottom:1px dashed rgba(29,27,25,.18); }
.r-news__list time{ font:600 1.02rem/1.9 var(--f-num); letter-spacing:.06em; color:var(--daidai-2); }
.r-news__list p{ margin:0; }
.rule3{ list-style:none; margin:0 0 38px; padding:0; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.rule3 li{ padding:16px 18px; border-radius:14px; border:1px solid rgba(127,127,127,.3); font-size:.9rem; line-height:1.7; min-width:0; }
.rule3 b{ display:block; margin-bottom:2px; font:700 1.05rem/1.5 var(--f-mincho); letter-spacing:.12em; color:var(--daidai-2); }
.menu[data-time="dinner"] .rule3 b{ color:var(--akari); }
.mgroups{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:40px 52px; }
.mgroup{ min-width:0; }
.mgroup h3{ margin:0; font:700 1.25rem/1.5 var(--f-mincho); letter-spacing:.14em; }
.mgroup__desc{ margin:2px 0 8px; font-size:.86rem; opacity:.75; }
.mgroup ul{ list-style:none; margin:0; padding:0; }
.mgroup li{ display:flex; align-items:baseline; gap:10px; padding:10px 0; border-bottom:1px dotted rgba(127,127,127,.45); font-family:var(--f-mincho); font-weight:500; font-size:1.05rem; letter-spacing:.06em; }
.tag{ padding:.25em .6em; border-radius:4px; background:var(--daidai); color:var(--ai-950); font:700 .68rem/1 var(--f-gothic); letter-spacing:.1em; }
.r-seats{ padding-block:clamp(80px, 10vw, 140px); }
.seats{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px; margin-top:clamp(36px, 5vw, 56px); }
.seat{ min-width:0; padding:28px; border-radius:20px; background:var(--washi); box-shadow:0 1px 0 rgba(29,27,25,.05), 0 26px 40px -30px rgba(60,40,20,.45); }
.seat svg{ width:72px; height:72px; }
.seat h3{ margin:10px 0 6px; font:700 1.3rem/1.5 var(--f-mincho); letter-spacing:.12em; }
.seat p{ margin:0; color:var(--sumi-2); font-size:.95rem; }
.marks{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.marks li{ padding:.45em 1.1em; border-radius:999px; border:1px solid rgba(31,58,99,.3); color:var(--ai-700); font-size:.85rem; }
.r-promise{ position:relative; padding-block:clamp(80px, 10vw, 140px); background-color:var(--ai-800); background-image:var(--noise-light); color:var(--washi); }
.promise-list{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:0 48px; }
.promise-list li{ display:grid; grid-template-columns:12px minmax(0, 1fr); gap:16px; padding:22px 0; border-top:1px solid rgba(255,255,255,.14); }
.promise-list li::before{ content:""; width:10px; height:10px; margin-top:.75em; border-radius:50%; background:var(--akari); }
.promise-list h3{ margin:0; font:700 1.2rem/1.6 var(--f-mincho); letter-spacing:.08em; }
.promise-list p{ margin:4px 0 0; color:var(--ai-200); }
.promise-note{ margin:28px 0 0; font-size:.86rem; color:var(--ai-200); }
.r-reserve{ position:relative; overflow:clip; padding-block:clamp(88px, 11vw, 150px); text-align:center; color:var(--washi); background:radial-gradient(50% 60% at 50% 0%, rgba(247,180,106,.2), transparent 70%), var(--ai-950); }
.r-reserve__in{ position:relative; display:grid; justify-items:center; }
.r-reserve__in > p:not(.eyebrow){ max-width:30em; margin:20px 0 30px; color:var(--ai-200); }
.r-reserve__in .btn{ width:min(100%, 420px); }
.r-reserve__lantern{ position:relative; width:64px; margin-bottom:24px; transform-origin:50% 0; animation:sway 6.5s ease-in-out infinite; }
.r-reserve__lantern svg{ display:block; width:100%; height:auto; overflow:visible; }
.r-reserve__tel{ margin:18px 0 0; font-size:.85rem; color:var(--ai-200); }
.r-access{ padding-block:clamp(80px, 10vw, 140px); }
.access{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(28px, 5vw, 56px); align-items:start; margin-top:clamp(36px, 5vw, 56px); }
.info{ display:grid; grid-template-columns:7em minmax(0, 1fr); margin:0; }
.info dt, .info dd{ margin:0; padding:16px 0; border-bottom:1px solid rgba(29,27,25,.12); }
.info dt{ font:700 .98rem/1.8 var(--f-mincho); letter-spacing:.12em; }
.info dd small{ display:block; color:var(--sumi-3); font-size:.82rem; }
.map{ margin:0; display:grid; gap:12px; justify-items:start; }
.map svg{ width:100%; height:auto; border-radius:20px; display:block; }
.map figcaption{ font-size:.78rem; color:var(--sumi-3); }

/* ---------- スクロール連動（scroll-driven animations） ---------- */
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: scroll()){
    .progress{ animation:grow linear both; animation-timeline:scroll(root block); }
    .hero .tray-svg{ animation:trayDrift linear both; animation-timeline:scroll(root block); animation-range:0 100vh; }
    .concept::after{ animation:rise linear both; animation-timeline:view(); }
    .venn__c--a{ animation:vennA linear both; animation-timeline:--venn; animation-range:entry 5% cover 45%; }
    .venn__c--b{ animation:vennB linear both; animation-timeline:--venn; animation-range:entry 5% cover 45%; }
    .venn__mid{ animation:vennMid linear both; animation-timeline:--venn; animation-range:cover 35% cover 50%; }
    .timeline::after{ animation:fillY linear both; animation-timeline:--tl; animation-range:entry 40% cover 60%; }
  }
  @supports not (animation-timeline: scroll()){
    .venn__c, .venn__mid{ transition:transform 1.3s var(--ease-out), opacity 1s ease .4s; }
    html.anim .venn:not(.is-in) .venn__c--a{ transform:translateX(-26%); }
    html.anim .venn:not(.is-in) .venn__c--b{ transform:translateX(26%); }
    html.anim .venn:not(.is-in) .venn__mid{ opacity:0; }
  }
}
@keyframes grow{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes trayDrift{ from{ transform:rotate(-5deg) translateY(0); } to{ transform:rotate(1deg) translateY(70px); } }
@keyframes rise{ from{ transform:translateY(70px); } to{ transform:translateY(-70px); } }
@keyframes vennA{ from{ transform:translateX(-26%); } to{ transform:none; } }
@keyframes vennB{ from{ transform:translateX(26%); } to{ transform:none; } }
@keyframes vennMid{ from{ opacity:0; scale:.6; } to{ opacity:1; scale:1; } }
@keyframes fillY{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }

/* ---------- PC（広い画面だけ） ---------- */
@media (min-width: 861px){
  .sp-only{ display:none !important; }
}

@media (min-width: 861px) and (max-width: 1179px){
  .hero__grid{ grid-template-columns:minmax(0, 1fr) auto; grid-template-areas:"date copy" "tray copy"; }
  .hero__tray{ max-width:460px; justify-self:start; }
  .lantern{ left:62%; }
}

/* ---------- SP ---------- */
@media (max-width: 860px){
  .pc-only{ display:none !important; }
  .t-header__in{ height:62px; }
  .t-header__open, .t-header__line{ display:none; }
  .logo__mark{ width:34px; height:34px; font-size:1.2rem; }
  .logo__name{ font-size:1.4rem; }
  .hero{ padding-block:88px 84px; }
  .hero__grid{ grid-template-columns:minmax(0, 1fr); grid-template-areas:"copy" "date" "tray"; justify-items:center; gap:28px; }
  .hero__tray{ max-width:420px; }
  .hanko{ position:static; margin-left:.35em; }
  .hero__cta .btn{ padding:.95em 1.2em; font-size:.92rem; letter-spacing:.04em; }
  .hero__date{ justify-items:center; text-align:center; }
  .hero__open, .hero__cta{ justify-content:center; }
  .countdown{ justify-content:center; }
  .lantern{ left:auto; right:16px; width:52px; }
  .concept__grid{ grid-template-columns:minmax(0, 1fr); }
  .concept__title{ grid-column:1; grid-row:1; justify-self:end; }
  .concept__body{ grid-column:1; grid-row:2; justify-self:start; padding-top:0; }
  .kotoba__list{ grid-template-columns:minmax(0, 1fr); }
  .kotoba__item:nth-child(n){ margin-top:0; }
  .kotoba__plate{ width:min(72%, 220px); }
  .menu__grid{ grid-template-columns:minmax(0, 1fr); }
  .menu__side{ grid-column:1; grid-row:1; justify-self:end; }
  .menu__main{ grid-column:1; grid-row:2; }
  .fuda{ gap:20px 10px; }
  .fuda__item{ font-size:1rem; min-height:12.6em; }
  .switch{ display:grid; width:100%; }
  .futari__grid{ grid-template-columns:minmax(0, 1fr); }
  .futari__mid{ order:-1; writing-mode:horizontal-tb; justify-self:center; text-align:center; border:0; border-top:1px solid rgba(31,58,99,.22); border-bottom:1px solid rgba(31,58,99,.22); padding:12px 4px; font-size:1.02rem; }
  .shitaku__grid{ grid-template-columns:minmax(0, 1fr); }
  .timeline li{ grid-template-columns:minmax(0, 1fr); }
  .line-card__cta{ display:block; }
  .btn--key{ flex:1 1 100%; }
  .sp-cta{ display:flex; }
  .foot{ padding-bottom:calc(40px + 80px + env(safe-area-inset-bottom, 0px)); }
  .toast{ bottom:calc(92px + env(safe-area-inset-bottom, 0px)); }
  .r-header__in{ height:62px; }
  .r-menu-btn{ display:grid; place-content:center; gap:6px; margin-left:auto; width:46px; height:46px; border:0; border-radius:50%; background:var(--ai-700); cursor:pointer; }
  .r-menu-btn span{ display:block; width:18px; height:2px; border-radius:2px; background:var(--washi); }
  .r-nav{ position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:calc(88px + env(safe-area-inset-top, 0px)) var(--gutter) 40px; flex-direction:column; align-items:stretch; gap:30px; background-color:var(--ai-900); background-image:var(--noise-light); color:var(--washi); overflow:auto;
    display:none; opacity:0; clip-path:inset(0 0 100% 0); pointer-events:none; transition:opacity .4s, clip-path .65s var(--ease-io), display .65s allow-discrete, overlay .65s allow-discrete; }
  .r-nav.is-open{ display:flex; opacity:1; clip-path:none; pointer-events:auto; }
  .r-nav:popover-open{ display:flex; opacity:1; clip-path:inset(0 0 0 0); pointer-events:auto; }
  @starting-style{ .r-nav:popover-open{ opacity:0; clip-path:inset(0 0 100% 0); } }
  .r-nav ul{ flex-direction:column; gap:4px; }
  .r-nav ul a{ display:block; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.12); font:700 1.5rem/1.4 var(--f-mincho); letter-spacing:.2em; }
  .r-nav ul a::after{ display:none; }
  .r-nav__close{ display:block; position:absolute; top:calc(14px + env(safe-area-inset-top, 0px)); right:var(--gutter); padding:.7em 1.2em; border:1px solid rgba(255,255,255,.4); border-radius:999px; background:none; color:inherit; font:700 .85rem/1 var(--f-gothic); letter-spacing:.14em; cursor:pointer; }
  .r-nav .btn{ width:100%; padding:1.1em; font-size:1rem; }
  .r-hero__grid{ grid-template-columns:minmax(0, 1fr); }
  .r-hero__visual{ max-width:440px; justify-self:center; width:100%; }
  .r-facts{ grid-template-columns:minmax(0, 1fr); }
  .r-facts li + li{ padding-left:4px; border-left:0; border-top:0; }
  .r-news__grid, .r-news__list li{ grid-template-columns:minmax(0, 1fr); gap:2px; }
  .rule3, .mgroups, .seats, .promise-list, .access{ grid-template-columns:minmax(0, 1fr); }
  .info{ grid-template-columns:5.5em minmax(0, 1fr); }
}


/* ---------- お品書き：「案」の表示 ---------- */
.menu__side{ position:relative; }
.an-stamp{ position:absolute; top:-50px; right:-20px; display:grid; place-items:center; width:3.4rem; aspect-ratio:1; border:3px solid var(--daidai); border-radius:50%; color:var(--daidai); font:400 1.55rem/1 var(--f-brush); rotate:12deg; box-shadow:inset 0 0 0 3px var(--washi), inset 0 0 0 4px rgba(227,116,47,.5); pointer-events:none; }
.menu[data-time="dinner"] .an-stamp{ box-shadow:inset 0 0 0 3px var(--ai-800), inset 0 0 0 4px rgba(247,180,106,.5); color:var(--akari); border-color:var(--akari); }
.an-note{ max-width:40em; margin:0 0 26px; padding:18px 22px; border-radius:14px; background:rgba(227,116,47,.08); border:1px solid rgba(227,116,47,.35); }
.menu[data-time="dinner"] .an-note{ background:rgba(247,180,106,.08); border-color:rgba(247,180,106,.35); }
.an-note p{ margin:0; font-size:.92rem; line-height:1.85; }
.an-note .an-note__title{ margin-bottom:4px; font:800 1.06rem/1.6 var(--f-mincho); letter-spacing:.06em; color:var(--daidai-2); }
.menu[data-time="dinner"] .an-note__title{ color:var(--akari); }
.an-note__link{ display:inline-block; margin-top:8px; font-weight:700; font-size:.9rem; color:inherit; text-decoration:underline; text-decoration-color:var(--daidai); text-underline-offset:5px; }
.menu__legend{ margin:28px 0 0; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.8rem; opacity:.85; }
.menu__legend > span{ display:inline-flex; align-items:center; gap:.5em; }
.menu__empty{ margin:0; opacity:.7; }
.st{ display:inline-block; padding:.32em .6em; border-radius:4px; font:700 .68rem/1 var(--f-gothic); letter-spacing:.08em; white-space:nowrap; }
.st--trial{ background:rgba(227,116,47,.16); color:var(--daidai-2); }
.st--fixed{ background:var(--ai-700); color:var(--washi); }
.menu[data-time="dinner"] .st--trial{ background:var(--akari); color:var(--ai-950); }
.menu[data-time="dinner"] .st--fixed{ background:var(--washi); color:var(--ai-900); }
.fuda__item{ height:auto; min-height:13em; }
.fuda__item .fuda__st{ position:absolute; right:-10px; top:20px; writing-mode:horizontal-tb; padding:.32em .45em; font-style:normal; font-size:.6rem; rotate:8deg; box-shadow:0 2px 6px rgba(0,0,0,.18); }
.fuda__item .fuda__st.st--trial{ background:var(--daidai); color:var(--ai-950); }
.fuda__item .fuda__st.st--fixed{ background:var(--sumi); color:var(--washi); }
.mgroup li .st{ margin-left:auto; }

/* ---------- メニューリクエスト ---------- */
.request{ position:relative; overflow:clip; padding-block:clamp(88px, 11vw, 150px); background-color:var(--kinari-2); background-image:var(--noise); }
.request__grid{ display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:clamp(32px, 6vw, 80px); align-items:start; }
.request__head{ min-width:0; }
.request .sec-title{ font-size:clamp(1.6rem, 1rem + 2.1vw, 2.45rem); }
.request__lead{ max-width:30em; margin:20px 0 0; color:var(--sumi-2); }
.slot--request{ width:min(64%, 250px); margin-top:30px; }
.slot--request svg, .slot--request img{ display:block; width:100%; height:auto; overflow:visible; }
[data-req-form-host]{ min-width:0; }
.req-form{ display:grid; gap:18px; padding:clamp(22px, 4vw, 40px); border-radius:22px; background-color:var(--washi); background-image:var(--noise); box-shadow:0 30px 60px -36px rgba(60,40,20,.5); }
.req-field{ display:grid; gap:7px; min-width:0; margin:0; padding:0; border:0; }
.req-field label, .req-field legend{ padding:0; font:700 1rem/1.5 var(--f-mincho); letter-spacing:.08em; color:var(--ai-900); }
.req-tag{ display:inline-block; margin-left:.7em; padding:.3em .55em; border-radius:4px; background:rgba(29,27,25,.08); color:var(--sumi-2); font:700 .66rem/1 var(--f-gothic); letter-spacing:.06em; vertical-align:.15em; }
.req-tag--must{ background:var(--daidai); color:var(--ai-950); }
.req-form input[type="text"], .req-form textarea{ width:100%; padding:.85em 1em; border:1.5px solid rgba(29,27,25,.22); border-radius:12px; background:var(--white); color:var(--sumi); font:500 1rem/1.6 var(--f-gothic); letter-spacing:.04em; resize:vertical; transition:border-color .3s, box-shadow .3s; }
.req-form input[type="text"]:focus, .req-form textarea:focus{ outline:none; border-color:var(--ai-700); box-shadow:0 0 0 4px rgba(31,58,99,.16); }
.req-form ::placeholder{ color:var(--sumi-3); }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip-radio{ position:relative; }
.chip-radio input{ position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.chip-radio span{ display:inline-block; padding:.65em 1.15em; border-radius:999px; border:1.5px solid rgba(31,58,99,.3); color:var(--ai-700); font:500 .9rem/1 var(--f-gothic); transition:background-color .3s, color .3s; }
.chip-radio input:checked + span{ background:var(--ai-700); border-color:var(--ai-700); color:var(--washi); }
.chip-radio input:focus-visible + span{ outline:2px solid var(--daidai); outline-offset:2px; }
.req-note{ margin:0; font-size:.8rem; line-height:1.85; color:var(--sumi-3); }
.req-msg{ min-height:1.6em; margin:0; font-size:.88rem; color:var(--daidai-2); }
.req-msg:empty{ display:none; }
.req-msg.is-ok{ color:var(--ai-700); font-weight:700; }
.req-copy{ display:grid; gap:10px; justify-items:start; padding:16px; border-radius:12px; background:rgba(31,58,99,.06); }
.req-copy p{ margin:0; font-size:.85rem; }
.req-copy pre{ margin:0; white-space:pre-wrap; overflow-wrap:anywhere; font:500 .86rem/1.75 var(--f-gothic); color:var(--sumi); }
.board{ margin-top:clamp(56px, 7vw, 88px); }
.board__title{ display:flex; align-items:center; gap:.7em; margin:0 0 22px; font:800 clamp(1.25rem, 1rem + .8vw, 1.6rem)/1.5 var(--f-mincho); letter-spacing:.08em; }
.board__title::before{ content:""; width:12px; height:12px; flex:none; border-radius:50%; background:var(--daidai); box-shadow:0 0 0 6px rgba(227,116,47,.18); }
.board__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap:18px; }
.tanzaku{ position:relative; display:grid; gap:8px; align-content:start; min-width:0; padding:26px 22px 22px; border-radius:6px; border-top:6px solid var(--ai-700); background:var(--white); box-shadow:0 1px 0 rgba(29,27,25,.06), 0 22px 36px -26px rgba(60,40,20,.55); }
.tanzaku[data-status="trial"]{ border-top-color:var(--daidai); }
.tanzaku[data-status="adopted"]{ border-top-color:var(--sumi); }
.tanzaku__st{ justify-self:start; padding:.38em .8em; border-radius:999px; background:rgba(31,58,99,.1); color:var(--ai-700); font:700 .72rem/1 var(--f-gothic); letter-spacing:.1em; }
.tanzaku[data-status="trial"] .tanzaku__st{ background:rgba(227,116,47,.16); color:var(--daidai-2); }
.tanzaku[data-status="adopted"] .tanzaku__st{ background:var(--sumi); color:var(--washi); }
.tanzaku__dish{ margin:4px 0 0; font:800 1.35rem/1.45 var(--f-mincho); letter-spacing:.06em; overflow-wrap:anywhere; }
.tanzaku__voice{ margin:0; font-size:.92rem; color:var(--sumi-2); overflow-wrap:anywhere; }
.tanzaku__from{ margin:0; font-size:.8rem; color:var(--sumi-3); }
.tanzaku__reply{ display:grid; gap:2px; margin-top:6px; padding-top:12px; border-top:1px dashed rgba(29,27,25,.2); font-size:.9rem; overflow-wrap:anywhere; }
.tanzaku__reply b{ font:700 .8rem/1.4 var(--f-mincho); letter-spacing:.1em; color:var(--daidai-2); }
.board__empty{ margin:0; padding:28px; border:1.5px dashed rgba(31,58,99,.3); border-radius:14px; text-align:center; color:var(--sumi-2); }

/* ---------- SNSリンク ---------- */
.sns{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.sns__a{ display:inline-flex; align-items:center; gap:.6em; padding:.45em 1.1em .45em .45em; border:1px solid currentColor; border-radius:999px; color:inherit; text-decoration:none; font:500 .85rem/1 var(--f-gothic); letter-spacing:.06em; transition:background-color .3s, color .3s; }
.sns__a:hover{ background:var(--daidai); border-color:var(--daidai); color:var(--ai-950); }
.sns__mark{ display:grid; place-items:center; width:2em; height:2em; border-radius:50%; background:var(--daidai); color:var(--ai-950); font:700 .68rem/1 var(--f-gothic); letter-spacing:0; }
.sns__a:hover .sns__mark{ background:var(--ai-950); color:var(--akari); }
.sns-row{ margin-top:36px; }
.sns-row p{ margin:0 0 12px; font-size:.85rem; color:var(--ai-200); }
.foot__sub{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:28px; }
.foot__admin{ font-size:.75rem; color:var(--sumi-3); }

/* ---------- イラスト枠 ---------- */
.slot-img{ display:block; width:100%; height:auto; }
.hero__tray .slot-img, .r-hero__visual .slot-img{ position:relative; z-index:1; transition:opacity 1s ease, transform 1.3s var(--spring); }
html.anim :is(.hero__tray, .r-hero__visual):not(.is-in) .slot-img{ opacity:0; transform:translateY(24px) scale(.95); }
.kotoba__plate .slot-img{ width:72%; }
.hero__tray.has-img{ max-width:600px; }
.hero__tray.has-img::before{ inset:4% 0; }
.hero__tray .slot-img{ rotate:-3deg; filter:drop-shadow(0 26px 30px rgba(5,10,20,.5)); }
.hero__tray.is-in .slot-img, .r-hero__visual.is-in .slot-img{ animation:floaty 7s ease-in-out 1.4s infinite; }
@keyframes floaty{ 0%,100%{ translate:0 0; } 50%{ translate:0 -7px; } }
.r-hero__visual .slot-img{ max-width:580px; filter:drop-shadow(0 26px 30px rgba(5,10,20,.45)); }
.r-hero__visual.has-img::before{ width:88%; }
.seat__ill.has-img{ width:min(100%, 200px); margin-bottom:4px; }
.person__ill-wrap{ width:min(100%, 300px); }
.person__ill-wrap > svg, .person__ill-wrap > img{ display:block; width:100%; height:auto; overflow:visible; }
.seat__ill{ width:72px; }
.seat__ill > svg{ display:block; width:72px; height:72px; }
.seat__ill.has-img img{ border-radius:0; }
.person__ill-wrap > img{ -webkit-mask-image:linear-gradient(to bottom, #000 76%, transparent); mask-image:linear-gradient(to bottom, #000 76%, transparent); }
[data-slot="counter"] > img{ -webkit-mask-image:linear-gradient(to right, #000 80%, transparent), linear-gradient(to bottom, #000 80%, transparent); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right, #000 80%, transparent), linear-gradient(to bottom, #000 80%, transparent); mask-composite:intersect; }

/* ---------- 下書きプレビューのバー ---------- */
.pv-bar{ position:fixed; left:50%; bottom:calc(16px + env(safe-area-inset-bottom, 0px)); z-index:125; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px 10px; width:max-content; max-width:calc(100% - 32px); padding:10px 12px 10px 18px; border-radius:22px; background:var(--sumi); color:var(--washi); font-size:.85rem; box-shadow:0 20px 40px -20px rgba(0,0,0,.6); translate:-50% 0; }
.pv-bar .btn--ghost{ color:var(--washi); }

/* ---------- 管理画面 ---------- */
.adm{ min-height:100vh; padding-bottom:96px; background-color:var(--kinari); background-image:var(--noise); color:var(--sumi); }
.adm-wait{ padding-block:80px; color:var(--sumi-2); }
.adm-deny{ display:grid; justify-items:center; gap:12px; padding-block:100px; text-align:center; }
.adm-deny__t{ margin:0; font:800 1.3rem/1.6 var(--f-mincho); }
.adm-bar{ position:sticky; top:env(safe-area-inset-top, 0px); z-index:60; background:rgba(250,245,236,.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid rgba(29,27,25,.1); }
.adm-bar__in{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; padding-block:12px 4px; }
.adm-bar__title{ display:flex; align-items:center; gap:.6em; margin:0; font:800 1.05rem/1 var(--f-mincho); letter-spacing:.1em; }
.adm-bar__title .logo__mark{ width:30px; height:30px; font-size:1rem; background:var(--ai-700); color:var(--washi); }
.adm-bar__state{ margin:0; font-size:.8rem; color:var(--sumi-3); }
.adm-bar__state.is-dirty{ color:var(--daidai-2); font-weight:700; }
.adm-bar__actions{ display:flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.adm-tabs{ display:flex; gap:2px; overflow-x:auto; scrollbar-width:none; }
.adm-tab{ flex:none; padding:12px 14px; border:0; border-bottom:3px solid transparent; background:none; color:var(--sumi-2); font:700 .9rem/1 var(--f-gothic); letter-spacing:.06em; white-space:nowrap; cursor:pointer; }
.adm-tab[aria-selected="true"]{ color:var(--ai-900); border-bottom-color:var(--daidai); }
.adm-badge{ margin-left:.45em; padding:.2em .55em; border-radius:999px; background:var(--daidai); color:var(--ai-950); font-size:.7rem; }
.adm-main{ display:grid; gap:18px; max-width:1000px; padding-block:28px; }
.adm-head h2{ margin:0; font:800 1.5rem/1.4 var(--f-mincho); letter-spacing:.08em; }
.adm-help{ max-width:48em; margin:6px 0 0; font-size:.9rem; line-height:1.8; color:var(--sumi-2); }
.adm-seg{ display:inline-flex; justify-self:start; gap:4px; padding:4px; border-radius:999px; background:rgba(29,27,25,.07); }
.adm-seg button{ padding:.65em 1.2em; border:0; border-radius:999px; background:none; color:var(--sumi-2); font:700 .88rem/1 var(--f-gothic); cursor:pointer; }
.adm-seg button.is-on{ background:var(--ai-700); color:var(--washi); }
.adm-card{ display:grid; gap:12px; min-width:0; padding:20px; border-radius:16px; background:var(--washi); box-shadow:0 1px 0 rgba(29,27,25,.05), 0 16px 30px -26px rgba(60,40,20,.55); }
.adm-card__head{ display:flex; align-items:center; gap:10px; }
.adm-h3{ display:grid; gap:2px; margin:0; font:800 1.1rem/1.5 var(--f-mincho); letter-spacing:.06em; }
.adm-h3 small{ font:400 .82rem/1.6 var(--f-gothic); letter-spacing:.02em; color:var(--sumi-2); }
.adm-in{ width:100%; min-width:0; padding:.62em .85em; border:1.5px solid rgba(29,27,25,.2); border-radius:10px; background:var(--white); color:var(--sumi); font:500 .95rem/1.5 var(--f-gothic); letter-spacing:.02em; }
.adm-in:focus, .adm-sel:focus{ outline:none; border-color:var(--ai-700); box-shadow:0 0 0 3px rgba(31,58,99,.16); }
.adm-in.is-bad{ border-color:var(--daidai-2); background:#FFF3EA; }
.adm-in--title{ font:700 1.1rem/1.4 var(--f-mincho); }
textarea.adm-in{ resize:vertical; }
.adm-sel{ max-width:100%; padding:.58em .7em; border:1.5px solid rgba(29,27,25,.2); border-radius:10px; background:var(--white); color:var(--sumi); font:500 .88rem/1.4 var(--f-gothic); }
.adm-cb{ display:inline-flex; align-items:center; gap:.45em; font-size:.85rem; white-space:nowrap; cursor:pointer; }
.adm-cb input{ width:1.05em; height:1.05em; accent-color:var(--ai-700); }
.adm-ctl{ display:flex; flex:none; gap:4px; }
.adm-ctl--end{ justify-content:flex-end; align-self:end; }
.adm-icon{ width:34px; height:34px; border:1px solid rgba(29,27,25,.18); border-radius:8px; background:var(--white); color:var(--sumi); font:700 .95rem/1 var(--f-gothic); cursor:pointer; }
.adm-icon:hover{ background:var(--kinari); }
.adm-items{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.adm-item{ display:grid; grid-template-columns:minmax(0, 1.6fr) auto auto auto minmax(0, 1fr) auto; gap:8px; align-items:center; min-width:0; padding:8px; border-radius:12px; background:rgba(29,27,25,.035); }
.adm-item.is-hidden > :first-child{ opacity:.5; text-decoration:line-through; }
.adm-item--req{ grid-template-columns:repeat(2, minmax(0, 1fr)); align-items:start; padding:14px; }
.adm-item--sns{ grid-template-columns:auto minmax(0, .6fr) minmax(0, 1.4fr) auto; }
.adm-field{ display:grid; gap:6px; min-width:0; font-size:.85rem; }
.adm-field__l{ font-weight:700; color:var(--sumi-2); font-size:.78rem; letter-spacing:.06em; }
.adm-note{ color:var(--sumi-3); font-size:.78rem; line-height:1.7; }
.adm-add{ display:flex; gap:8px; }
.adm-add > .btn, .adm-row > .btn{ flex:none; white-space:nowrap; }
.adm-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.adm-paste{ display:grid; gap:8px; justify-items:start; }
.adm-details summary{ cursor:pointer; font-weight:700; font-size:.88rem; color:var(--ai-700); }
.adm-grid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; margin-top:12px; }
.adm-inbox{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.adm-req{ display:grid; gap:8px; padding:14px; border:1px solid rgba(29,27,25,.1); border-radius:12px; background:var(--white); }
.adm-req[data-status="new"]{ border-left:4px solid var(--daidai); }
.adm-req[data-status="declined"]{ opacity:.6; }
.adm-req__top{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; }
.adm-req__dish{ font:800 1.1rem/1.4 var(--f-mincho); }
.adm-req__meta{ font-size:.78rem; color:var(--sumi-3); }
.adm-req__voice{ margin:0; font-size:.9rem; color:var(--sumi-2); }
.adm-req__ctl{ display:grid; grid-template-columns:auto minmax(0, 1fr) auto auto; gap:8px; align-items:center; }
.adm-empty{ padding:18px; border:1.5px dashed rgba(29,27,25,.2); border-radius:12px; color:var(--sumi-3); text-align:center; font-size:.9rem; }
.adm-link{ padding:.4em .2em; border:0; background:none; color:var(--ai-700); font:700 .82rem/1.4 var(--f-gothic); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.adm-link--danger{ color:var(--daidai-2); }
.adm-file{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.adm-slots{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap:14px; }
.adm-slot{ display:grid; gap:8px; align-content:start; min-width:0; padding:14px; border:1px solid rgba(29,27,25,.1); border-radius:14px; background:var(--washi); }
.adm-slot__pv{ display:grid; place-items:center; aspect-ratio:4/3; overflow:hidden; border-radius:10px; background-color:var(--kinari-2); background-image:var(--noise); }
.adm-slot__pv > img, .adm-slot__pv > svg{ width:78%; height:auto; max-height:92%; object-fit:contain; overflow:visible; }
.adm-slot__pv .tray-svg{ transform:none; }
.adm-slot__none{ font-size:.8rem; color:var(--sumi-3); }
.adm-slot__name{ margin:0; font-weight:700; font-size:.9rem; }
.adm-slot__meta{ margin:0; font-size:.74rem; color:var(--sumi-3); overflow-wrap:anywhere; }
.adm-qr{ width:72px; height:72px; border-radius:8px; background:var(--white); }
@media (max-width: 860px){
  .request__grid{ grid-template-columns:minmax(0, 1fr); }
  .slot--request{ width:min(48%, 200px); margin-top:22px; }
  .adm-bar__actions{ margin-left:0; }
  .adm-item{ grid-template-columns:minmax(0, 1fr) auto auto; }
  .adm-item > :first-child{ grid-column:1 / -1; }
  .adm-item > .adm-sel:last-of-type{ grid-column:span 2; }
  .adm-item > .adm-ctl{ justify-self:end; }
  .adm-item--req, .adm-grid, .adm-item--sns{ grid-template-columns:minmax(0, 1fr); }
  .adm-req__ctl{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
  .adm-req__ctl > .adm-in{ grid-column:1 / -1; order:-1; }
  .pv-bar{ bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
}

/* ---------- お品書きの値段 ---------- */
.fuda-group__price{ margin-left:.8em; font:600 1rem/1 var(--f-num); letter-spacing:.04em; color:var(--sumi); }
.menu[data-time="dinner"] .fuda-group__price{ color:var(--washi); }
.mgroup__cprice{ margin-left:.8em; font:600 1.15rem/1 var(--f-num); letter-spacing:.02em; color:var(--daidai-2); }
.menu[data-time="dinner"] .mgroup__cprice{ color:var(--akari); }
.mgroup__price{ margin-left:auto; font:600 1rem/1 var(--f-num); white-space:nowrap; }
.mgroup li .st + .mgroup__price{ margin-left:10px; }
.an-note__link + .an-note__link{ margin-left:1.4em; }

/* ---------- 注文票：入口（夜の藍に、白い伝票） ---------- */
.order-cta{ position:relative; overflow:clip; padding-block:clamp(84px, 10vw, 136px); background:radial-gradient(110% 90% at 88% 6%, rgba(247,180,106,.2), transparent 55%), var(--ai-900); background-image:radial-gradient(110% 90% at 88% 6%, rgba(247,180,106,.2), transparent 55%), var(--noise-light); color:var(--washi); }
.order-cta__in{ display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, .9fr); gap:clamp(40px, 6vw, 96px); align-items:center; }
.order-cta .eyebrow{ color:var(--akari); }
.order-cta .sec-title{ color:var(--washi); }
.order-cta__lead{ max-width:30em; margin:22px 0 0; color:var(--ai-200); }
.order-cta__act{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; margin-top:32px; }
.order-cta__btn{ padding:1.1em 2.6em; font-size:1.05rem; }
.order-cta__note{ margin:0; font-size:.8rem; line-height:1.8; color:var(--ai-200); }
.order-cta__slip{ position:relative; justify-self:center; width:min(100%, 340px); padding:30px 28px 30px; border-radius:3px; background:var(--white); color:var(--sumi); font-family:var(--f-mincho); rotate:3deg; box-shadow:0 44px 60px -30px rgba(0,0,0,.7);
  -webkit-mask:radial-gradient(circle at 10px 0, transparent 5px, #000 5.5px) 0 0/20px 100% repeat-x; mask:radial-gradient(circle at 10px 0, transparent 5px, #000 5.5px) 0 0/20px 100% repeat-x; }
.slip-demo__head{ display:flex; justify-content:space-between; align-items:baseline; margin:0; padding-bottom:10px; border-bottom:3px double var(--ai-900); font-weight:800; font-size:1.3rem; letter-spacing:.3em; }
.slip-demo__head span:last-child{ font:400 .95rem/1 var(--f-brush); letter-spacing:.1em; color:var(--ai-700); }
.slip-demo__meta{ margin:10px 0 4px; font-size:.82rem; letter-spacing:.1em; color:var(--sumi-2); }
.slip-demo__list{ list-style:none; margin:0; padding:0; }
.slip-demo__list li{ display:flex; justify-content:space-between; padding:8px 2px; border-bottom:1px dotted rgba(29,27,25,.3); font-size:1rem; }
.slip-demo__list li span:last-child, .slip-demo__pen{ font:400 1.15rem/1 var(--f-brush); color:var(--ai-700); }
.slip-demo__total{ display:flex; justify-content:space-between; align-items:baseline; margin:14px 0 0; padding-top:8px; border-top:2px solid var(--ai-900); font-weight:800; letter-spacing:.2em; }
.slip-demo__pen{ font-size:1.5rem; color:var(--daidai-2); letter-spacing:.04em; }
.slip-demo__stamp, .od-slip__stamp{ position:absolute; top:-8px; right:-6px; display:grid; place-items:center; width:62px; height:62px; border:2.5px solid rgba(180,82,26,.78); border-radius:50%; color:rgba(180,82,26,.85); font:400 1.7rem/1 var(--f-brush); rotate:-14deg; pointer-events:none; }

/* ---------- 注文票の画面 ---------- */
.od{ min-height:100vh; padding-bottom:150px; background-color:var(--kinari); background-image:var(--noise); color:var(--sumi); }
.od-top{ position:sticky; top:0; z-index:50; background:rgba(241,233,218,.95); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid rgba(29,27,25,.1); }
.od-top__in{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:12px; }
.od-back{ display:inline-flex; align-items:center; gap:.5em; font-weight:700; font-size:.88rem; color:var(--ai-700); text-decoration:none; }
.od-top__t{ display:flex; align-items:center; gap:.6em; margin:0; font:800 1rem/1 var(--f-mincho); letter-spacing:.1em; }
.od-top__t .logo__mark{ width:30px; height:30px; font-size:1rem; }
.od-main{ max-width:840px; padding-block:clamp(36px, 6vw, 64px); }
.od-hero{ margin-bottom:clamp(28px, 5vw, 44px); }
.od-hero--sm{ margin-bottom:24px; }
.od-title{ margin:0; font:800 clamp(1.55rem, 1.05rem + 2.2vw, 2.4rem)/1.5 var(--f-mincho); letter-spacing:.06em; text-wrap:balance; color:var(--sumi); }
.od-lead{ max-width:34em; margin:16px 0 0; color:var(--sumi-2); }
.od-facts{ display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0; padding:0; list-style:none; }
.od-facts li{ padding:.45em .95em; border-radius:999px; background:rgba(31,58,99,.08); color:var(--ai-800); font-size:.8rem; font-weight:700; }
.od-form{ display:grid; gap:18px; }
.od-form > *, .od-confirm > *{ min-width:0; }
.od-q{ min-width:0; margin:0; padding:clamp(20px, 4vw, 32px); border:0; border-radius:22px; background-color:var(--washi); background-image:var(--noise); box-shadow:0 24px 50px -36px rgba(60,40,20,.55); animation:odIn .7s var(--ease-out) both; }
@keyframes odIn{ from{ opacity:0; transform:translateY(16px); } }
.od-q__t{ display:flex; align-items:center; gap:.7em; float:left; width:100%; margin:0 0 14px; padding:0; font:800 1.22rem/1.5 var(--f-mincho); letter-spacing:.06em; color:var(--ai-900); }
.od-q__t + *{ clear:both; }
.od-q__n{ display:grid; place-items:center; flex:none; width:2em; height:2em; border-radius:50%; background:var(--ai-700); color:var(--washi); font:400 1rem/1 var(--f-brush); }
.od-hint{ margin:0 0 16px; font-size:.86rem; line-height:1.8; color:var(--sumi-2); }
.od-sub{ display:block; margin:20px 0 8px; font-weight:700; font-size:.86rem; color:var(--sumi-2); }
.od-q textarea, .od-q input[type="text"]{ width:100%; padding:.85em 1em; border:1.5px solid rgba(29,27,25,.22); border-radius:12px; background:var(--white); color:var(--sumi); font:500 1rem/1.6 var(--f-gothic); resize:vertical; }
.od-q textarea:focus, .od-q input[type="text"]:focus{ outline:none; border-color:var(--ai-700); box-shadow:0 0 0 4px rgba(31,58,99,.16); }
.od-chips .chip-radio span{ padding:.7em 1.1em; }
.od-when{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.od-when__opt{ position:relative; cursor:pointer; }
.od-when__opt input{ position:absolute; inset:0; z-index:1; opacity:0; margin:0; cursor:pointer; }
.od-when__body{ display:grid; align-content:start; gap:4px; min-height:136px; padding:18px 20px; border:2px solid transparent; border-radius:16px; transition:border-color .3s, transform .5s var(--spring), box-shadow .3s; }
.od-when__opt--l .od-when__body{ background:radial-gradient(90% 100% at 92% 0%, rgba(247,180,106,.5), transparent 62%), var(--white); color:var(--sumi); box-shadow:inset 0 0 0 1px rgba(29,27,25,.12); }
.od-when__opt--d .od-when__body{ background:radial-gradient(80% 100% at 92% 0%, rgba(247,180,106,.32), transparent 62%), var(--ai-900); color:var(--washi); }
.od-when__body b{ font:400 2.3rem/1.1 var(--f-brush); }
.od-when__body small{ font-weight:700; font-size:.84rem; letter-spacing:.14em; }
.od-when__body em{ font-style:normal; font-size:.8rem; line-height:1.6; opacity:.82; }
.od-when__opt input:checked + .od-when__body{ border-color:var(--daidai); box-shadow:0 18px 30px -20px rgba(227,116,47,.85); transform:translateY(-2px); }
.od-when__opt input:focus-visible + .od-when__body{ outline:2px solid var(--daidai); outline-offset:3px; }
.od-when__opt input:checked + .od-when__body::after{ content:"✓"; position:absolute; top:12px; right:14px; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--daidai); color:var(--ai-950); font:800 .85rem/1 var(--f-gothic); }
.od-n{ display:inline-flex; align-items:center; gap:14px; }
.od-n__v{ min-width:3.2em; text-align:center; font:600 2rem/1 var(--f-num); color:var(--ai-900); }
.od-btn{ display:grid; place-items:center; flex:none; width:46px; height:46px; padding:0; border:1.5px solid rgba(31,58,99,.35); border-radius:50%; background:var(--white); color:var(--ai-700); font:700 1.3rem/1 var(--f-gothic); cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; transition:background-color .2s, transform .4s var(--spring); }
.od-btn:active{ transform:scale(.88); }
.od-btn--sm{ width:38px; height:38px; font-size:1.1rem; }
.od-btn--plus{ border-color:var(--ai-700); background:var(--ai-700); color:var(--washi); }
.od-jump{ position:sticky; top:55px; z-index:5; display:flex; gap:6px; overflow-x:auto; margin:0 calc(-1 * clamp(20px, 4vw, 32px)) 4px; padding:8px clamp(20px, 4vw, 32px); background:var(--washi); scrollbar-width:none; }
.od-jump::-webkit-scrollbar{ display:none; }
.od-jump .chip{ flex:none; border-color:rgba(31,58,99,.3); background:var(--white); color:var(--ai-700); }
.od-cat{ scroll-margin-top:120px; margin-top:24px; }
.od-cat__t{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0; padding-bottom:8px; border-bottom:2px solid var(--ai-900); font:800 1.05rem/1.5 var(--f-mincho); letter-spacing:.08em; }
.od-cat__p{ font:600 1.2rem/1 var(--f-num); color:var(--daidai-2); letter-spacing:.02em; }
.od-cat__d{ margin:8px 0 0; font-size:.8rem; color:var(--sumi-3); }
.od-list{ list-style:none; margin:4px 0 0; padding:0; }
.od-item{ display:grid; grid-template-columns:minmax(0, 1fr) auto auto; align-items:center; gap:6px 14px; padding:10px 8px; border-bottom:1px dotted rgba(29,27,25,.25); border-radius:8px; transition:background-color .3s; }
.od-item.is-on{ background:rgba(247,180,106,.22); }
.od-item__name{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; min-width:0; font:600 1rem/1.5 var(--f-mincho); letter-spacing:.04em; }
.od-item__star{ padding:.22em .5em; border-radius:4px; background:var(--daidai); color:var(--ai-950); font:700 .64rem/1 var(--f-gothic); font-style:normal; }
.od-item__unit{ color:var(--sumi-3); font:500 .74rem/1 var(--f-gothic); }
.od-item__p{ font:600 1.05rem/1 var(--f-num); color:var(--sumi-2); white-space:nowrap; }
.od-stepper{ display:inline-flex; align-items:center; gap:6px; }
.od-qty{ min-width:1.6em; text-align:center; font:600 1.3rem/1 var(--f-num); color:var(--sumi-3); }
.od-item.is-on .od-qty{ color:var(--ai-900); }
.od-qty.is-pop{ animation:odPop .45s var(--spring); }
@keyframes odPop{ 40%{ transform:scale(1.5); color:var(--daidai-2); } }
.od-sum{ position:fixed; left:0; right:0; bottom:0; z-index:60; padding-bottom:env(safe-area-inset-bottom, 0px); background:rgba(11,23,40,.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); color:var(--washi); box-shadow:0 -12px 30px -20px rgba(0,0,0,.55); animation:odUp .6s var(--ease-out) both; }
@keyframes odUp{ from{ transform:translateY(100%); } }
.od-sum__in{ display:flex; align-items:center; justify-content:space-between; gap:14px; max-width:840px; padding-block:12px; }
.od-sum__nums{ display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 12px; min-width:0; margin:0; }
.od-sum__l{ font-size:.76rem; letter-spacing:.2em; color:var(--ai-200); }
.od-sum__total{ font:600 1.9rem/1 var(--f-num); color:var(--akari); letter-spacing:.02em; }
.od-sum__meta{ display:flex; flex-wrap:wrap; gap:4px 12px; font-size:.78rem; color:var(--ai-200); }
.od-sum__btn{ flex:none; }
html[data-view="order"] .toast{ bottom:calc(100px + env(safe-area-inset-bottom, 0px)); }
.od-confirm{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, .85fr); gap:clamp(24px, 5vw, 48px); align-items:start; }
.od-slip{ position:relative; padding:32px 28px 30px; border-radius:3px; background:var(--white); font-family:var(--f-mincho); box-shadow:0 30px 50px -30px rgba(60,40,20,.6);
  -webkit-mask:radial-gradient(circle at 10px 0, transparent 5px, #000 5.5px) 0 0/20px 100% repeat-x; mask:radial-gradient(circle at 10px 0, transparent 5px, #000 5.5px) 0 0/20px 100% repeat-x; }
.od-slip__stamp{ top:14px; right:16px; }
.od-slip__head{ display:flex; align-items:baseline; gap:16px; margin:0; padding-bottom:10px; border-bottom:3px double var(--ai-900); font-weight:800; font-size:1.35rem; letter-spacing:.3em; }
.od-slip__shop{ font:400 1rem/1 var(--f-brush); letter-spacing:.1em; color:var(--ai-700); }
.od-slip__meta{ margin:12px 0 6px; font-size:.86rem; letter-spacing:.08em; color:var(--sumi-2); }
.od-slip__table{ width:100%; border-collapse:collapse; font-size:.98rem; }
.od-slip__table th{ padding:6px 4px; border-bottom:1px solid rgba(29,27,25,.3); font:700 .72rem/1 var(--f-gothic); letter-spacing:.14em; color:var(--sumi-3); text-align:left; }
.od-slip__table td{ padding:9px 4px; border-bottom:1px dotted rgba(29,27,25,.25); }
.od-slip__table .num{ text-align:right; white-space:nowrap; font-family:var(--f-num); font-weight:600; }
.od-slip__total{ display:flex; justify-content:space-between; align-items:baseline; margin:16px 0 0; padding-top:10px; border-top:2px solid var(--ai-900); font-weight:800; letter-spacing:.2em; }
.od-slip__total b{ font:600 1.8rem/1 var(--f-num); letter-spacing:.02em; color:var(--ai-900); }
.od-slip__per{ margin:6px 0 0; text-align:right; font-size:.84rem; color:var(--sumi-2); }
.od-slip__note{ margin:12px 0 0; font:500 .76rem/1.6 var(--f-gothic); color:var(--sumi-3); }
.od-confirm__side{ display:grid; gap:16px; }
.od-send{ display:grid; gap:10px; }
.od-send .btn--lg{ width:100%; }
.od-send__note{ margin:0 0 6px; font-size:.84rem; line-height:1.8; color:var(--sumi-2); }
.od-copy summary{ cursor:pointer; font-weight:700; font-size:.86rem; color:var(--ai-700); }
.od-copy__text{ max-height:220px; overflow:auto; margin:10px 0; padding:12px; border-radius:10px; background:rgba(29,27,25,.05); font:500 .76rem/1.7 var(--f-gothic); white-space:pre-wrap; word-break:break-all; }
.od-edit{ justify-self:start; }
.od-done{ display:grid; justify-items:center; gap:4px; padding-block:clamp(40px, 8vw, 84px); text-align:center; }
.od-done__mark{ margin:0 0 12px; font:400 clamp(2.4rem, 1.6rem + 3vw, 3.6rem)/1 var(--f-brush); color:var(--daidai); animation:ink 1.2s var(--ease-out) both; }
.od-done__btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:28px; }
.od-copy--again{ width:min(100%, 440px); margin-top:26px; text-align:left; }
.od-copy--again .od-send{ margin-top:12px; }

/* ---------- 管理画面：注文票の集計 ---------- */
.adm-main > *, .adm-card > *, [data-ord-live] > *{ min-width:0; }
[data-ord-live]{ display:grid; gap:18px; }
.od-when__body em .nw{ white-space:nowrap; }
.adm-item--menu{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.adm-item--menu > .adm-in:first-child{ flex:1 1 200px; width:auto; }
.adm-item--menu > .adm-ctl{ margin-left:auto; }
.adm-price{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:6px; }
.adm-in--num{ width:6.6em; text-align:right; font-variant-numeric:tabular-nums; }
.adm-in--unit{ width:5.2em; }
.adm-price__u{ font-size:.82rem; color:var(--sumi-2); }
.adm-banner{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding:14px 18px; border:1px solid rgba(180,82,26,.35); border-radius:14px; background:#FFF3EA; font-size:.9rem; }
.adm-banner b{ color:var(--daidai-2); }
.adm-sumgrid{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }
.adm-sumcol{ min-width:0; padding:14px 16px; border:1px solid rgba(29,27,25,.08); border-radius:12px; background:var(--white); }
.adm-sumcol__t{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin:0 0 10px; font:800 1rem/1.4 var(--f-mincho); }
.adm-sumcol__t small{ font:500 .8rem/1 var(--f-gothic); color:var(--sumi-3); }
.adm-stats{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.adm-stat{ min-width:0; }
.adm-stat__l{ margin:0; font-size:.74rem; font-weight:700; letter-spacing:.04em; color:var(--sumi-3); }
.adm-stat__v{ margin:2px 0 0; font:700 1.55rem/1.2 var(--f-gothic); letter-spacing:0; font-variant-numeric:tabular-nums; color:var(--ai-900); }
.adm-stat__s{ margin:2px 0 0; font-size:.74rem; color:var(--sumi-3); }
.adm-barsgrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap:20px 28px; }
.adm-bars{ min-width:0; }
.adm-bars__t{ margin:0 0 8px; font:700 .86rem/1.4 var(--f-gothic); color:var(--sumi-2); }
.adm-bars ul{ display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.adm-bars li{ display:grid; grid-template-columns:minmax(0, 9em) minmax(0, 1fr) 6.2em; align-items:center; gap:8px; font-size:.8rem; }
.adm-bars__l{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--sumi-2); }
.adm-bars__track{ height:12px; overflow:hidden; border-radius:0 4px 4px 0; background:rgba(29,27,25,.06); }
.adm-bars__bar{ display:block; height:100%; border-radius:0 4px 4px 0; background:var(--ai-700); transition:width .6s var(--ease-out); }
.adm-bars li:hover .adm-bars__bar{ background:var(--ai-500); }
.adm-bars__n{ white-space:nowrap; text-align:right; font-variant-numeric:tabular-nums; color:var(--sumi); }
.adm-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.adm-rank{ width:100%; min-width:600px; border-collapse:collapse; font-size:.86rem; }
.adm-rank th{ padding:8px 6px; border-bottom:2px solid var(--ai-900); font:700 .74rem/1.2 var(--f-gothic); color:var(--sumi-2); text-align:left; white-space:nowrap; }
.adm-rank td{ padding:8px 6px; border-bottom:1px solid rgba(29,27,25,.08); vertical-align:middle; }
.adm-rank .num{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.adm-rank__name{ display:block; font-weight:700; }
.adm-rank__cat{ display:block; font-size:.72rem; color:var(--sumi-3); }
.adm-rank__bar{ display:inline-block; width:64px; height:8px; margin-right:8px; vertical-align:middle; border-radius:0 4px 4px 0; background:linear-gradient(90deg, var(--ai-700) var(--w), rgba(29,27,25,.08) var(--w)); }
.adm-rank__sup small{ display:block; font-size:.7rem; color:var(--sumi-3); }
.adm-rank tr.is-drop td{ background:rgba(227,116,47,.07); }
.adm-verdict{ display:inline-flex; align-items:center; gap:.35em; padding:.3em .6em; border-radius:6px; font-weight:700; font-size:.76rem; white-space:nowrap; }
.adm-verdict--keep{ background:rgba(31,58,99,.1); color:var(--ai-800); }
.adm-verdict--mid{ background:rgba(29,27,25,.06); color:var(--sumi-2); }
.adm-verdict--drop{ background:#FFE9D8; color:var(--daidai-2); }
.adm-legend{ display:flex; flex-wrap:wrap; gap:4px 16px; margin:0; font-size:.76rem; color:var(--sumi-3); }
.adm-th{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:.82rem; color:var(--sumi-2); }
.adm-th .adm-in--num{ width:4.6em; }
.adm-fc__grid{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.adm-fc__set{ display:grid; align-content:start; gap:10px; min-width:0; margin:0; padding:12px 14px 14px; border:1px solid rgba(29,27,25,.12); border-radius:12px; background:var(--white); }
.adm-fc__set legend{ padding:0 6px; font:800 .9rem/1 var(--f-mincho); }
.adm-fc__in{ display:grid; gap:4px; }
.adm-fc__table{ width:100%; min-width:500px; border-collapse:collapse; font-size:.88rem; }
.adm-fc__table th, .adm-fc__table td{ padding:8px; border-bottom:1px solid rgba(29,27,25,.08); text-align:left; white-space:nowrap; }
.adm-fc__table thead th{ border-bottom:2px solid var(--ai-900); font:700 .74rem/1.3 var(--f-gothic); color:var(--sumi-2); }
.adm-fc__table .num{ text-align:right; font-variant-numeric:tabular-nums; }
.adm-fc__table td:nth-child(3), .adm-fc__table th.is-mid{ background:rgba(31,58,99,.06); }
.adm-fc__table tr.is-total th, .adm-fc__table tr.is-total td{ font-weight:800; color:var(--ai-900); border-bottom-color:rgba(29,27,25,.2); }
.adm-pre{ margin:10px 0; padding:12px 14px; border:1px solid rgba(29,27,25,.1); border-radius:10px; background:var(--white); font:500 .82rem/1.9 var(--f-gothic); white-space:pre-wrap; word-break:break-word; }
.adm-import{ display:grid; justify-items:start; gap:8px; }
.adm-import__sum{ margin:0; font-weight:700; font-size:.9rem; }
.adm-import__list{ margin:0; padding-left:1.2em; font-size:.84rem; color:var(--sumi-2); }
.adm-import__list .is-dup{ color:var(--sumi-3); }
.adm-ords{ display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.adm-ord{ border:1px solid rgba(29,27,25,.1); border-radius:12px; background:var(--white); }
.adm-ord summary{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding:12px 14px; cursor:pointer; list-style:none; }
.adm-ord summary::-webkit-details-marker{ display:none; }
.adm-ord__t{ display:inline-grid; place-items:center; width:1.9em; height:1.9em; border-radius:50%; background:var(--akari-2); color:var(--sumi); font:700 .8rem/1 var(--f-gothic); }
.adm-ord[data-t="d"] .adm-ord__t{ background:var(--ai-800); color:var(--washi); }
.adm-ord__main{ font-weight:700; font-variant-numeric:tabular-nums; }
.adm-ord__meta{ font-size:.76rem; color:var(--sumi-3); }
.adm-ord__items{ margin:0 14px 8px; padding-left:1.2em; font-size:.86rem; }
.adm-ord details > .adm-note, .adm-ord details > .adm-req__voice{ margin:0 14px 8px; }
.adm-ord .adm-row{ padding:0 14px 12px; }

@media (max-width: 860px){
  .order-cta__in{ grid-template-columns:minmax(0, 1fr); }
  .order-cta__slip{ width:min(84%, 320px); }
  .od-confirm{ grid-template-columns:minmax(0, 1fr); }
  .adm-sumgrid, .adm-fc__grid{ grid-template-columns:minmax(0, 1fr); }
}
@media (max-width: 560px){
  .order-cta__btn{ width:100%; }
  .od-when{ gap:8px; }
  .od-when__body{ min-height:120px; padding:14px; }
  .od-when__body b{ font-size:1.9rem; }
  .od-item{ grid-template-columns:minmax(0, 1fr) auto; padding:10px 4px; }
  .od-item__p{ grid-column:1; grid-row:2; font-size:.95rem; }
  .od-stepper{ grid-column:2; grid-row:1 / span 2; }
  .od-sum__total{ font-size:1.5rem; }
  .od-slip{ padding:28px 18px 24px; }
  .adm-stats{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
  .adm-stat__v{ font-size:1.3rem; }
}
@media (prefers-reduced-motion: reduce){
  .od-q, .od-sum, .od-done__mark, .od-qty.is-pop{ animation:none; }
}

/* ---------- 動きを減らす設定 ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; animation-delay:0s !important; transition-delay:0s !important; }
  .steam path{ animation:none !important; stroke-dasharray:none; opacity:.4; }
  .lantern, .r-reserve__lantern{ animation:none !important; }
}
