:root {
  --c-primary: #006241;
  --c-accent: #D4E9E2;
  --c-bg: #F2F0EB;
  --c-text: #1E3932;
  --c-on-primary: #FFFFFF;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans TC", sans-serif;
  color: var(--c-text);
  background: var(--c-bg);
  line-height: 1.65;
  -webkit-text-size-adjust: 100%;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; overflow-wrap: anywhere; }
h1, h2, h3, p, dl, dd { margin: 0; }
h1, h2, h3 { line-height: 1.3; text-wrap: balance; }
h1 { font-size: clamp(1.85rem, 6vw, 3.5rem); letter-spacing: -.035em; }
h2 { font-size: 1.45rem; letter-spacing: -.02em; }
h3 { font-size: 1.05rem; }
a { color: inherit; text-underline-offset: .22em; }
a:focus-visible { outline: 2px solid var(--c-text); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
.icon { flex: 0 0 24px; }
.store-shell { width: min(100%, 760px); margin-inline: auto; padding: 48px 20px 24px; }
.store-header { text-align: center; padding-block: 12px 36px; }
.store-logo { width: 88px; height: 88px; object-fit: contain; margin: 0 auto 24px; border-radius: 20px; }
.tagline { margin: 18px auto 0; max-width: 40ch; font-size: 1rem; }
.notice { display: flex; gap: 12px; align-items: flex-start; padding: 20px; border: 1px solid var(--c-text); border-radius: 16px; margin-bottom: 28px; }
.notice .icon { margin-top: 2px; }
.notice p, .item-copy, .detail, .brand-section, .action span { min-width: 0; }
.store-details { display: grid; gap: 24px; padding-block: 24px; border-block: 1px solid var(--c-accent); }
.detail h2 { display: flex; align-items: center; gap: 10px; font-size: .9rem; margin-bottom: 12px; }
.hours { display: grid; gap: 8px; }
.hours > div { display: flex; flex-wrap: wrap; justify-content: space-between; column-gap: 16px; }
.hours dt, .hours dd { min-width: 0; }
.store-links { display: grid; gap: 12px; margin-block: 28px 36px; }
.action { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 52px; padding: 13px 22px; border: 1px solid var(--c-text); border-radius: 999px; text-decoration: none; font-weight: 600; transition: transform 160ms ease; }
.action-primary { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
.category-nav { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 12px 24px; border-bottom: 1px solid var(--c-accent); }
.category-nav a { display: flex; align-items: center; max-width: 100%; min-height: 44px; padding: 10px 16px; border: 1px solid var(--c-text); border-radius: 999px; text-decoration: none; font-size: .9rem; }
.menu-category { padding-top: 40px; scroll-margin-top: 24px; }
.category-heading { margin-bottom: 12px; }
.eyebrow { font-size: .7rem; letter-spacing: .16em; font-weight: 700; margin-bottom: 10px; }
.menu-items { list-style: none; padding: 0; margin: 0; }
.menu-item { display: grid; gap: 20px; padding-block: 24px; border-bottom: 1px solid var(--c-accent); }
.item-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; align-items: baseline; }
.item-heading h3 { flex: 1 1 10rem; min-width: 0; }
.price { font-weight: 700; font-variant-numeric: tabular-nums; }
.item-description { margin-top: 10px; font-size: .95rem; }
.item-options { margin-top: 12px; padding-inline-start: 12px; border-inline-start: 2px solid var(--c-text); font-size: .8rem; }
.content-image { width: 100%; max-height: 480px; object-fit: cover; border-radius: 12px; }
.brand .store-shell { max-width: 700px; }
.brand .store-header { padding-block: 28px 44px; }
.brand h1 { letter-spacing: .04em; }
.brand-sections { margin-bottom: 32px; }
.brand-section { padding-block: 36px; border-top: 1px solid var(--c-accent); }
.brand-section h2 { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px; }
.brand-section h2 .icon { margin-top: 3px; }
.section-body { white-space: pre-line; line-height: 1.9; }
.brand-section .content-image { margin-top: 24px; }
.site-footer { padding: 32px 20px 40px; text-align: center; font-size: .75rem; letter-spacing: .08em; }
.site-footer a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; max-width: 100%; }
.skip-link { position: absolute; top: 12px; left: 12px; max-width: calc(100% - 24px); min-height: 44px; padding: 10px 16px; background: var(--c-bg); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.neutral-page {
  --c-primary: #404040;
  --c-accent: #E5E5E5;
  --c-bg: #F5F5F5;
  --c-text: #262626;
  --c-on-primary: #FFFFFF;
  color: var(--c-text);
  background: var(--c-bg);
  display: grid; place-items: center; min-height: 100vh; min-height: 100svh; padding: 32px 24px; }
.neutral-content { width: min(100%, 440px); text-align: center; }
.neutral-content h1 { font-size: 1.6rem; }
.neutral-content p { margin-top: 20px; white-space: pre-line; }
@media (min-width: 560px) {
  .store-shell { padding: 64px 40px 32px; }
  .store-details, .store-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-links .action:only-child { grid-column: 1 / -1; }
  .menu-item:has(.content-image) { grid-template-columns: minmax(0, 1fr) 120px; }
  .menu-item .content-image { aspect-ratio: 1; object-fit: cover; }
}
@media (hover: hover) {
  .action:hover { transform: translateY(-2px); text-decoration: underline; }
  .category-nav a:hover { text-decoration: underline; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .action:hover { transform: none; }
}

/* ---- 第二期點餐 ---- */
.order-bar{padding:24px 0;margin-bottom:24px;border-block:1px solid var(--c-accent)}
.order-bar h2,.order-bar h3{margin-bottom:12px}.order-bar p{margin-block:8px}
.order-button,.add-item,.order-calls button{font:inherit;min-height:44px;max-width:100%;padding:10px 18px;border:1px solid var(--c-text);border-radius:999px;background:var(--c-bg);color:var(--c-text);cursor:pointer;overflow-wrap:anywhere}
.add-item{margin-top:16px}.order-button:disabled,.add-item:disabled,.order-calls button:disabled{opacity:.55;cursor:not-allowed}
.order-primary{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary);font-weight:700}
.order-button:focus-visible,.add-item:focus-visible,.order-calls button:focus-visible,.order-dialog :focus-visible{outline:2px solid #00D1FF;outline-offset:2px}
.order-actions,.order-calls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-block:12px}
.order-calls[hidden],.add-item[hidden],.my-orders[hidden],.order-pay[hidden]{display:none}
.order-pay{margin-top:24px}.external-order .action{margin-block:12px}.order-pay .store-links{margin-block:12px 0}
.link-domain{display:block;font-size:.75rem;font-weight:400;opacity:.85}
.my-orders{margin-top:24px}.order-line{padding-block:18px;border-bottom:1px solid var(--c-accent);min-width:0}.order-line p{white-space:pre-wrap}.order-line .order-button{margin-top:8px}
.order-feedback:empty,.order-pending:empty{display:none}.order-feedback,.order-pending{margin-block:16px;padding:16px;border:1px solid var(--c-text);border-radius:16px}
.order-dialog{box-sizing:border-box;width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:20px;color:var(--c-text);background:var(--c-bg);border:1px solid var(--c-text);border-radius:20px;overflow:auto;overflow-wrap:anywhere}
.order-dialog::backdrop{background:rgba(0,0,0,.6)}.order-close{display:block;margin:12px 0 20px auto}.order-dialog h2{font-size:1.4rem}
.order-dialog fieldset{min-width:0;margin:16px 0;padding:12px;border:1px solid var(--c-accent);border-radius:12px}.order-dialog legend{max-width:100%;font-weight:700}
.order-option{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.order-option input{width:22px;height:22px;flex-shrink:0;accent-color:var(--c-primary)}
.order-field{display:grid;gap:8px;margin-block:16px}.order-field textarea{font:inherit;width:100%;min-width:0;min-height:88px;padding:12px;background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-text);border-radius:12px;resize:vertical}
.order-error{font-weight:700;margin-block:12px}.order-total{font-weight:700;font-size:1.2rem;margin-block:16px}.is-sold-out .item-heading{opacity:.6}.sold-out-label{font-weight:700}
#cart-root:not(:empty){position:fixed;z-index:20;bottom:0;left:0;right:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--c-bg);border-top:1px solid var(--c-accent);text-align:center}
#cart-root .order-button{width:min(100%,680px)}.has-cart{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
.order-live{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* 對話框底部動作固定可見；關閉鈕在右上；訂單狀態醒目 */
.order-dialog{position:relative}.order-dialog>h2{padding-right:96px;min-height:44px}.order-close{position:absolute;top:16px;right:16px;margin:0}
.order-dialog-footer{position:sticky;bottom:-20px;margin:16px -20px -20px;padding:12px 20px calc(16px + env(safe-area-inset-bottom));background:var(--c-bg);border-top:1px solid var(--c-accent)}
.order-dialog-footer .order-primary{width:100%}.order-dialog-footer p{margin-block:6px}
.order-status{display:inline-block;font-weight:700;padding:6px 14px;border:1px solid var(--c-text);border-radius:999px}
.order-status.status-accepted,.order-status.status-done{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}

.wifi{padding-block:24px;border-bottom:1px solid var(--c-accent)}
.wifi h2{display:flex;align-items:center;gap:10px;font-size:.9rem;margin-bottom:12px}
.wifi-ssid{white-space:pre-wrap}
.wifi-password{white-space:pre-wrap;font-size:1.05rem;font-weight:700;user-select:all;overflow-wrap:anywhere}
.copy-button{margin-top:16px;font:inherit;background:transparent;color:inherit;cursor:pointer;width:100%}
.copy-button[hidden]{display:none}

/* 語言切換（店家有英文翻譯時才出現） */
.lang-switch{display:flex;justify-content:flex-end;gap:8px;margin:-24px 0 16px}
.lang-switch a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--c-text);border-radius:999px;font-size:.85rem;text-decoration:none}
.lang-switch a[aria-current="true"]{background:var(--c-text);color:var(--c-bg);font-weight:700}
