/* レイアウト:スマホ1カラム(最大560px)を基本に、PCでは中央に置く。
   配色:資料と同じベージュ系の明るい1テーマ(暗い背景は使わない) */
:root{
  --bg:#F5F1E8;
  --paper:#FFFDF8;
  --ink:#27211B;
  --sub:#62594D;
  --line:#E3DBCC;
  --accent:#B9481F;
  --accent-soft:#F8E6DC;
  --accent-ink:#5A200B;
  --call:#13785A;
  --call-soft:#E2F3EC;
  --call-ink:#0B4A37;
  --warn:#A3261F;
  --note-soft:#FAEFD9;
  --note-ink:#5E3A08;
  --pr-soft:#F1EDE4;
  --font:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic","Meiryo",system-ui,sans-serif;
  --r-s:6px;
  --r-m:10px;
  --tap:48px;
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font);font-size:16px;line-height:1.7;color:var(--ink);background:var(--bg);
  font-feature-settings:"palt" 0;
}
button,input,select{font:inherit;color:inherit;}
button{cursor:pointer;}
a{color:inherit;}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
[hidden]{display:none!important;}
.num{font-variant-numeric:tabular-nums;}

/* ---- 骨組み ---- */
.app{max-width:560px;margin:0 auto;min-height:100vh;background:var(--bg);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  padding-top:12px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px));}
.app.has-bar{padding-bottom:calc(170px + env(safe-area-inset-bottom,0px));}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);}
.brand{font-size:19px;font-weight:700;letter-spacing:.02em;text-decoration:none;}
.brand small{display:block;font-size:11px;font-weight:400;color:var(--sub);letter-spacing:.08em;line-height:1.2;}
.area-badge{font-size:13px;font-weight:600;color:var(--note-ink);background:var(--note-soft);border-radius:99px;padding:4px 12px;white-space:nowrap;}
.back{display:inline-flex;align-items:center;gap:4px;min-height:var(--tap);font-size:15px;text-decoration:none;color:var(--sub);}
.section-label{font-size:13px;font-weight:600;color:var(--sub);letter-spacing:.06em;margin:18px 0 8px;}

/* ---- ホーム画面に追加 ---- */
.a2hs{margin-top:8px;background:var(--call-soft);color:var(--call-ink);border-radius:var(--r-m);padding:12px 44px 12px 14px;position:relative;font-size:14px;}
.a2hs b{display:block;font-size:15px;}
.a2hs .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.a2hs .acts button{min-height:40px;padding:0 14px;border-radius:var(--r-s);border:1px solid #9CCFBC;background:var(--paper);color:var(--call-ink);font-size:14px;}
.a2hs .acts .primary{background:var(--call);border-color:var(--call);color:#fff;font-weight:700;}
.a2hs .x{position:absolute;top:4px;right:4px;width:40px;height:40px;border:none;background:none;color:var(--call-ink);font-size:20px;}
.a2hs ol{margin:10px 0 0 20px;font-size:14px;}

/* ---- 検索・絞り込み ---- */
.search{display:flex;align-items:center;gap:8px;margin-top:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);padding:0 12px;min-height:var(--tap);}
.search svg{flex:none;color:var(--sub);}
.search input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:16px;padding:10px 0;}
.recent{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;}
.recent a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:99px;background:var(--paper);border:1px solid var(--accent);color:var(--accent-ink);font-size:14px;text-decoration:none;white-space:nowrap;}
.chips{display:flex;gap:8px;overflow-x:auto;margin-top:14px;padding-bottom:4px;scrollbar-width:none;}
.chips button{flex:none;min-height:40px;padding:0 16px;border-radius:99px;border:1px solid var(--line);background:var(--paper);color:var(--sub);font-size:14px;white-space:nowrap;}
.chips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
.filters{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 6px;}
.toggle{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);font-size:15px;cursor:pointer;}
.toggle input{width:22px;height:22px;accent-color:var(--call);}
.filters select{min-height:40px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);padding:0 10px;font-size:15px;}
.count{font-size:13px;color:var(--sub);}

/* ---- 店舗カード ---- */
.cards{display:flex;flex-direction:column;gap:8px;list-style:none;}
.card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);text-decoration:none;min-height:72px;}
.card:active{background:var(--accent-soft);}
.mark{flex:none;width:46px;height:46px;border-radius:var(--r-s);background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-size:20px;font-weight:700;}
.card .body{flex:1;min-width:0;}
.card .body,.ad-card .body{flex:1;min-width:0;}
.card .name,.ad-card .name{display:block;font-size:17px;font-weight:700;line-height:1.35;}
.card .meta,.ad-card .meta{display:block;font-size:13px;color:var(--sub);line-height:1.5;margin-top:2px;}
.tag{display:inline-block;font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px;}
.tag.new{background:var(--accent);color:#fff;}
.tag.flyer{background:var(--note-soft);color:var(--note-ink);}
.status{flex:none;font-size:12px;font-weight:700;border-radius:99px;padding:4px 10px;white-space:nowrap;}
.status.open{background:var(--call-soft);color:var(--call-ink);}
.status.off{background:var(--pr-soft);color:var(--sub);}
.status.temp{background:#F6E1DF;color:var(--warn);}
.empty{padding:28px 8px;text-align:center;color:var(--sub);font-size:15px;}
.ad-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--pr-soft);border:1px dashed var(--line);border-radius:var(--r-m);text-decoration:none;position:relative;}
.ad-card .mark{background:var(--paper);color:var(--sub);font-size:13px;}
.pr{position:absolute;top:6px;right:8px;font-size:10px;font-weight:700;color:var(--sub);border:1px solid var(--line);border-radius:3px;padding:0 4px;background:var(--paper);}

/* ---- 店舗ページ ---- */
.shop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:4px;}
.shop-head h1{font-size:24px;line-height:1.35;text-wrap:balance;}
.shop-head .genres{font-size:14px;color:var(--sub);}
.info{margin-top:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);padding:4px 14px;}
.info .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;}
.info .row:last-child{border-bottom:none;}
.info .row > span:first-child{color:var(--sub);flex:none;}
.info .row > span:last-child{text-align:right;}
.info details{padding:0 0 10px;font-size:14px;}
.info summary{cursor:pointer;color:var(--sub);min-height:40px;display:flex;align-items:center;}
.week{width:100%;border-collapse:collapse;}
.week td{padding:3px 0;}
.week td:last-child{text-align:right;}
.week tr.today td{font-weight:700;}
.taxnote{font-size:13px;color:var(--sub);text-align:right;margin-top:6px;}
.alert{margin-top:12px;border-radius:var(--r-m);padding:12px 14px;font-size:15px;background:#F6E1DF;color:var(--warn);font-weight:600;}
.alert.soft{background:var(--pr-soft);color:var(--sub);font-weight:400;}

.tabs{display:flex;margin-top:18px;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;background:var(--paper);}
.tabs button{flex:1;min-height:var(--tap);border:none;background:none;color:var(--sub);font-size:15px;}
.tabs button + button{border-left:1px solid var(--line);}
.tabs button[aria-selected="true"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:700;}

.prev{margin-top:14px;background:var(--paper);border:1px dashed #8FC8B3;border-radius:var(--r-m);padding:12px 14px;}
.prev p{font-size:14px;color:var(--call-ink);}
.prev .acts{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;flex-wrap:wrap;}
.prev .apply{min-height:44px;padding:0 16px;border:none;border-radius:var(--r-s);background:var(--call);color:#fff;font-weight:700;font-size:15px;}
.prev .del{border:none;background:none;color:var(--sub);font-size:13px;text-decoration:underline;min-height:40px;}
.prev .missing{margin-top:6px;font-size:13px;color:var(--note-ink);}

.menu-cat{font-size:15px;font-weight:700;color:var(--sub);margin:20px 0 6px;padding-bottom:6px;border-bottom:2px solid var(--line);}
.mrow{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 6px 6px 10px;border-radius:var(--r-s);cursor:pointer;}
.mrow.sel{background:var(--call-soft);}
.mrow .mn{flex:1;min-width:0;font-size:16px;line-height:1.45;}
.mrow .mp{flex:none;font-size:15px;color:var(--sub);}
.stepper{flex:none;display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);}
.stepper button{width:44px;height:44px;border:none;background:none;font-size:22px;line-height:1;}
.stepper button:disabled{color:var(--line);cursor:default;}
.stepper .q{width:28px;text-align:center;font-weight:700;color:var(--call-ink);}
.stepper .q.zero{color:var(--sub);font-weight:400;}

.flyers{margin-top:14px;display:flex;flex-direction:column;gap:10px;}
.flyers button{border:1px solid var(--line);border-radius:var(--r-m);background:var(--paper);padding:8px;}
.flyers img{display:block;width:100%;height:auto;}
.flyer-note{font-size:13px;color:var(--sub);margin-top:12px;}

.guide{margin-top:22px;background:var(--note-soft);color:var(--note-ink);border-radius:var(--r-m);padding:14px;}
.guide h2{font-size:15px;}
.guide .mine{margin-top:8px;background:var(--paper);border-radius:var(--r-s);padding:10px 12px;}
.guide .mine b{display:block;font-size:17px;color:var(--ink);}
.guide .mine button{margin-top:6px;border:1px solid var(--line);background:var(--paper);border-radius:var(--r-s);min-height:36px;padding:0 12px;font-size:13px;}
.guide form{margin-top:8px;display:grid;grid-template-columns:1fr 6em;gap:8px;}
.guide form input{min-height:var(--tap);border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);padding:0 12px;font-size:16px;min-width:0;}
.guide form .full{grid-column:1 / -1;}
.guide form button{grid-column:1 / -1;min-height:var(--tap);border:none;border-radius:var(--r-s);background:var(--note-ink);color:#fff;font-weight:700;}
.guide .hint{font-size:13px;margin-top:8px;}

.ad-banner{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px;background:var(--pr-soft);border:1px dashed var(--line);border-radius:var(--r-m);text-decoration:none;position:relative;}
.ad-banner .mark{background:var(--paper);color:var(--sub);font-size:13px;}
.ad-banner b{display:block;font-size:15px;}
.ad-banner span.t{font-size:13px;color:var(--sub);}

/* ---- 画面下の固定バー(注文メモ+発信) ---- */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(39,33,27,.08);
  padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));}
.bar .in{max-width:528px;margin:0 auto;display:flex;flex-direction:column;gap:8px;}
.memo-line{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.memo-line .sum{font-size:14px;color:var(--call-ink);line-height:1.4;}
.memo-line .sum b{font-size:19px;}
.memo-line .sum .warn{display:block;color:var(--warn);font-weight:700;font-size:13px;}
.slip-btn{flex:none;min-height:44px;padding:0 14px;border:2px solid var(--call);border-radius:var(--r-s);background:var(--paper);color:var(--call-ink);font-weight:700;font-size:15px;}
.call{display:flex;align-items:center;justify-content:center;gap:12px;min-height:56px;border-radius:var(--r-m);background:var(--call);color:#fff;text-decoration:none;font-weight:700;}
.call .l{font-size:15px;}
.call .n{font-size:21px;letter-spacing:.03em;}
.call.muted{background:#7C8C84;}
.call.disabled{background:var(--pr-soft);color:var(--sub);pointer-events:none;}
.bar .tip{font-size:12px;color:var(--sub);text-align:center;line-height:1.5;}

/* ---- 注文票・チラシ拡大(全画面) ---- */
.sheet{position:fixed;inset:0;z-index:40;background:var(--bg);overflow-y:auto;
  padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));}
.slip{max-width:560px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-m);padding:18px;}
.slip .cap{font-size:13px;color:var(--sub);text-align:center;}
.slip .sn{font-size:24px;font-weight:700;text-align:center;color:var(--accent-ink);margin-top:4px;line-height:1.35;}
.slip .st{font-size:30px;font-weight:700;text-align:center;color:var(--call-ink);letter-spacing:.03em;}
.slip ul{list-style:none;margin-top:14px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:6px 0;}
.slip li{display:flex;justify-content:space-between;gap:12px;font-size:22px;padding:5px 0;line-height:1.4;}
.slip li b{flex:none;}
.slip .tot{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-size:16px;}
.slip .tot b{font-size:30px;}
.slip .cash{font-size:14px;color:var(--sub);text-align:right;}
.slip .warn{font-size:15px;color:var(--warn);font-weight:700;text-align:right;}
.slip .to{margin-top:14px;background:var(--note-soft);color:var(--note-ink);border-radius:var(--r-s);padding:10px 12px;font-size:19px;line-height:1.45;}
.slip .to small{display:block;font-size:12px;}
.slip .acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;}
.slip .acts button,.slip .acts a{min-height:52px;border-radius:var(--r-s);display:flex;align-items:center;justify-content:center;font-size:16px;text-decoration:none;}
.slip .acts .close{border:1px solid var(--line);background:var(--paper);}
.slip .acts .go{border:none;background:var(--call);color:#fff;font-weight:700;}
.zoom-tools{position:sticky;top:0;display:flex;justify-content:space-between;gap:8px;max-width:560px;margin:0 auto 10px;}
.zoom-tools button{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);font-size:18px;padding:0 14px;}
.zoom-stage{overflow:auto;max-width:560px;margin:0 auto;}
.zoom-stage img{display:block;width:100%;height:auto;transform-origin:top left;}

/* ---- フッター ---- */
.foot{margin-top:28px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;font-size:13px;}
.foot a{color:var(--sub);min-height:40px;display:inline-flex;align-items:center;}
.foot .demo{width:100%;text-align:center;color:var(--sub);font-size:12px;}

/* ---- 会社概要・FC募集 ---- */
.about h1{font-size:24px;margin-top:8px;text-wrap:balance;}
.about .lead{margin-top:8px;color:var(--sub);}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:16px;font-size:13px;color:var(--sub);}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid var(--line);background:var(--paper);}
.legend i.live{background:var(--accent);border-color:var(--accent);}
.region{margin-top:16px;}
.region h2{font-size:14px;color:var(--sub);margin-bottom:8px;}
.towns{display:flex;flex-wrap:wrap;gap:8px;}
.town{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid var(--line);background:var(--paper);color:var(--sub);text-decoration:none;font-size:15px;}
.town.live{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
.fc{margin-top:24px;background:var(--note-soft);color:var(--note-ink);border-radius:var(--r-m);padding:16px;}
.fc h2{font-size:17px;}
.fc a{display:inline-flex;align-items:center;margin-top:10px;min-height:var(--tap);padding:0 18px;border-radius:var(--r-s);background:var(--call);color:#fff;font-weight:700;text-decoration:none;}
.company{margin-top:24px;width:100%;border-collapse:collapse;font-size:15px;}
.company th,.company td{text-align:left;padding:10px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.company th{width:7em;color:var(--sub);font-weight:400;}

@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important;}}
