/* MJR_UX5_SPACE_TYPE_SHADOW stage-only: 8px grid + type x1.25 (16/20/25/31/39) + tinted shadows (ink-green hue, Y8 blur2xY) */
:root{--ink:#07100c;--night:#0a1711;--forest:#10271c;--forest-2:#173423;--mint:#8ae8b5;--mint-dark:#48bd81;--paper:#f5f2e9;--muted:#b8c4bc;--line:rgba(219,244,226,.16);--danger:#f29b88;--shell:1080px}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% -15%,rgba(72,189,129,.18),transparent 33%),var(--ink);color:var(--paper);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;line-height:1.62}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,16,12,.84),rgba(7,16,12,.98)),url("../img/background.webp") center/cover;opacity:.22;z-index:-1}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #ebcc78;outline-offset:3px}.shell{width:min(var(--shell),calc(100% - 40px));margin:auto}.site-header{height:76px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:900}.brand img{display:block;width:142px;max-height:44px;object-fit:contain;object-position:left center}.nav{display:flex;align-items:center;gap:16px;color:#d9e3dc;font-size:14px}.nav a:hover{color:var(--mint)}.nav .nav-cta{padding:8px 16px;background:var(--mint);color:#06110a;font-weight:900}.page-main{padding:72px 0 88px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--mint);font-size:12px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.eyebrow:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--mint);box-shadow:0 0 15px var(--mint)}h1{max-width:780px;margin:16px 0 16px;font-size:clamp(32px,5vw,39px);line-height:1.15;letter-spacing:-.05em}h2{margin:0 0 8px;font-size:clamp(26px,3vw,31px);line-height:1.15;letter-spacing:-.045em}.intro{max-width:720px;margin:0;color:#d7e1da;font-size:16px}.alert{max-width:780px;margin:24px 0 32px;padding:16px 16px;border:1px solid rgba(242,155,136,.5);background:rgba(242,155,136,.1);color:#ffe2dc;font-weight:800}.legal-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.legal-card{grid-column:span 6;padding:24px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(16,39,28,.92),rgba(7,16,12,.95));box-shadow:0 8px 16px rgba(7,16,12,.35)}.legal-card.wide{grid-column:span 12}.legal-card p,.legal-card li{color:#d6e0d9}.legal-card p:last-child{margin-bottom:0}.legal-card ul{margin:0;padding-left:16px}.legal-card li+li{margin-top:8px}.label{margin:0 0 8px;color:var(--mint);font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.disclaimer-note{margin-top:24px;color:var(--muted);font-size:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 16px;background:var(--mint);color:#06110a;font-weight:950}.button.ghost{border:1px solid rgba(138,232,181,.58);background:transparent;color:var(--mint)}.site-footer{border-top:1px solid var(--line);padding:32px 0 40px;color:var(--muted);font-size:14px}.footer-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.footer-links{display:flex;flex-wrap:wrap;gap:8px 16px}.footer-links a:hover{color:var(--mint)}@media(max-width:780px){.shell{width:min(100% - 24px,620px)}.site-header{height:66px}.brand img{width:112px}.nav a:not(.nav-cta){display:none}.page-main{padding:48px 0 64px}.legal-card,.legal-card.wide{grid-column:span 12;padding:24px}.footer-row{display:grid;gap:16px}h1{font-size:clamp(28px,9vw,39px)}}
/* BTN-6-MJR ICON SEMANTICS (Chris IN 2026-10-27 13:50 amend): REQUIRED one icon 20px · 10px gap on Primaries — semantic, NO blanket money.
   booking/pay → payment · Maps/reviews → map pin · 查時段/計價 (default) → calendar. */
.button,.nav-cta{gap:10px}
.button:not(.ghost):not(.secondary):not([href])::before,.button[href="/booking/"]::before,.button[href="#booking"]::before,.button[href^="https://wa.me"]::before,.nav-cta::before{content:"";width:20px;height:20px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E") center/20px 20px no-repeat}
/* booking/pay pages: payment/coin-dollar ONLY */
.page-booking .button:not(.ghost):not(.secondary)::before,.page-booking .nav-cta::before{background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M15.5 8.5a2.5 2.5 0 0 0-2.5-1.5h-2a2.5 2.5 0 0 0 0 5h2a2.5 2.5 0 0 1 0 5h-2a2.5 2.5 0 0 1-2.5-1.5'/%3E%3Cpath d='M12 6v2m0 8v2'/%3E%3C/svg%3E") center/20px 20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M15.5 8.5a2.5 2.5 0 0 0-2.5-1.5h-2a2.5 2.5 0 0 0 0 5h2a2.5 2.5 0 0 1 0 5h-2a2.5 2.5 0 0 1-2.5-1.5'/%3E%3Cpath d='M12 6v2m0 8v2'/%3E%3C/svg%3E") center/20px 20px no-repeat}
/* BTN-6-MJR primary CTA 6 upgrades (Chris IN 2026-10-27): h48/pad24 pill, 17/600, depth, rim, <=100ms feedback */
.button{min-height:48px;padding:0 24px;border-radius:24px;font-size:17px;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 16px rgba(7,16,12,.35);transition:box-shadow .2s ease-out,transform .12s ease-out}
.button:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.36),inset 0 1px 0 rgba(255,255,255,.16),0 8px 16px rgba(7,16,12,.35)}
.button:active{transform:translateY(1px)}
.button.tiny{min-height:48px;padding:0 24px;font-size:17px}
.nav-cta{min-height:48px;padding:0 24px;border-radius:24px;font-size:17px;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 16px rgba(7,16,12,.35);transition:box-shadow .2s ease-out,transform .12s ease-out}
.nav-cta:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.36),inset 0 1px 0 rgba(255,255,255,.16),0 8px 16px rgba(7,16,12,.35)}
.nav-cta:active{transform:translateY(1px)}
