/* ひとこと店番 — 全店共通の土台。見た目は design-*.css で店ごとに変える */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{line-height:1.9;font-size:16px;line-break:strict;overflow-wrap:anywhere;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
img{max-width:100%;display:block}
a{color:inherit}
.nw{display:inline-block;text-indent:0}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
/* 下書きの印（公開時は出ない） */
.draft{position:fixed;left:10px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:50;font:12px/1.6 system-ui,sans-serif;background:#fff8dc;border:1px solid #d9b94a;border-radius:10px;max-width:calc(100vw - 20px);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.draft summary{cursor:pointer;padding:6px 12px;font-weight:700;list-style:none}
.draft ul{padding:0 14px 10px 28px;max-width:300px}
/* 画面下の固定ボタン（スマホで押しやすく） */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--dock-bg);backdrop-filter:blur(8px)}
.dock a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:999px;font-weight:700;text-decoration:none;font-size:16px}
.dock svg{width:20px;height:20px}
/* 共通の部品 */
.sec{padding:56px 0}
.info{display:grid;grid-template-columns:5.5em 1fr;border-top:1px solid var(--line)}
.info dt,.info dd{padding:16px 0;border-bottom:1px solid var(--line)}
.info dt{font-size:13px;color:var(--sub);padding-top:19px}
.info dd a{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.notes{list-style:none;margin-top:18px;font-size:15px}
.notes li::before{content:"・"}
.map{margin-top:28px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--soft)}
.map iframe{display:block;width:100%;height:300px;border:0}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.gallery img{aspect-ratio:1/1;object-fit:cover;width:100%;border-radius:calc(var(--radius) / 2)}
footer{text-align:center;padding:40px 0 24px;font-size:12px;color:var(--sub)}
@media (min-width:768px){.gallery{grid-template-columns:repeat(3,1fr)}.dock{max-width:520px;left:50%;transform:translateX(-50%);bottom:16px;border-radius:999px}}
/* 写真が流れるスライド */
.slider{overflow:hidden;padding:28px 0}
.slider .track{display:flex;gap:10px;width:max-content;animation:flow var(--dur,30s) linear infinite}
.slider .dup{display:contents}
.slider img,.slider .ph{height:220px;aspect-ratio:4/3;width:auto;object-fit:cover;border-radius:var(--radius);flex:none}
.slider .ph{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--soft);border:1px dashed var(--line);color:var(--sub);font-size:15px;font-weight:700}
.slider .ph small{font-size:11px;font-weight:400}
.slider:hover .track,.slider:active .track{animation-play-state:paused}
@keyframes flow{to{transform:translateX(calc(-50% - 5px))}}
@media (prefers-reduced-motion:reduce){.slider{overflow-x:auto}.slider .track{animation:none}.slider .dup{display:none}}
@media (min-width:768px){.slider img,.slider .ph{height:300px}}
/* 仕出し・お弁当 */
.catering .lead{font-size:17px;margin-bottom:22px}
.catering .order{margin-top:24px}
.catering .call{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:28px;min-height:54px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;text-decoration:none}
.catering .call svg{width:20px;height:20px}
.ph-list li{opacity:.55}
.lead{font-size:17px;margin-bottom:22px}
.ph-row{opacity:.55}
.d-wa .card{background:transparent}
/* 見出し→写真→説明 */
.feature-img{margin:0 0 22px;border-radius:var(--radius);overflow:hidden}
.feature-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.feature-img.ph{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--soft);border:1px dashed var(--line);color:var(--sub);font-weight:700;font-size:15px}
.feature-img.ph small{font-weight:400;font-size:12px}
.note-text{font-size:15px;color:var(--sub);margin-top:-8px}
.call{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;min-height:54px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:700;text-decoration:none}
.call svg{width:20px;height:20px}
@media (min-width:768px){.feature .wrap{max-width:640px}}
/* お知らせ */
.news-list{list-style:none;border-top:1px solid var(--line)}
.news-list li{display:grid;grid-template-columns:6em 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.news-list time{font-size:13px;color:var(--sub);padding-top:2px}
/* いま営業中か */
.status{display:inline-block;margin-top:16px;font-size:14px;font-weight:700;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.6)}
.status.open{border-color:#2e7d4f;color:#2e7d4f}
.d-wa .status{position:absolute;right:20px;bottom:108px}
/* メニューのタブ＋横スワイプ */
/* タブが多い店でも、せまい画面では折り返して収める（横スクロールを作らない） */
.tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:16px}
.tabs button{font:inherit;font-weight:700;font-size:15px;padding:8px 22px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
/* 高さは JS が「開いているタブの中身」に合わせる。となりの長いタブははみ出させない */
.panels{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:flex-start;gap:0}
.panels::-webkit-scrollbar{display:none}
.panel{flex:0 0 100%;scroll-snap-align:start;padding:2px}
.swipe-hint{text-align:center;font-size:12px;color:var(--sub);margin-top:10px}
/* スワイプの説明はタブのすぐ下（カードの下に離すと何の説明か分からない） */
.tabs+.swipe-hint{margin:-6px 0 12px}
/* 営業時間の補足 */
.info .sub{font-size:13px;color:var(--sub)}
/* フッター */
footer address{font-style:normal;font-size:13px;line-height:1.8;margin:6px 0 10px}
footer small{display:block}
footer .credit{margin-top:6px}
footer .credit a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.map-ph{height:300px;display:grid;place-items:center;color:var(--sub);font-size:13px;border-style:dashed}

/* 喫茶：昭和の純喫茶（クリーム・珈琲色・ビロードの赤／丸窓と日よけ） */
:root{--ink:#3a2418;--paper:#f4ead8;--red:#8e2b25;--gold:#86601f;--sub:#705d4e;--line:#dccbb0;--soft:#ebdcc2;--radius:18px;--dock-bg:rgba(58,36,24,.94)}
body{background:var(--paper);color:var(--ink);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Noto Sans CJK JP",sans-serif}
.serif,h1,h2{font-family:"Kaisei Decol","Hiragino Mincho ProN","Noto Serif JP","Noto Serif CJK JP",serif}
/* 日よけテント */
.awning{height:54px;background:repeating-linear-gradient(90deg,var(--red) 0 34px,#f7efe0 34px 68px);
-webkit-mask:radial-gradient(17px at 17px 100%,transparent 98%,#000) 0 0/34px 100% ,linear-gradient(#000,#000) 0 0/100% calc(100% - 17px) no-repeat;
mask:radial-gradient(17px at 17px 100%,transparent 98%,#000) 0 0/34px 100%}
.hero{text-align:center;padding:36px 20px 64px}
.window{width:min(78vw,340px);aspect-ratio:1;margin:0 auto;border-radius:50%;border:3px solid var(--ink);outline:1px solid var(--ink);outline-offset:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,#fbf5ea,#f1e2c8 70%)}
.window .kissa{font-size:14px;letter-spacing:.6em;padding-left:.6em;color:var(--red);font-weight:700}
.window h1{font-size:clamp(56px,17vw,84px);letter-spacing:.14em;padding-left:.14em;line-height:1.2;font-weight:700}
.window .en{font-family:"DM Serif Display",Georgia,"Times New Roman",serif;font-style:italic;font-size:22px;color:var(--gold);margin-top:2px}
.hero .catch{margin-top:30px;font-size:17px;font-weight:700}
.sec h2{text-align:center;font-size:26px;letter-spacing:.2em;margin-bottom:32px}
.sec h2::after{content:"◆";display:block;font-size:10px;color:var(--gold);letter-spacing:0;margin-top:6px}
.card{background:#fffaf1;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:-8px;border-radius:var(--radius);padding:30px 24px}
.menu{list-style:none}
.menu li{padding:12px 0}
.menu .row{display:flex;align-items:baseline;gap:8px;font-weight:700;font-size:17px}
.menu .row .dots{flex:1;border-bottom:2px dotted var(--line);transform:translateY(-5px)}
/* 値段は縮めない（縮むと「600／円」と泣き別れる）。名前が長いときは名前の側で折り返す */
.menu .price{flex:none;white-space:nowrap;font-family:"DM Serif Display",Georgia,serif;font-size:20px;color:var(--red)}
.menu .note{font-size:14px;color:var(--sub);margin-top:2px}
.today{background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:22px 24px;text-align:center}
.today .label{display:block;font-size:12px;letter-spacing:.3em;color:var(--gold)}
.today p{font-size:20px;font-weight:700}
.msg p{font-size:17px;line-height:2.1}
.dock a{background:var(--paper);color:var(--ink)}
.dock a.alt{background:transparent;color:var(--paper);border:1px solid rgba(244,234,216,.6)}
footer .logo{font-family:"Kaisei Decol","Noto Serif CJK JP",serif;font-size:20px;letter-spacing:.2em;color:var(--ink)}
.sec-map .map{margin-top:0}
