*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.8 var(--body);padding-bottom:calc(76px + env(safe-area-inset-bottom));text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}h1,h2,p,dl,dd,figure,blockquote{margin:0}
a{color:inherit;text-underline-offset:3px}a:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:10px 14px;z-index:20}.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;min-height:60px}
.brand{text-decoration:none;font-weight:700}.top nav{display:none}.top nav a{text-decoration:none;padding:10px 12px}.top-line{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;text-decoration:none;font-weight:700;font-size:17px;letter-spacing:.04em}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.svc-list{list-style:none;padding:0;margin:0}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.gal svg{width:100%;height:auto;aspect-ratio:300/380}.gal figcaption{font-size:14px;margin-top:6px}
.art-note,.fine{font-size:14px;margin-top:14px;opacity:.8}
.menu div{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:12px 0}.menu dt{flex:1}.menu dd{font-weight:700;white-space:nowrap}
.hours{width:100%;border-collapse:collapse}.hours th,.hours td{padding:11px 0;text-align:left;font-weight:400}.hours td{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.tbc{display:inline-block;padding:1px 10px;border:2px dashed currentColor;font-weight:700;border-radius:4px}
.links{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}.links a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px}
.where p{margin-top:6px}.where a[href^=tel]{display:inline-block;padding:6px 0}
.foot{padding:40px 20px 32px;text-align:center}.foot-name{font-weight:700}.demo{font-size:13px;margin-top:6px;max-width:34em;margin-inline:auto;opacity:.85}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:15;display:grid;grid-template-columns:3fr 2fr;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
.bar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;font-weight:700;font-size:17px;text-decoration:none;border-radius:var(--bar-r,6px)}
@media(min-width:900px){body{padding-bottom:0}.bar{display:none}.top nav{display:flex}.top-line{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;text-decoration:none;font-weight:700}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
/* 雁沙龍：民生一路259號木門牌 × 清水模 × 飛雁。concrete / walnut / steel / amber lamp */
:root{--bg:#CFCAC1;--ink:#22272B;--steel:#22272B;--wood:#7A4A26;--amber:#C98A3B;--paper:#E9E3D8;--focus:#7A4A26;--body:'Noto Sans TC',sans-serif;--num:'Big Shoulders Display',sans-serif;--bar-r:2px}
body{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 baseFrequency='.8' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .2 0 0 0 0 .2 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3Ccircle cx='30' cy='30' r='5' fill='%23b4aea4'/%3E%3Ccircle cx='150' cy='30' r='5' fill='%23b4aea4'/%3E%3Ccircle cx='30' cy='150' r='5' fill='%23b4aea4'/%3E%3Ccircle cx='150' cy='150' r='5' fill='%23b4aea4'/%3E%3C/svg%3E")}
.top{background:var(--steel);color:var(--paper)}.brand{font-size:20px;font-weight:900;letter-spacing:.3em}.top nav a{color:var(--paper)}.top-line{background:var(--amber);color:var(--steel)}
.hero{background:var(--steel);color:var(--paper);padding:34px 20px 0;display:grid;gap:12px;overflow:hidden}
.loc{font-size:15px;color:var(--amber);font-weight:700}h1{margin:10px 0 18px;line-height:1}h1 .zh{display:block;font-size:clamp(72px,21vw,132px);font-weight:900;letter-spacing:.04em}
h1 .en{display:block;font-family:var(--num);font-weight:700;font-size:24px;letter-spacing:.06em;line-height:1.2;color:#B9B3A8;margin-top:12px}
.motto{font-size:22px;font-weight:700;line-height:1.6;margin-bottom:24px}.ez{font-size:15px;margin-top:16px;color:#C9C3B8}.ez a{color:var(--amber);font-weight:700;display:inline-block;padding:8px 0}
.btn{border-radius:2px}.btn.pri{background:var(--amber);color:var(--steel)}.btn.sec{color:var(--paper);box-shadow:inset 0 0 0 2px var(--paper)}
.hero-art{width:min(88vw,400px);margin:10px auto -8px}.geese{animation:fly 2.4s ease-out both}@keyframes fly{from{transform:translate(-30px,20px);opacity:0}to{transform:none;opacity:1}}
.proof{display:grid;grid-template-columns:repeat(3,1fr);background:var(--wood);color:#F0E4CC;border-top:6px solid var(--amber)}.proof p{padding:18px 10px;border-right:1px solid #ffffff22}.proof p:last-child{border:0}.proof b{display:block;font-family:var(--num);font-size:34px;line-height:1.1}.proof span{font-size:13px}
section.svc,section.price,section.rev,section.visit{padding:56px 20px;max-width:1100px;margin:0 auto}
h2{font-size:32px;font-weight:900;letter-spacing:.08em;margin-bottom:22px;padding-bottom:10px;border-bottom:6px solid var(--steel)}
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:30px;border-top:2px solid var(--steel)}.svc-list li{padding:14px 4px;border-bottom:2px solid var(--steel);font-weight:700;font-size:18px}
.svc-list li:nth-child(odd){border-right:2px solid var(--steel)}.svc-list li:nth-child(even){padding-left:14px}
.gal figure{background:var(--steel);padding:6px}.gal figcaption{color:var(--paper);padding:2px 4px}
.menu{background:var(--paper);padding:6px 20px;border-left:10px solid var(--wood)}.menu div{border-bottom:2px solid #22272B22}.menu div:last-child{border:0}.menu dd{color:var(--wood);font-size:18px}
.revs{display:grid;gap:16px}.revs blockquote{background:var(--steel);color:var(--paper);padding:24px 22px;position:relative}.revs blockquote::before{content:"“";font-family:var(--num);font-size:80px;line-height:.6;color:var(--amber);display:block;height:30px}.revs cite{display:block;font-style:normal;font-size:13px;color:#B9B3A8;margin-top:12px}
.visit-grid{display:grid;gap:28px}.hours{background:var(--paper)}.hours th{padding-left:18px}.hours td{padding-right:18px}.hours tr+tr{border-top:2px solid #22272B18}.tbc{color:#8A3B12;border-color:#8A3B12}
.note-tbc{background:var(--steel);color:var(--paper);padding:14px 16px;margin:14px 0;font-size:15px;border-left:6px solid var(--amber)}
.addr{font-size:22px;font-weight:900}.where a{font-weight:700;color:#5A3416}.links a{background:var(--steel);color:var(--paper)!important;text-decoration:none}
.foot{background:var(--steel);color:var(--paper)}.foot-name{font-family:var(--num);font-size:22px;letter-spacing:.04em}
.bar{background:var(--steel)}.bar-line{background:var(--amber);color:var(--steel)}.bar-tel{background:var(--paper);color:var(--steel)}
@media(min-width:900px){.hero{grid-template-columns:1.2fr 1fr;padding:70px max(40px,calc(50vw - 560px)) 0;align-items:end;gap:40px}.hero-copy{padding-bottom:80px}.hero-art{width:100%;max-width:440px;margin:0}
.svc-list{grid-template-columns:repeat(4,1fr)}.svc-list li:nth-child(n){border-right:2px solid var(--steel);padding-left:14px}.svc-list li:nth-child(4n){border-right:0}
.revs{grid-template-columns:repeat(3,1fr)}.visit-grid{grid-template-columns:1fr 1fr;gap:56px}.gal{gap:20px}}
.proof p{text-align:center}@media(min-width:900px){.proof{padding:0 max(40px,calc(50vw - 560px))}}
@media(max-width:899px){.hero-copy+.hero-art{margin-top:-10px}.ez{margin-bottom:0}}
