/* まるやね食堂（デモ）全ページ共通
   地＝焦げ茶に近い墨／えんじ＝暖簾／生成り＝品書きの紙。見出しは筆文字（Yuji Syuku に薄い縁取りで太さを出す） */
:root {
  --koge: #1d1410;
  --koge-2: #281b14;
  --sumi: #120c09;
  --enji: #8a2430;
  --enji-hi: #b5404b;
  --kinari: #efe5d1;
  --kinari-mute: #cdbd9f;
  --paper: #efe5d1;
  --ink: #2a1c14;
  --ink-mute: #5d4a3c;
  --ki: #dcc49a;
  --ki-dark: #b99665;
  --fude: "Yuji Syuku", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --goth: "Zen Kaku Gothic Antique", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  --wrap: 1160px;
  --ease: cubic-bezier(.22, .7, .25, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--koge); color: var(--kinari);
  font-family: var(--goth); font-size: clamp(15px, .86rem + .25vw, 17px); line-height: 1.85; letter-spacing: .02em;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
h1, h2, h3 { margin: 0; font-weight: 400; word-break: auto-phrase; text-wrap: balance; }
.defs { position: absolute; width: 0; height: 0; overflow: hidden; }
:focus-visible { outline: 2px solid var(--enji-hi); outline-offset: 3px; }
.wrap { width: min(100% - 40px, var(--wrap)); margin-inline: auto; }
.fude { font-family: var(--fude); -webkit-text-stroke: .028em currentColor; font-feature-settings: "palt"; letter-spacing: .04em; line-height: 1.35; }
.h2 { font-size: clamp(30px, 2rem + 1.6vw, 50px); margin-bottom: .6em; }
.h3 { font-size: clamp(22px, 1.2rem + .7vw, 30px); margin-bottom: .5em; }
.small, .note { font-size: .88em; color: var(--kinari-mute); }
.paper .note, .paper .small { color: var(--ink-mute); }

/* 紙（品書きの紙）。細かい繊維をノイズで */
.paper {
  background-color: var(--paper); color: var(--ink);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .15 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
.paper a { color: var(--enji); }

/* ---------- ボタン・リンク ---------- */
.btnrow { margin-top: 1.6em; }
.btn {
  display: inline-flex; align-items: center; gap: .5em; min-height: 52px; padding: .7em 1.6em;
  border: 1.5px solid var(--kinari); color: var(--kinari); text-decoration: none; font-weight: 700; letter-spacing: .06em;
  transition: background-color .25s, color .25s;
}
.btn:hover { background: var(--kinari); color: var(--koge); }
.btn--ink { border-color: var(--ink); color: var(--ink) !important; }
.btn--ink:hover { background: var(--ink); color: var(--paper) !important; }
.btn--enji { background: var(--enji); border-color: var(--enji); color: #fff; font-family: var(--goth); font-size: 1.05em; cursor: pointer; }
.btn--enji:hover { background: #6f1b25; color: #fff; }
.more { display: inline-block; font-weight: 700; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; letter-spacing: .05em; }
.more:hover { opacity: .75; }

/* ---------- ヘッダー ---------- */
.head { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--sumi) 94%, transparent); border-bottom: 1px solid #3a2a20; }
.head__in { display: flex; align-items: center; gap: 28px; height: 80px; width: min(100% - 40px, 1320px); margin-inline: auto; }
.head__brand { display: flex; align-items: flex-end; gap: 8px; text-decoration: none; flex: none; }
.logo { display: block; overflow: visible; }
.logo__roof { stroke: var(--enji-hi); }
.logo__word { fill: var(--kinari); stroke: var(--kinari); stroke-width: .8; }
.head__logo { width: 168px; height: auto; }
.head__demo { font-size: 10px; letter-spacing: .14em; color: var(--kinari-mute); border: 1px solid #5a4637; padding: 0 5px; line-height: 16px; margin-bottom: 4px; }
.head__nav { display: flex; gap: 26px; margin-left: auto; font-weight: 700; font-size: 15px; }
.head__nav a { position: relative; text-decoration: none; padding: 6px 0; letter-spacing: .06em; }
.head__nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--enji-hi); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.head__nav a:hover::after, .head__nav a[aria-current="page"]::after { transform: scaleX(1); }
.head__nav a[aria-current="page"] { color: #fff; }
.head__tel { display: flex; align-items: center; gap: 8px; text-decoration: none; font-weight: 700; font-size: 24px; letter-spacing: .04em; line-height: 1; padding: 10px 0 10px 22px; border-left: 1px solid #4a372b; font-feature-settings: "tnum"; }
.ic-tel { width: 1em; height: 1em; flex: none; color: var(--enji-hi); }
.head__menu { display: none; }

@media (max-width: 1079px) {
  .head__in { height: 64px; gap: 14px; }
  .head__logo { width: 132px; }
  .head__tel { margin-left: auto; font-size: 18px; border: 0; padding: 8px 0; }
  .head__menu {
    display: block; flex: none; height: 40px; padding: 0 12px; background: transparent; color: var(--kinari);
    border: 1px solid #6a5444; font: 700 12px/1 var(--goth); letter-spacing: .16em; cursor: pointer;
  }
  .head__nav {
    position: fixed; inset: 64px 0 auto 0; flex-direction: column; gap: 0; margin: 0; padding: 8px 20px 24px;
    background: var(--sumi); border-bottom: 3px solid var(--enji); font-size: 17px;
    opacity: 0; transform: translateY(-8px); pointer-events: none; transition: opacity .25s, transform .25s var(--ease);
  }
  .head__nav a { padding: 14px 0; border-bottom: 1px solid #33251c; }
  .head__nav a::after { bottom: -1px; }
  .nav-open .head__nav { opacity: 1; transform: none; pointer-events: auto; }
}
@media (max-width: 400px) {
  .head__in { width: calc(100% - 28px); gap: 10px; }
  .head__logo { width: 112px; }
  .head__brand { flex-direction: column; align-items: flex-start; gap: 2px; }
  .head__demo { font-size: 9px; line-height: 13px; margin: 0; padding: 0 4px; }
  .head__tel { font-size: 16px; gap: 5px; }
}
/* JS が無いときはナビをそのまま並べる */
@media (max-width: 1079px) {
  html:not(.js) .head__menu { display: none; }
  html:not(.js) .head__in { flex-wrap: wrap; height: auto; padding: 10px 0; }
  html:not(.js) .head__nav { position: static; opacity: 1; transform: none; pointer-events: auto; flex-direction: row; flex-wrap: wrap; gap: 4px 16px; padding: 0; border: 0; width: 100%; font-size: 14px; }
  html:not(.js) .head__nav a { padding: 4px 0; border: 0; }
}

/* DEMO は1か所：ヘッダーだけ。フッターのロゴには付けない */

/* ---------- 最初の画面 ---------- */
.hero {
  position: relative; display: grid; grid-template-columns: minmax(0, 64fr) minmax(0, 36fr);
  grid-template-rows: 1fr auto; height: clamp(600px, calc(100svh - 80px), 860px); background: var(--koge);
}
.hero__ph { grid-column: 1; grid-row: 1; position: relative; overflow: hidden; container-type: size; }
.hero__sq { position: absolute; left: 50%; top: 50%; width: max(100cqw, 100cqh); aspect-ratio: 1; transform: translate(-50%, -50%); }
.hero__sq img { width: 100%; height: 100%; object-fit: cover; }
.hero__ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 70%, rgba(29, 20, 16, .55)); pointer-events: none; }
.steam { position: absolute; pointer-events: none; overflow: visible; mix-blend-mode: screen; }
.hero__steam { left: 15%; top: -4%; width: 22%; height: 40%; }
.st { opacity: .0; transform-box: fill-box; transform-origin: 50% 100%; }
.st1 { animation: steam 7s ease-in-out infinite; }
.st2 { animation: steam 7s ease-in-out -2.4s infinite; }
.st3 { animation: steam 7s ease-in-out -4.8s infinite; }
@keyframes steam {
  0% { opacity: 0; transform: translateY(18%) scaleX(.8) skewX(0); }
  25% { opacity: .34; }
  55% { opacity: .22; transform: translateY(-6%) scaleX(1.08) skewX(-6deg); }
  100% { opacity: 0; transform: translateY(-26%) scaleX(1.25) skewX(5deg); }
}

.hero__side { grid-column: 2; grid-row: 1; position: relative; display: flex; justify-content: center; gap: clamp(18px, 2.4vw, 40px); padding-inline: 20px; }
.hero__lead {
  writing-mode: vertical-rl; margin: clamp(70px, 9vh, 110px) 0 0; font-size: clamp(15px, .9rem + .2vw, 17px); letter-spacing: .2em; line-height: 2.1;
  color: var(--kinari-mute); order: 2;
}
.noren { position: relative; order: 1; --nh: clamp(380px, 62vh, 560px); }
.noren__rod { display: block; width: calc(100% + 36px); margin-left: -18px; height: 12px; border-radius: 6px; background: linear-gradient(#6b4a30, #3b2618); box-shadow: 0 2px 0 #120b07; }
.noren__cloth { display: flex; gap: 5px; }
.noren__p {
  display: block; width: clamp(40px, 3.6vw, 56px); height: var(--nh);
  background: var(--enji); box-shadow: inset 0 10px 0 #741c27, inset -1px 0 0 rgba(0, 0, 0, .25);
  background-image: linear-gradient(90deg, rgba(255, 255, 255, .04), transparent 40%, rgba(0, 0, 0, .12)), repeating-linear-gradient(0deg, transparent 0 3px, rgba(0, 0, 0, .05) 3px 4px);
  transform-origin: 50% 0; animation: noren 9s ease-in-out infinite;
}
.noren__p:nth-child(3) { animation-delay: -3s; }
.noren__name {
  width: clamp(96px, 8.6vw, 132px); writing-mode: vertical-rl; display: flex; align-items: center; justify-content: flex-start;
  padding-top: clamp(30px, 4vh, 48px); color: var(--kinari); font-size: min(clamp(54px, 5.4vw, 84px), calc((var(--nh) - 60px) / 6.9)); letter-spacing: .1em; line-height: 1; white-space: nowrap; animation-delay: -1.5s;
}
@keyframes noren { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(.5deg); } }

.kifuda { position: absolute; z-index: 3; display: block; text-decoration: none; color: var(--ink); }
.hero__kifuda { grid-row: 1; left: calc(64% - clamp(150px, 15vw, 210px)); bottom: clamp(28px, 6vh, 64px); }
.kifuda__string { display: block; position: relative; width: 70px; height: 46px; margin: 0 auto -6px; }
.kifuda__string::before, .kifuda__string::after { content: ""; position: absolute; top: 4px; width: 2px; height: 50px; background: #d9c8a6; }
.kifuda__string::before { left: 50%; transform-origin: top; transform: rotate(32deg); }
.kifuda__string::after { left: 50%; transform-origin: top; transform: rotate(-32deg); }
.kifuda__string { background: radial-gradient(circle at 50% 4px, #b0a083 0 4px, transparent 5px); }
.kifuda__body {
  position: relative; display: grid; gap: 6px; width: clamp(200px, 17vw, 236px); padding: 22px 22px 18px;
  background: var(--enji); clip-path: polygon(14% 0, 86% 0, 100% 12%, 100% 100%, 0 100%, 0 12%);
}
.kifuda__body::before {
  content: ""; position: absolute; inset: 5px; z-index: 0;
  clip-path: polygon(14% 0, 86% 0, 100% 12%, 100% 100%, 0 100%, 0 12%);
  background: var(--ki); background-image: repeating-linear-gradient(92deg, transparent 0 9px, rgba(120, 80, 40, .1) 9px 10px, transparent 10px 23px, rgba(120, 80, 40, .07) 23px 25px);
}
.kifuda__body > * { position: relative; z-index: 1; }
.kifuda__head { white-space: nowrap; font-size: 21px; text-align: center; border-bottom: 1.5px solid rgba(42, 28, 20, .45); padding-bottom: 6px; margin-bottom: 2px; }
.kifuda__row { display: flex; align-items: baseline; gap: 10px; font-weight: 700; font-size: 17px; line-height: 1.5; }
.kifuda__row b { font-weight: 400; color: var(--enji); font-size: 24px; line-height: 1; }
.kifuda__foot { text-align: right; font-weight: 700; font-size: 15px; }
.hero__kifuda { transform-origin: 50% 4px; animation: yure 5.5s ease-in-out infinite; }
.hero__kifuda:hover { animation-duration: 1.6s; }
@keyframes yure { 0%, 100% { transform: rotate(-1.6deg); } 50% { transform: rotate(1.6deg); } }

.hero__band {
  grid-column: 1 / -1; grid-row: 2; margin: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: .3em 2.4em;
  padding: 14px 20px; background: var(--sumi); border-top: 3px solid var(--enji); color: var(--kinari); font-weight: 700; letter-spacing: .1em; font-feature-settings: "tnum";
}

/* 最初の画面の出方（読み込み時に。待たない） */
.js .hero__sq img { animation: fadein 1.1s var(--ease) both; }
.js .noren__p { animation: noren-in 1s var(--ease) both, noren 9s ease-in-out 1s infinite; }
.js .noren__p:nth-child(1) { animation-delay: .15s, 1.15s; }
.js .noren__name { animation-delay: .25s, 1.25s; }
.js .noren__p:nth-child(3) { animation-delay: .35s, 1.35s; }

@keyframes fadein { from { opacity: 0; } to { opacity: 1; } }
@keyframes noren-in { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }

@media (max-width: 1079px) {
  .hero { height: auto; grid-template-columns: minmax(0, 1fr) auto; }
  .hero__ph { height: clamp(380px, 62vw, 640px); }
  .hero__side { padding-inline: 18px 20px; gap: 14px; }
  .hero__lead { margin-top: 40px; }
  .noren { --nh: clamp(300px, 52vw, 520px); }
  .noren__p { width: 34px; }
  .noren__name { width: 88px; padding-top: 28px; }
  .hero__kifuda { left: auto; right: calc(100% - 64% + 10px); }
}
@media (max-width: 699px) {
  .hero { grid-template-columns: minmax(0, 1fr) 98px; grid-template-rows: auto auto auto; }
  .hero__ph { height: 420px; }
  .hero__ph::after { background: linear-gradient(90deg, transparent 75%, rgba(29, 20, 16, .5)); }
  .hero__steam { left: 4%; top: 2%; width: 34%; height: 40%; }
  .hero__side { padding: 0 10px 0 0; justify-content: flex-end; }
  .hero__lead { display: none; }
  .noren__rod { width: calc(100% + 10px); margin-left: -5px; }
  .noren__cloth { gap: 3px; }
  .noren { --nh: 380px; }
  .noren__p { width: 12px; }
  .noren__name { width: 62px; padding-top: 22px; letter-spacing: .06em; }
  .hero__kifuda { position: relative; grid-row: 2; grid-column: 1 / -1; justify-self: start; align-self: start; left: auto; right: auto; bottom: auto; margin: -64px 0 0 14px; }
  .kifuda__body { width: 196px; padding: 16px 16px 12px; gap: 3px; }
  .kifuda__head { font-size: 19px; }
  .kifuda__row { font-size: 15px; }
  .kifuda__row b { font-size: 20px; }
  .kifuda__string { height: 30px; }
  .hero__band { grid-row: 3; gap: .1em 1.2em; font-size: 14px; padding: 12px 14px; letter-spacing: .06em; }
}
/* スマホでは縦書きの一文を、木札の右に横書きで置く */
.hero__mlead { display: none; }
@media (max-width: 699px) {
  .hero__mlead { display: block; grid-column: 1 / -1; grid-row: 2; align-self: start; margin: 0; padding: 18px 14px 18px 224px; font-size: 13px; line-height: 1.8; color: var(--kinari-mute); letter-spacing: .04em; word-break: auto-phrase; }
  .hero { row-gap: 0; }
  .hero__band { margin-top: 16px; }
}

/* ---------- 本日の日替わり ---------- */
.daily { padding: clamp(64px, 9vw, 120px) 0; position: relative; }
.daily__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 24px; margin-bottom: clamp(26px, 4vw, 44px); }
.daily__head .h2 { margin: 0; }
.daily__date { margin: 0; font-weight: 700; color: var(--enji); font-size: 1.1em; border: 1.5px solid var(--enji); padding: 2px 12px; letter-spacing: .08em; }
.daily__pair { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(20px, 4vw, 56px); }
.daily__slit { width: 10px; background: linear-gradient(90deg, var(--enji) 0 3px, transparent 3px 7px, var(--enji) 7px); opacity: .85; }
.daily__ph { aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 18px; background: var(--sumi); }
.daily__ph img { width: 100%; height: 100%; object-fit: cover; }
.daily__ph--a img { transform: scale(1.75); transform-origin: 84% 28%; }
.daily__name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; font-size: clamp(22px, 1.2rem + .8vw, 31px); margin-bottom: .4em; }
.daily__ab { display: inline-grid; place-items: center; width: 1.5em; height: 1.5em; background: var(--enji); color: var(--paper); font-size: .8em; -webkit-text-stroke: 0; line-height: 1; }
.daily__price { font-family: var(--goth); -webkit-text-stroke: 0; font-weight: 700; font-size: .72em; color: var(--enji); margin-left: auto; }
.daily__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; margin-top: clamp(30px, 4vw, 48px); padding-top: 26px; border-top: 1px dashed rgba(42, 28, 20, .35); }
.daily__foot p { margin: 0; font-weight: 700; line-height: 2; }
@media (max-width: 699px) {
  .daily__pair { grid-template-columns: 1fr; gap: 34px; }
  .daily__slit { width: auto; height: 10px; background: linear-gradient(0deg, var(--enji) 0 3px, transparent 3px 7px, var(--enji) 7px); }
}

/* ---------- 定食（写真の格子） ---------- */
.teishoku { padding: clamp(70px, 9vw, 120px) 0; }
.teishoku__head { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 10px 40px; margin-bottom: 36px; }
.teishoku__head .h2 { margin: 0; font-size: clamp(44px, 3rem + 2vw, 78px); }
.teishoku__head p { margin: 0 0 .5em; font-weight: 700; }
.grid4 { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(26px, 4vw, 48px) clamp(18px, 3vw, 40px); }
.grid4__ph { aspect-ratio: 3 / 2; overflow: hidden; margin-bottom: 14px; }
.grid4__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.grid4 li:hover .grid4__ph img { transform: scale(1.04); }
.grid4__name { font-size: clamp(21px, 1.1rem + .6vw, 28px); margin: 0; display: inline; }
.grid4__price { display: inline; margin: 0 0 0 .8em; font-weight: 700; font-size: 1.1em; color: var(--kinari-mute); }
.teishoku__note { margin-top: 28px; color: var(--kinari-mute); }
@media (max-width: 699px) {
  .teishoku__head { grid-template-columns: 1fr; }
  .grid4 { gap: 26px 14px; }
  .grid4__name { display: block; font-size: 18px; }
  .grid4__price { display: block; margin: 2px 0 0; font-size: 15px; }
}

/* ---------- お弁当（写真と文の左右） ---------- */
.bento-top { background: var(--koge-2); }
.split { display: grid; grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); align-items: center; }
.split__ph { height: 100%; min-height: 420px; }
.split__ph img { width: 100%; height: 100%; object-fit: cover; }
.split__txt { padding: clamp(50px, 7vw, 100px) clamp(20px, 6vw, 90px); max-width: 620px; }
.split__txt p { line-height: 2; }
@media (max-width: 899px) {
  .split { grid-template-columns: 1fr; }
  .split__ph { min-height: 0; aspect-ratio: 3 / 2; }
}

/* ---------- 店のこと（縦書きの店主の言葉） ---------- */
.mise { padding: clamp(70px, 9vw, 120px) 0; }
.mise__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.mise__words p { font-size: 1.05em; line-height: 2.1; }
.mise__ph { position: relative; }
.mise__ph::before { content: ""; position: absolute; inset: 16px -16px -16px 16px; border: 1.5px solid var(--enji); z-index: 0; }
.mise__ph img { position: relative; z-index: 1; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
@media (min-width: 1080px) {
  .mise__txt { display: grid; grid-template-columns: auto auto; justify-content: end; column-gap: 46px; direction: rtl; }
  .mise__txt > * { direction: ltr; }
  .mise__txt .h2 { writing-mode: vertical-rl; margin: 0; grid-row: 1 / 3; font-size: 54px; letter-spacing: .14em; }
  .mise__words { writing-mode: vertical-rl; height: 400px; }
  .mise__words p { margin: 0 0 0 1.2em; letter-spacing: .14em; line-height: 2.2; }
  .mise__txt .btnrow { grid-column: 2; grid-row: 2; margin-top: 30px; }
}
@media (max-width: 899px) { .mise__in { grid-template-columns: 1fr; } .mise__ph { margin-right: 16px; } }

/* ---------- 電話でよく聞かれること ---------- */
.tel-q { padding: clamp(70px, 9vw, 120px) 0; }
.tel-q__in { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: clamp(30px, 6vw, 90px); }
.kuro { width: clamp(140px, 16vw, 210px); color: var(--kinari-mute); margin-top: 20px; }
.qa { margin-bottom: 28px; }
.qa__item { padding: 22px 0 24px; border-top: 1px solid #47352a; }
.qa__item:last-child { border-bottom: 1px solid #47352a; }
.qa__q { font-size: clamp(20px, 1rem + .7vw, 26px); margin-bottom: 8px; }
.qa__a { margin: 0; color: var(--kinari-mute); }
@media (max-width: 799px) {
  .tel-q__in { grid-template-columns: 1fr; gap: 10px; }
  .tel-q__head { position: relative; padding-right: 90px; }
  .tel-q__head .h2 { margin-bottom: 18px; font-size: clamp(27px, 7.6vw, 40px); }
  .kuro { position: absolute; right: 0; bottom: 14px; width: 82px; margin: 0; }
}

/* ---------- 店舗案内（トップ・店舗案内ページ） ---------- */
.annai { padding: clamp(70px, 9vw, 120px) 0; background-color: var(--koge-2); }
.annai.paper { background-color: var(--paper); }
.annai__in { display: grid; grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); gap: clamp(30px, 5vw, 70px); align-items: start; }
.info { width: 100%; border-collapse: collapse; font-feature-settings: "tnum"; }
.info th, .info td { text-align: left; vertical-align: top; padding: 14px 0; border-bottom: 1px solid #47352a; }
.paper .info th, .paper .info td { border-color: rgba(42, 28, 20, .22); }
.info th { width: 7.5em; padding-right: 1em; font-weight: 700; color: var(--kinari-mute); white-space: nowrap; }
.paper .info th { color: var(--enji); }
.info__tel { font-weight: 700; font-size: 1.35em; text-decoration: none; letter-spacing: .04em; }
.annai__line { margin-top: 22px; padding: 14px 16px; border: 1px dashed #6a5444; font-size: .95em; }
.annai__line a { font-weight: 700; white-space: nowrap; }
.annai__map .btnrow { margin-top: 20px; }
.annai__solo { max-width: 860px; }
@media (max-width: 899px) { .annai__in { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .info th { width: 5.4em; } }

/* ---------- 図解 M-3 店までの道 ---------- */
.map { margin: 0; background: var(--paper); color: var(--ink); padding: clamp(12px, 2vw, 22px); box-shadow: 0 0 0 1px rgba(0, 0, 0, .3), 6px 6px 0 rgba(0, 0, 0, .25); }
.mp { display: block; width: 100%; height: auto; }
.mp--tall { display: none; }
@media (max-width: 599px) { .mp--wide { display: none; } .mp--tall { display: block; } }
.mp__base * { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mp__rail { stroke-width: 2.4 !important; }
.mp__tie { stroke-width: 1.4 !important; opacity: .6; }
.mp__street { stroke-width: 2.2 !important; }
.mp__arc { stroke-width: 1.4 !important; opacity: .7; }
.mp__road { stroke-width: 1.8 !important; opacity: .75; }
.mp__lane { stroke-width: 1.4 !important; stroke-dasharray: 4 5; }
.mp__lot { stroke-dasharray: 6 4; }
.mp__bldg { fill: rgba(42, 28, 20, .06) !important; }
.mp__roof { stroke: var(--enji) !important; stroke-width: 3 !important; }
.mp__noren rect { fill: var(--enji) !important; stroke: none !important; }
.mp__dot { fill: var(--enji); }
.mp__txt text { font-family: var(--goth); font-weight: 700; fill: var(--ink); font-size: 15px; }
.mp__big { font-family: var(--fude) !important; font-weight: 400 !important; font-size: 24px !important; }
.mp__mid { font-family: var(--fude) !important; font-weight: 400 !important; font-size: 19px !important; }
.mp__v { writing-mode: vertical-rl; letter-spacing: .1em; }
.mp__sm { font-size: 13px !important; font-weight: 400 !important; }
.mp__p { font-size: 20px !important; }
.mp__walk { fill: var(--enji) !important; font-size: 16px !important; }
.mp__tag rect { fill: var(--paper); stroke: var(--ink); stroke-width: 1.5; }
.mp__tag--enji rect { fill: var(--enji); stroke: none; }
.mp__tag--enji text { fill: #fff !important; }
.mp__n circle { fill: none; stroke: var(--ink); stroke-width: 1.4; }
.mp__n path { fill: var(--ink); }
.mp__n text { font-size: 13px !important; }
.js .map .mp__dot { opacity: 0; transition: opacity .3s calc(var(--i) * 45ms); }
.js .map.is-in .mp__dot { opacity: 1; }

/* ---------- 下層の頭 ---------- */
.phead { position: relative; padding: clamp(44px, 6vw, 80px) 0 clamp(50px, 6vw, 84px); border-bottom: 3px solid var(--enji); }
.phead__h { font-size: clamp(44px, 2.4rem + 3vw, 92px); margin: .1em 0 .3em; }
.phead p { max-width: 40em; font-weight: 700; line-height: 2; }
.phead a { text-decoration-color: var(--enji-hi); text-underline-offset: 4px; }
.crumb { display: flex; gap: 10px; font-size: 13px; color: var(--kinari-mute); }
.crumb a { text-decoration: none; }
.crumb a:hover { text-decoration: underline; }
.phead__row { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.phead--photo { padding: 0; min-height: clamp(340px, 46vw, 560px); display: flex; align-items: flex-end; overflow: hidden; }
.phead__img { position: absolute; inset: 0; }
.phead__img img { width: 100%; height: 100%; object-fit: cover; }
.phead--noren .phead__img img { object-position: 50% 30%; }
.phead--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18, 12, 9, .85), rgba(18, 12, 9, .1) 60%); }
.phead__over { position: relative; z-index: 1; padding-bottom: clamp(26px, 4vw, 50px); }
.phead__over .crumb { color: var(--kinari); }
.js .phead--photo .phead__img img { animation: fadein 1.2s var(--ease) both; }
.phead__door { width: clamp(160px, 22vw, 300px); aspect-ratio: 4 / 5; overflow: hidden; flex: none; border: 6px solid #3b2618; }
.phead__door img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 60%; transform: scale(1.35); transform-origin: 30% 62%; }
@media (max-width: 599px) {
  .phead--side .phead__row { align-items: flex-end; }
  .phead__door { width: 120px; border-width: 4px; }
}

/* 日替わりのページ頭の木札２枚（A・B） */
.fuda2 { display: flex; gap: 18px; flex: none; padding-top: 10px; }
.fuda2__t {
  position: relative; display: grid; justify-items: center; gap: 6px; width: 76px; padding: 20px 0 16px; color: var(--ink);
  background: var(--ki); clip-path: polygon(18% 0, 82% 0, 100% 12%, 100% 100%, 0 100%, 0 12%);
  transform-origin: 50% 0; animation: yure 6s ease-in-out var(--d) infinite;
  box-shadow: inset 0 0 0 4px var(--enji);
}
.fuda2__t b { font-weight: 400; font-size: 38px; line-height: 1; color: var(--enji); }
.fuda2__t span { font-size: 26px; writing-mode: vertical-rl; }
@media (max-width: 599px) { .fuda2 { gap: 8px; } .fuda2__t { width: 54px; } .fuda2__t b { font-size: 28px; } .fuda2__t span { font-size: 20px; } .phead--higawari .phead__row { align-items: flex-start; } }

/* ---------- 今週の献立 M-1 ---------- */
.kondate { padding: clamp(70px, 9vw, 120px) 0; }
.kondate__head { margin-bottom: 34px; }
.kd { margin: 0; padding: clamp(18px, 3vw, 36px); background: #2f2018; box-shadow: inset 0 0 0 1px #4b382b; position: relative; }
.kd::before { content: ""; position: absolute; left: clamp(18px, 3vw, 36px); right: clamp(18px, 3vw, 36px); top: clamp(56px, 6vw, 80px); height: 6px; border-radius: 3px; background: linear-gradient(#6b4a30, #3b2618); }
.kd__grid { position: relative; display: grid; grid-template-columns: 180px repeat(6, minmax(0, 1fr)); gap: 14px 12px; }
.kd__corner { grid-column: 1; }
.kd__day { text-align: center; font-weight: 700; font-size: 15px; color: var(--kinari-mute); padding: 6px 0 28px; letter-spacing: .04em; }
.kd__day.is-today { color: #fff; }
.kd__label { display: grid; align-content: center; gap: 8px; padding-right: 10px; }
.kd__label b { font-weight: 400; font-size: 34px; color: var(--kinari); line-height: 1; }
.kd__label span { font-size: 14px; color: var(--kinari-mute); line-height: 1.6; }
.kd__tag {
  display: flex; justify-content: center; min-height: 236px; padding: 18px 0 14px; color: var(--ink);
  background: var(--ki); background-image: repeating-linear-gradient(0deg, transparent 0 14px, rgba(120, 80, 40, .09) 14px 15px, transparent 15px 31px);
  clip-path: polygon(20% 0, 80% 0, 100% 9%, 100% 100%, 0 100%, 0 9%); max-width: 84px; width: 100%; justify-self: center;
}
.kd__tag span { writing-mode: vertical-rl; font-family: var(--fude); -webkit-text-stroke: .02em currentColor; font-size: 21px; letter-spacing: .12em; line-height: 1.15; }
.kd__frame { position: absolute; inset: -8px -6px; grid-column: 7; grid-row: 1 / 4; border: 3px solid var(--enji-hi); pointer-events: none; }
.kd__note { text-align: right; margin-top: 16px; font-size: 14px; font-weight: 700; color: var(--kinari-mute); }
.js .kd .kd__tag { opacity: 0; transform: translateY(-12px) rotate(-2deg); transform-origin: 50% 0; transition: opacity .5s calc(var(--i) * 60ms), transform .7s var(--ease) calc(var(--i) * 60ms); }
.js .kd.is-in .kd__tag { opacity: 1; transform: none; }
.js .kd .kd__frame { opacity: 0; transform: scale(1.06); transition: opacity .5s 1s, transform .6s var(--ease) 1s; }
.js .kd.is-in .kd__frame { opacity: 1; transform: none; }
@media (max-width: 899px) {
  .kd::before { display: none; }
  .kd__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px 6px; }
  .kd__corner { display: none; }
  .kd__day { padding: 0 0 4px; font-size: 12px; line-height: 1.4; }
  .kd__label { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 12px; padding: 14px 0 4px; border-top: 1px solid #4b382b; }
  .kd__label b { font-size: 26px; }
  .kd__label span { font-size: 13px; }
  .kd__tag { min-height: 176px; padding: 14px 0 10px; }
  .kd__tag span { font-size: 15px; letter-spacing: .06em; }
  .kd__frame { display: none; }
  .kd__tag.is-today { box-shadow: inset 0 0 0 3px var(--enji); }
  .kd__day.is-today { color: #fff; background: var(--enji); }
}
@media (max-width: 380px) { .kd__tag span { font-size: 14px; } .kd { padding: 14px 10px; } }

/* ---------- 献立の決め方 ---------- */
.kime { padding: clamp(70px, 9vw, 120px) 0; }
.kime__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.kime__ph img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
@media (max-width: 799px) { .kime__in { grid-template-columns: 1fr; } }

/* ---------- 下の一行（次のページ・電話） ---------- */
.tail { padding: clamp(56px, 7vw, 90px) 0; text-align: center; border-top: 1px solid #3a2a20; }
.tail__in { display: flex; flex-direction: column; align-items: center; gap: 14px; }
.tail__in p { margin: 0; font-weight: 700; }
.tail__in .more + .more { margin-left: 0; }
.tail__in:has(.more + .more) { flex-direction: row; justify-content: center; gap: 40px; }
.tail__tel { display: inline-flex; align-items: center; gap: 10px; font-size: clamp(30px, 1.6rem + 1.4vw, 44px); font-weight: 700; text-decoration: none; letter-spacing: .04em; font-feature-settings: "tnum"; }

/* ---------- お品書き ---------- */
.tsuku { padding: clamp(60px, 8vw, 110px) 0; }
.tsuku__in { display: grid; grid-template-columns: 1fr; gap: clamp(20px, 3vw, 40px); }
.tsuku__txt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 36px; }
.tsuku__txt .h2 { margin-bottom: .2em; }
.tray-fig { max-width: 980px; width: 100%; justify-self: center; }
.tsuku__txt p { font-weight: 700; }
.tray-fig { margin: 0; }
.tray { display: block; width: 100%; height: auto; }
.tray--tall { display: none; }
@media (max-width: 899px) { .tsuku__in { grid-template-columns: 1fr; } }
@media (max-width: 599px) { .tray--wide { display: none; } .tray--tall { display: block; max-width: 420px; margin-inline: auto; } }
.tr__line * { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tr__rim { fill: #2a1c14 !important; stroke: var(--enji) !important; stroke-width: 7 !important; }
.tr__line > rect:nth-child(2) { stroke: #6b5444; }
.tr__grain ellipse { stroke-width: 1.4 !important; }
.tr__dish, .tr__bowl { fill: var(--paper) !important; }
.tr__line > :not(.tr__rim):not(rect:nth-child(2)) { stroke: var(--ink); }
.tr__bowl--enji { fill: var(--enji) !important; stroke: var(--ink) !important; }
.tr__hashi { stroke: var(--ki-dark) !important; stroke-width: 5 !important; }
.tr__leads path { fill: none; stroke: var(--enji); stroke-width: 1.6; stroke-dasharray: 3 4; }
.tr__lb rect { fill: var(--ki); stroke: var(--enji); stroke-width: 2; }
.tr__h { font-family: var(--fude); font-size: 21px; fill: var(--ink); stroke: var(--ink); stroke-width: .5; }
.tr__s { font-family: var(--goth); font-weight: 700; font-size: 14px; fill: var(--ink-mute); }
.ts { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; animation: steam 6s ease-in-out infinite; }
.ts2 { animation-delay: -3s; }
.js .tray-fig .tr__lb { opacity: 0; transition: opacity .5s; }
.js .tray-fig.is-in .tr__lb { opacity: 1; }
.js .tray-fig .tr__lb:nth-child(2) { transition-delay: .15s; } .js .tray-fig .tr__lb:nth-child(3) { transition-delay: .3s; } .js .tray-fig .tr__lb:nth-child(4) { transition-delay: .45s; } .js .tray-fig .tr__lb:nth-child(5) { transition-delay: .6s; } .js .tray-fig .tr__lb:nth-child(6) { transition-delay: .75s; }

.board { padding: clamp(70px, 9vw, 120px) 0 clamp(50px, 6vw, 80px); }
.board__in { display: grid; grid-template-columns: minmax(0, 60fr) minmax(0, 40fr); gap: clamp(30px, 5vw, 70px); align-items: start; }
.board__ph img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.board__sub { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); margin-top: clamp(50px, 6vw, 80px); }
.price { width: 100%; border-collapse: collapse; font-feature-settings: "tnum"; }
.price th, .price td { padding: 13px 0; border-bottom: 1px dotted #6a5444; text-align: left; }
.price th { font-weight: 700; font-size: 1.06em; }
.price td { text-align: right; white-space: nowrap; font-weight: 700; padding-left: 1em; }
.price thead th { font-size: .8em; color: var(--ink-mute); border-bottom: 1.5px solid var(--ink); padding-bottom: 8px; }
.price thead th:last-child { text-align: right; }
.price--paper th, .price--paper td { border-color: rgba(42, 28, 20, .35); }
.price--paper td { color: var(--enji); }
.board .note { margin-top: 14px; }
@media (max-width: 799px) { .board__in, .board__sub { grid-template-columns: 1fr; } .board__ph { order: -1; } }

.yoru { position: relative; background: var(--sumi); padding: clamp(90px, 10vw, 130px) 0 clamp(70px, 9vw, 110px); }
.yoru__noren { position: absolute; top: 0; left: 50%; transform: translateX(-50%); display: flex; gap: 4px; width: min(100% - 40px, 520px); }
.yoru__noren span { flex: 1; height: 46px; background: var(--enji); transform-origin: 50% 0; animation: noren 8s ease-in-out infinite; }
.yoru__noren span:nth-child(2n) { animation-delay: -2s; }
.yoru__in { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 90px); }
.yoru .h2 small { font-family: var(--goth); -webkit-text-stroke: 0; font-size: .4em; margin-left: .6em; color: var(--kinari-mute); }
.price--dark th, .price--dark td { border-color: #5a4637; }
@media (max-width: 799px) { .yoru__in { grid-template-columns: 1fr; } }

/* ---------- お弁当・ご宴会 ---------- */
.bento-list { padding: clamp(60px, 8vw, 110px) 0; }
.bento-list__in { display: grid; grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); gap: clamp(26px, 5vw, 70px); }
@media (max-width: 799px) { .bento-list__in { grid-template-columns: 1fr; } }
.tanomi { padding: clamp(70px, 9vw, 120px) 0; }
.tanomi__two { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(20px, 4vw, 56px); margin-top: clamp(40px, 5vw, 64px); }
.tanomi__slit { width: 10px; background: linear-gradient(90deg, var(--enji) 0 3px, transparent 3px 7px, var(--enji) 7px); }
.tanomi .small { margin-top: 30px; }
@media (max-width: 699px) {
  .tanomi__two { grid-template-columns: 1fr; }
  .tanomi__slit { width: auto; height: 10px; background: linear-gradient(0deg, var(--enji) 0 3px, transparent 3px 7px, var(--enji) 7px); }
}

/* 図解 M-2 お弁当の頼み方 */
.fl { margin: 10px 0 0; display: grid; grid-template-columns: 170px minmax(0, 1fr) 190px; align-items: center; gap: 0 34px; padding: clamp(22px, 3vw, 40px); background: var(--paper); color: var(--ink); position: relative; }
.fl p { margin: 0; }
.fl__ic { display: grid; place-items: center; width: 64px; height: 64px; color: var(--enji); flex: none; }
.fl__ic svg { width: 100%; height: 100%; }
.fl__start, .fl__end { display: grid; justify-items: center; text-align: center; gap: 8px; }
.fl__start p, .fl__end p { font-size: 22px; line-height: 1.4; }
.fl__end { padding: 18px 10px; border: 2px solid var(--enji); }
.fl__paths { display: grid; gap: 26px; position: relative; }
.fl__paths::before, .fl__paths::after { content: ""; position: absolute; top: 25%; bottom: 25%; width: 20px; border: 2px solid var(--enji); }
.fl__paths::before { left: -34px; border-right: 0; }
.fl__paths::after { right: -34px; border-left: 0; }
.fl__row { display: grid; grid-template-columns: 124px minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 18px; padding: 14px 18px; background: rgba(42, 28, 20, .06); position: relative; }
.fl__cnt { font-size: 26px; color: var(--enji); white-space: nowrap; }
.fl__step { display: flex; align-items: center; gap: 12px; font-weight: 700; line-height: 1.55; position: relative; }
.fl__step + .fl__step::before { content: "→"; position: absolute; left: -16px; top: 50%; transform: translate(-50%, -50%); color: var(--enji); font-weight: 700; }
.fl__step .fl__ic { width: 46px; height: 46px; color: var(--ink); }
.js .fl .fl__step, .js .fl .fl__end { opacity: 0; transform: translateX(-10px); transition: opacity .5s calc(var(--i, 5) * 180ms + 200ms), transform .6s var(--ease) calc(var(--i, 5) * 180ms + 200ms); }
.js .fl.is-in .fl__step, .js .fl.is-in .fl__end { opacity: 1; transform: none; }
@media (max-width: 1079px) {
  .fl { grid-template-columns: 1fr; gap: 26px; justify-items: stretch; }
  .fl__start { grid-auto-flow: column; justify-content: start; align-items: center; }
  .fl__paths::before, .fl__paths::after { display: none; }
  .fl__end { grid-auto-flow: column; justify-content: center; align-items: center; }
  .fl__start::after { content: ""; }
}
@media (max-width: 599px) {
  .fl__row { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .fl__step + .fl__step::before { content: "↓"; left: 23px; top: -9px; transform: translate(-50%, -50%); }
  .fl__step + .fl__step { padding-top: 8px; }
}

.enkai { padding: clamp(70px, 9vw, 120px) 0; }
.enkai__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.enkai__ph img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
@media (max-width: 799px) { .enkai__in { grid-template-columns: 1fr; } }

.order { padding: clamp(70px, 9vw, 120px) 0; }
.order__in { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
@media (max-width: 899px) { .order__in { grid-template-columns: 1fr; } }
.form { display: grid; gap: 20px; }
.form__f { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; min-width: 0; }
.form__f > label, .form__f legend { font-weight: 700; display: flex; align-items: center; gap: 10px; padding: 0; }
.req { display: inline-block; font-size: 13px; line-height: 1; padding: 4px 7px; background: var(--enji); color: #fff; font-weight: 700; letter-spacing: .06em; }
.form input[type="text"], .form input[type="tel"], .form input[type="email"], .form textarea {
  width: 100%; font: 16px/1.6 var(--goth); padding: 12px 14px; color: var(--ink); background: var(--paper); border: 1px solid #6a5444; border-radius: 0;
}
.form input:focus-visible, .form textarea:focus-visible { outline: 3px solid var(--enji-hi); outline-offset: 0; }
.form__radio { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.form__radio legend { width: 100%; margin-bottom: 6px; }
.form__radio label { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; cursor: pointer; }
.form input[type="radio"], .form input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--enji); }
.form__agree { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.form__agree a { color: var(--kinari); }
.form__err { margin: 0; padding: 12px 14px; border: 1.5px solid var(--enji-hi); color: #fff; background: rgba(138, 36, 48, .3); font-weight: 700; }
.form__send { justify-self: start; min-width: 240px; justify-content: center; }
.form__tel { margin: 0; font-weight: 700; }
.form__tel a { font-size: 1.3em; text-decoration: none; }

/* ---------- 店のこと ---------- */
.aisatsu { padding: clamp(70px, 9vw, 120px) 0; }
.aisatsu__in { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: clamp(30px, 6vw, 90px); align-items: start; }
.aisatsu__ph img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.aisatsu__name { font-weight: 700; color: var(--enji); letter-spacing: .1em; }
.aisatsu__words p { line-height: 2.1; }
@media (max-width: 799px) { .aisatsu__in { grid-template-columns: 1fr; } .aisatsu__ph { max-width: 360px; } }
.shikomi { padding: clamp(70px, 9vw, 120px) 0; }
.shikomi__in { display: grid; grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.shikomi__txt p { line-height: 2.1; }
.shikomi__crop { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 8px var(--koge-2), 0 0 0 9px #4b382b; max-width: 440px; margin-inline: auto; }
.shikomi__crop img { width: 100%; height: 100%; object-fit: cover; transform: scale(2.1); transform-origin: 2.3% 23.3%; }
.shikomi__steam { left: 24%; top: -6%; width: 46%; height: 70%; }
@media (max-width: 799px) { .shikomi__in { grid-template-columns: 1fr; } .shikomi__crop { max-width: 300px; } }
.gohan { padding: clamp(60px, 8vw, 100px) 0; }
.gohan__in { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px clamp(30px, 6vw, 90px); align-items: start; }
.gohan__in p { font-weight: 700; line-height: 2.1; }
@media (max-width: 699px) { .gohan__in { grid-template-columns: 1fr; } }
.naka { padding: clamp(70px, 9vw, 120px) 0; }
.naka__two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(12px, 2vw, 24px); }
.naka__two figure { margin: 0; }
.naka__two img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.naka__cap { margin-top: 18px; color: var(--kinari-mute); }
@media (max-width: 599px) { .naka__two { grid-template-columns: 1fr; } }

/* ---------- 店舗案内 ---------- */
.michi { padding: clamp(70px, 9vw, 120px) 0; }
.michi__in { display: grid; grid-template-columns: minmax(0, 34fr) minmax(0, 66fr); gap: clamp(30px, 5vw, 70px); align-items: start; }
.michi__txt p { line-height: 2.05; }
@media (max-width: 999px) { .michi__in { grid-template-columns: 1fr; } }
.faq { padding: clamp(70px, 9vw, 120px) 0; }
.faq__in { max-width: 880px; }
.qa--full .qa__item { border-color: rgba(42, 28, 20, .25); }
.qa--full .qa__q { font-family: var(--goth); font-weight: 700; font-size: 1.1em; display: flex; gap: 12px; }
.qa--full .qa__a { color: var(--ink); display: flex; gap: 12px; }
.qa__mk { flex: none; color: var(--enji); font-size: 1.3em; line-height: 1.3; -webkit-text-stroke: .02em currentColor; }
.qa--full .qa__a .qa__mk { color: var(--ink-mute); }

/* ---------- フッター ---------- */
.foot { background: var(--sumi); position: relative; padding-top: 70px; }
.foot__noren { position: absolute; top: 0; left: 0; right: 0; display: flex; gap: 5px; padding: 0 clamp(20px, 6vw, 90px); }
.foot__noren span { flex: 1; height: 34px; background: var(--enji); transform-origin: 50% 0; }
.foot__in { width: min(100% - 40px, var(--wrap)); margin-inline: auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 30px 60px; padding: 30px 0 40px; }
.foot__logo { width: 190px; margin-bottom: 14px; }
.foot__name { font-weight: 700; margin-bottom: .2em; }
.foot__shop p { color: var(--kinari-mute); margin-bottom: .2em; font-size: .95em; }
.foot__tel { text-decoration: none; font-weight: 700; color: var(--kinari); }
.foot__nav { display: grid; grid-template-columns: repeat(2, auto); gap: 8px 40px; align-content: start; font-size: .95em; }
.foot__nav a { text-decoration: none; }
.foot__nav a:hover { text-decoration: underline; }
.foot__copy { text-align: center; margin: 0; padding: 16px 0 22px; border-top: 1px solid #2b1f17; color: var(--kinari-mute); }

/* ---------- スクロールで出す ---------- */
.js .rv { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .9s var(--ease); }
.js .rv.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .rv, .js .kd .kd__tag, .js .kd .kd__frame, .js .fl .fl__step, .js .fl .fl__end, .js .map .mp__dot, .js .tray-fig .tr__lb { opacity: 1 !important; transform: none !important; }
  .st { opacity: .22; transform: none; }
  .ts { opacity: .5; }
}

/* 改行の仕上げ */
.fl p, .qa__q, .kifuda__row { word-break: auto-phrase; }
@media (max-width: 599px) { .order__head .h2 { font-size: 30px; } }
.phead__row > div:first-child { min-width: 0; flex: 1; }
@media (max-width: 599px) { .phead__row { gap: 14px; } }
