/* Hallmark · restyle · genre editorial · theme: custom (意樹 stone + forest field) · signature: display headline over the case mosaic */
/* critique: one focal headline, tone-stepped surfaces, no rules, no eyebrows; image hover zoom kept on purpose as card feedback (waive 11) */
/* Restyle per taste-skill house rules + Hallmark floor + Web Interface Guidelines.
   Layout: one container, equal margins; very large display type as the focal point; surfaces separated by tone, never lines. */
:root{
  --ground:#F3F2EE; --surface:#DCDDD5; --deep:#C9CCC1; --ink:#171A17; --soft:#4A4F49;
  --accent:#3F5A3C; --on-accent:#EEF0EB; --field:#3F5A3C; --on-field:#EEF0EB;
  --wall:#232622; --furn:#7E847C; --furn2:#AEB2A8; --open:#9EA39A; --paper:#EEF0EB;
  --display:"Noto Serif TC","Songti TC","PMingLiU",serif;
  --body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --fs-display:clamp(34px,3.7vw,47px); --fs-section:clamp(30px,3.3vw,42px); --fs-h2:clamp(28px,3.4vw,44px); --fs-lead:clamp(19px,1.6vw,22px); --fs-body:17px; --fs-small:14px;
  --gap:24px; --section:clamp(96px,11vw,176px); --ease:cubic-bezier(.22,1,.36,1);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --ground:#141614; --surface:#1E211E; --deep:#2A2E2A; --ink:#ECEBE6; --soft:#B4B9B2;
  --accent:#A9C3A2; --on-accent:#141614; --field:#253323; --on-field:#E6EAE3;
  --wall:#E4E3DD; --furn:#868B84; --furn2:#4D514B; --open:#5E625C; --paper:#1A1D1A; color-scheme:dark}}
:root[data-theme="dark"]{
  --ground:#141614; --surface:#1E211E; --deep:#2A2E2A; --ink:#ECEBE6; --soft:#B4B9B2;
  --accent:#A9C3A2; --on-accent:#141614; --field:#253323; --on-field:#E6EAE3;
  --wall:#E4E3DD; --furn:#868B84; --furn2:#4D514B; --open:#5E625C; --paper:#1A1D1A; color-scheme:dark}
*{box-sizing:border-box}
html,body{overflow-x:clip}
body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:var(--fs-body);line-height:1.7;font-weight:400}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--ground)}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a{color:inherit}
img{display:block}
h1,h2,h3{font-family:var(--display);font-weight:600;text-wrap:balance;margin:0;overflow-wrap:break-word;min-width:0;scroll-margin-top:88px}
h3{font-size:var(--fs-lead);line-height:1.35}
p{margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:16px;top:-48px;z-index:20;background:var(--ink);color:var(--ground);padding:8px 16px;text-decoration:none;font-size:var(--fs-small)}
.skip:focus-visible{top:8px}

/* header: plain bar, wordmark, a few links, one action */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--ground)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand{font-family:var(--display);font-weight:600;font-size:20px;text-decoration:none}
.menu{display:flex;gap:32px;list-style:none;margin:0;padding:0}
.menu a{text-decoration:none;font-size:var(--fs-small);color:var(--soft);padding:8px 0;transition:color .2s}
.menu a:hover,.menu a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 28px;background:var(--accent);color:var(--on-accent);
  font:inherit;font-size:var(--fs-small);font-weight:500;text-decoration:none;border:0;border-radius:0;cursor:pointer;transition:transform .2s var(--ease),filter .2s}
.btn:hover{filter:brightness(1.12)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:var(--surface);color:var(--ink)}
.burger{display:none;position:relative;width:48px;height:48px;background:var(--surface);border:0;cursor:pointer}
.burger i{position:absolute;left:14px;right:14px;height:2px;background:var(--ink);transition:transform .5s var(--ease)}
.burger i:first-child{top:19px}.burger i:last-child{top:27px}
.burger[aria-expanded="true"] i:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] i:last-child{transform:translateY(-4px) rotate(-45deg)}
@media (max-width:860px){
  .menu{display:flex;visibility:hidden;opacity:0;position:fixed;left:0;right:0;top:calc(72px + env(safe-area-inset-top,0px));bottom:0;background:var(--ground);flex-direction:column;gap:8px;
    padding:32px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));overscroll-behavior:contain;transition:opacity .3s var(--ease),visibility 0s .3s}
  .menu.open{visibility:visible;opacity:1;transition:opacity .3s var(--ease)}
  .menu li{opacity:0;transform:translateY(24px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .menu.open li{opacity:1;transform:none}
  .menu.open li:nth-child(2){transition-delay:60ms}.menu.open li:nth-child(3){transition-delay:120ms}.menu.open li:nth-child(4){transition-delay:180ms}.menu.open li:nth-child(5){transition-delay:240ms}
  .menu a{display:block;padding:12px 0;font-family:var(--display);font-weight:600;font-size:25px;color:var(--ink)}
  .menu a[aria-current="page"]{text-decoration:underline}
  .burger{display:block}
  .nav .btn{display:none}
}

.ph{position:relative;overflow:hidden;background:var(--surface);aspect-ratio:3/2;max-width:100%}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
a:hover .ph img{transform:scale(1.05)}
section{padding-block:var(--section) 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
.sec-head h2{font-size:var(--fs-h2);line-height:1.2}
.sec-head p{color:var(--soft);max-width:28em}

/* hero */
.hero{padding-block:56px 0}
.hero h1{font-size:var(--fs-display);line-height:1.3;letter-spacing:.08em}
.hero-sub{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;margin-top:40px}
.hero-sub p{font-size:var(--fs-lead);max-width:26em;text-wrap:pretty}
.hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.textlink{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;font-size:var(--fs-small);padding:12px 0;transition:color .3s var(--ease)}
.textlink:hover{color:var(--accent)}
.assure{grid-column:1/-1;color:var(--soft);font-size:var(--fs-small)}
@media (min-width:861px){.menu-cta{display:none}}
@media (max-width:760px){.hero-sub{grid-template-columns:minmax(0,1fr)}}
.mosaic{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:64px}
.mosaic a{text-decoration:none;display:flex;flex-direction:column;gap:8px;min-width:0}
.mosaic .cap{font-size:var(--fs-small);color:var(--soft)}
@media (max-width:760px){.mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.mosaic a:nth-child(5){display:none}}

.statement{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap) 64px;align-items:start}
.statement h2{font-size:var(--fs-h2);line-height:1.25}
.statement p{font-size:var(--fs-lead);line-height:1.75}
@media (max-width:820px){.statement{grid-template-columns:minmax(0,1fr)}}

.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.types a{display:flex;flex-direction:column;justify-content:space-between;gap:40px;min-height:200px;padding:28px;background:var(--surface);text-decoration:none;transition:background .25s}
.types a:hover{background:var(--deep)}
.types h3{font-size:var(--fs-h2)}
.types span{color:var(--soft);font-variant-numeric:tabular-nums}
@media (max-width:640px){.types{grid-template-columns:minmax(0,1fr)}.types a{min-height:0}}
.themes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.themes a{display:flex;flex-direction:column;gap:12px;text-decoration:none;min-width:0}
.themes p{font-size:var(--fs-small);color:var(--soft)}
@media (max-width:900px){.themes{grid-template-columns:repeat(2,minmax(0,1fr))}}

.tagline-sec{padding-block:var(--section) 0}
.tagline{font-family:var(--display);font-weight:600;font-size:clamp(28px,4vw,48px);line-height:1.35;max-width:22em;text-wrap:balance}
.tagline .ch{opacity:.28}
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.faq-ask{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:var(--soft)}
.faq .qa{background:var(--surface);padding:28px 32px 32px}
.faq dt,.faq dd{position:relative;padding-left:44px}
.faq dt{font-family:var(--display);font-weight:600;font-size:var(--fs-lead);line-height:1.5;color:var(--ink);margin-bottom:12px}
.faq dd{margin:0;color:var(--soft);line-height:1.8}
.faq dt::before,.faq dd::before{position:absolute;left:0;top:0;width:28px;height:28px;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:16px;line-height:1}
.faq dt::before{content:"Q";background:var(--accent);color:var(--on-accent)}
.faq dd::before{content:"A";background:var(--deep);color:var(--ink);top:1px}
@media (max-width:760px){.faq .qa{padding:24px 20px 28px}}
@media (max-width:760px){.faq{grid-template-columns:minmax(0,1fr)}}
.band{background:var(--field);color:var(--on-field);margin-top:var(--section)}
.band .inner{padding-block:96px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--gap) 64px;align-items:end}
.band h2{font-size:var(--fs-h2);line-height:1.25}
.band p{font-size:var(--fs-lead)}
@media (max-width:820px){.band .inner{grid-template-columns:minmax(0,1fr);padding-block:64px}}

/* works */
.page-title{font-size:var(--fs-display);line-height:1.05;margin-bottom:40px}
.filters{display:flex;flex-direction:column;gap:12px;margin-bottom:48px}
.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.filter-row .fl{font-size:var(--fs-small);color:var(--soft);width:3em}
.filters button{font:inherit;font-size:var(--fs-small);background:var(--surface);color:var(--ink);border:0;min-height:40px;padding:8px 16px;cursor:pointer;transition:background .2s,transform .2s var(--ease)}
.filters button:hover{background:var(--deep)}
.filters button:active{transform:scale(.96)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.filters button span{opacity:.65;font-variant-numeric:tabular-nums}
.works{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px var(--gap)}
@media (max-width:1000px){.works{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:720px){.works{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:440px){.works{grid-template-columns:minmax(0,1fr)}}
.work{text-decoration:none;display:flex;flex-direction:column;gap:12px;min-width:0}
.work .meta{font-size:var(--fs-small);color:var(--soft);font-variant-numeric:tabular-nums}
.empty{color:var(--soft)}

/* case */
.back{display:inline-block;font-size:var(--fs-small);text-decoration:none;color:var(--soft);margin-bottom:24px;padding:8px 0}
.back:hover{color:var(--ink)}
.case-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--gap) 64px;align-items:start}
@media (max-width:860px){.case-head{grid-template-columns:minmax(0,1fr)}}
.case-head h1{font-size:var(--fs-display);line-height:1.3;letter-spacing:.08em;margin-bottom:24px}
.case-head .who{font-size:var(--fs-lead);margin-bottom:32px}
.specs{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 32px;margin:0;padding:24px;background:var(--surface)}
.specs dt{color:var(--soft);font-size:var(--fs-small);padding-top:2px}
.specs dd{margin:0;font-variant-numeric:tabular-nums}
.plan-wrap{background:var(--paper);padding:16px;overflow-x:auto}
.plan{width:100%;min-width:520px;height:auto;display:block}
.plan .floor{fill:var(--paper)}
.plan .open{fill:none;stroke:var(--open);stroke-width:1;stroke-dasharray:4 4}
.plan .wall{fill:none;stroke:var(--wall);stroke-width:5}
.plan .outer{fill:none;stroke:var(--wall);stroke-width:9}
.plan .fu{fill:none;stroke:var(--furn);stroke-width:1.2}
.plan .fu2{fill:none;stroke:var(--furn2);stroke-width:1}
.plan .gap{stroke:var(--paper);stroke-width:11}
.plan .leaf{stroke:var(--wall);stroke-width:1.6}
.plan .arc{fill:none;stroke:var(--furn);stroke-width:1;stroke-dasharray:3 3}
.plan .wingap{stroke:var(--paper);stroke-width:10}
.plan .win{stroke:var(--wall);stroke-width:1.2}
.plan .lbl{fill:var(--ink);font-family:var(--body);font-size:15px;font-weight:500;text-anchor:middle}
.plan .area{fill:var(--soft);font-family:var(--body);font-size:13px;text-anchor:middle;font-variant-numeric:tabular-nums}
.plan .lbl.sm{font-size:13px}.plan .area.sm{font-size:13px}
.plan .dim{stroke:var(--soft);stroke-width:1}
.plan .dimt{fill:var(--soft);font-family:var(--body);font-size:13px;text-anchor:middle}
.plan .unit{fill:var(--soft);font-family:var(--body);font-size:13px;text-anchor:end}
.plan .sb1{fill:var(--wall)}.plan .sb2{fill:var(--paper);stroke:var(--wall)}
.case-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--gap) 64px}
@media (max-width:860px){.case-grid{grid-template-columns:minmax(0,1fr)}}
.case-grid h2,.case-photos h2{font-size:clamp(24px,2.4vw,32px);margin-bottom:24px}
.notes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:20px}
.notes li{font-size:var(--fs-body);padding-left:20px;position:relative}
.notes li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;background:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.chips span{font-size:var(--fs-small);background:var(--surface);padding:4px 12px}
.mat{margin-top:40px;color:var(--soft);font-size:var(--fs-small)}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 16px}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:440px){.gallery{grid-template-columns:minmax(0,1fr)}}
.gallery figure{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.gallery figcaption{font-size:var(--fs-small);color:var(--soft)}
.case-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:var(--field);color:var(--on-field);padding:48px max(24px,4vw);margin-top:var(--section)}
.case-cta p{font-family:var(--display);font-weight:600;font-size:clamp(22px,2.4vw,32px)}
.case-cta .btn{background:var(--on-field);color:var(--field)}
.pager{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:48px}
.pager a{text-decoration:none;font-family:var(--display);font-weight:600;font-size:var(--fs-lead);padding:8px 0}
.pager a:hover{text-decoration:underline;text-underline-offset:6px}

/* services, about, contact */
.svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 64px}
@media (max-width:700px){.svc{grid-template-columns:minmax(0,1fr)}}
.svc h2{font-size:min(35px,var(--fs-h2));margin-bottom:8px}
.sec-head h2,.statement h2,.band h2,.case-grid h2,.case-photos h2{font-size:var(--fs-section);line-height:1.3;letter-spacing:.08em}
[data-view="home"] .hero h1,[data-view="works"] .page-title,[data-view="services"] .page-title,[data-view="about"] .page-title,[data-view="contact"] .page-title,[data-view="privacy"] .page-title,[data-view="notes"] .page-title{font-size:clamp(36px,4.3vw,55px)}
[data-view="services"] .page-title{margin-bottom:clamp(56px,6vw,80px)}
.svc .ph{margin-bottom:24px}
.svc .see{display:inline-block;margin-top:8px;font-size:var(--fs-small);color:var(--soft);text-decoration:underline;text-underline-offset:5px;padding:8px 0}
.svc .see:hover{color:var(--accent)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:1100px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.steps{grid-template-columns:minmax(0,1fr)}}
.steps li{padding:32px;background:var(--surface);display:flex;flex-direction:column;gap:8px;min-width:0}
.steps li:nth-child(even){background:var(--deep)}
@media (min-width:621px) and (max-width:1100px){.steps li:nth-child(even){background:var(--surface)}.steps li:nth-child(4n+2),.steps li:nth-child(4n+3){background:var(--deep)}}
@media (min-width:1101px){.steps li:nth-child(even){background:var(--surface)}.steps li:nth-child(2),.steps li:nth-child(4),.steps li:nth-child(5),.steps li:nth-child(7){background:var(--deep)}}
.steps .ico{width:32px;height:32px;color:var(--accent);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px;flex:none}
.steps .t{font-size:var(--fs-small);color:var(--soft);margin-top:auto;padding-top:16px}
.about-intro .page-title{margin:0 0 32px}
.about-intro p{font-size:var(--fs-lead);line-height:1.8;max-width:38em;text-wrap:pretty}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:clamp(64px,7vw,96px) 0 0}
@media (max-width:820px){.facts{grid-template-columns:minmax(0,1fr)}}
.facts>div{display:flex;flex-direction:column;gap:4px;padding:32px;background:var(--surface);min-width:0}
.facts>div:nth-child(2){background:var(--deep)}
.facts .ico{width:32px;height:32px;color:var(--accent);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px;flex:none}
.facts dt{font-size:var(--fs-small);color:var(--soft)}
.facts dd{margin:4px 0 0;font-family:var(--display);font-weight:600;font-size:var(--fs-lead)}
form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media (max-width:600px){form{grid-template-columns:minmax(0,1fr)}}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
.field label,.field .fl{font-size:var(--fs-small);color:var(--soft)}
.field input,.field select,.field textarea{font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:0;border-bottom:2px solid var(--deep);padding:12px;border-radius:0}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-bottom-color:var(--accent)}
.field textarea{min-height:120px;resize:vertical}
.pick{display:flex;flex-wrap:wrap;gap:8px}
.people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pick label{font-size:var(--fs-small);background:var(--surface);min-height:44px;display:inline-flex;align-items:center;padding:8px 16px;cursor:pointer;color:var(--ink)}
.pick input{position:absolute;opacity:0;pointer-events:none}
.pick label:has(input:checked){background:var(--ink);color:var(--ground)}
.pick label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.form-actions{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.note{font-size:var(--fs-small);color:var(--accent)}

.zoom{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:zoom-in}
.zoom:hover .ph img{transform:scale(1.04)}
.zoom-hint{font-size:var(--fs-small);color:var(--soft);margin-top:8px}
.lb{position:fixed;inset:0;z-index:50;background:rgba(12,14,12,.98);display:grid;grid-template-rows:auto minmax(0,1fr) auto;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));overscroll-behavior:contain}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:16px;color:#E9E8E3;font-size:var(--fs-small)}
.lb-stage{display:flex;align-items:center;justify-content:center;min-height:0;position:relative;padding-block:12px}
.lb-stage img{width:100%;height:100%;max-width:1536px;object-fit:contain;display:block}
.lb-stage .plan{min-width:0;width:100%;height:100%;background:#EEF0EB}
.lb-stage .plan{--paper:#EEF0EB;--wall:#232622;--ink:#171A17;--soft:#4A4F49;--furn:#7E847C;--furn2:#AEB2A8;--open:#9EA39A}
.lb button{min-width:48px;min-height:48px;border:0;background:rgba(233,232,227,.12);color:#E9E8E3;font:inherit;font-size:20px;cursor:pointer;transition:background .3s var(--ease)}
.lb button:hover{background:rgba(233,232,227,.24)}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%)}
.lb-prev{left:0}.lb-next{right:0}
.lb-cap{color:#E9E8E3;text-align:center;padding-top:12px;font-size:var(--fs-small)}
body.lb-open{overflow:hidden}
.lb[hidden]{display:none}
footer{margin-top:var(--section);padding-block:64px 40px;background:var(--surface);color:var(--ink)}
footer .mark{font-family:var(--display);font-weight:600;font-size:20px;line-height:1.3}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:8px;color:var(--soft);font-size:var(--fs-small)}
footer .row a{color:var(--soft);text-underline-offset:4px}
footer .row a:hover{color:var(--ink)}
.policy{max-width:760px}
.policy .lead{font-size:var(--fs-lead);margin-bottom:16px}
.policy h2{font-size:24px;letter-spacing:.04em;margin:56px 0 16px}
.policy p+p{margin-top:12px}
.policy ul{margin:8px 0 0;padding-left:1.4em;display:flex;flex-direction:column;gap:6px}
.policy ul+p{margin-top:16px}
.policy-dl{display:grid;grid-template-columns:5em minmax(0,1fr);gap:12px 24px;margin:8px 0 16px;padding:24px;background:var(--surface)}
.policy-dl dt{color:var(--soft);font-size:var(--fs-small);padding-top:2px}
.policy-dl dd{margin:0}
.policy .updated{margin-top:48px;color:var(--soft);font-size:var(--fs-small)}
@media (max-width:520px){.policy-dl{grid-template-columns:minmax(0,1fr);gap:4px}.policy-dl dd{margin-bottom:12px}}
#form .consent{grid-column:1/-1;margin:0;color:var(--soft);font-size:var(--fs-small)}
.consent a{color:var(--ink);text-underline-offset:4px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}a:hover .ph img{transform:none}}

/* 設計筆記 */
.notes-intro{font-size:var(--fs-lead);color:var(--soft);max-width:36em;margin:-8px 0 40px}
.note-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px var(--gap)}
@media (max-width:1000px){.note-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.note-list{grid-template-columns:minmax(0,1fr)}}
.note-card{text-decoration:none;display:flex;flex-direction:column;gap:12px;min-width:0}
.note-card h2{font-size:22px;line-height:1.45;letter-spacing:.02em}
.note-card .excerpt{font-size:var(--fs-small);color:var(--soft);line-height:1.8}
.note-meta{display:flex;align-items:center;gap:12px;font-size:var(--fs-small);color:var(--soft);font-variant-numeric:tabular-nums}
.note-tag{background:var(--accent);color:var(--on-accent);padding:2px 10px;font-size:13px}
.article{max-width:760px}
.note-head{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}
.note-head h1{font-size:var(--fs-display);line-height:1.35;letter-spacing:.06em}
.note-cover{margin-bottom:40px}
.note-body{font-size:var(--fs-body);line-height:1.9}
.note-body p{margin:0 0 16px}
.note-body .lead{font-size:var(--fs-lead);line-height:1.85}
.note-body h2{font-size:26px;line-height:1.4;letter-spacing:.04em;margin:56px 0 16px}
.note-body ul,.note-body ol{margin:0 0 16px;padding-left:1.4em;display:flex;flex-direction:column;gap:6px}
.note-body a{color:var(--accent);text-underline-offset:4px}
.note-body strong{font-weight:600}
.note-table{width:100%;border-collapse:collapse;margin:8px 0 24px;font-size:var(--fs-small);line-height:1.7}
.note-table th{text-align:left;font-weight:500;background:var(--deep);padding:12px 16px}
.note-table td{padding:12px 16px;background:var(--surface);vertical-align:top}
.note-table tr+tr td{border-top:4px solid var(--ground)}
@media (max-width:640px){.note-table{display:block;overflow-x:auto}.note-table th,.note-table td{min-width:120px}}
.callout{background:var(--surface);border-left:4px solid var(--accent);padding:20px 24px;margin:40px 0 32px}
.callout p{margin:0}
.note-related{margin-top:var(--section)}
.note-related h2{font-size:var(--fs-section);line-height:1.3;letter-spacing:.08em;margin-bottom:32px}

/* 獨立網站需要的基本設定（原本由 Claude 預覽外框提供） */
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}

/* 設計筆記：簡答、作者、常見問題、延伸閱讀 */
.note-meta{flex-wrap:wrap}
.note-author{padding-left:12px;border-left:1px solid var(--deep)}
.note-body .answer{background:var(--surface);border-left:4px solid var(--accent);padding:20px 24px;margin:0 0 32px}
.note-body .answer p{margin:0}
.note-body .answer .answer-label{font-family:var(--display);font-weight:600;color:var(--accent);letter-spacing:.08em;margin-bottom:6px}
.note-faq{margin-top:64px}
.note-faq h2{font-size:26px;line-height:1.4;letter-spacing:.04em;margin-bottom:20px}
.note-faq .faq{grid-template-columns:minmax(0,1fr)}
.note-related + .note-related{margin-top:clamp(64px,7vw,112px)}
.reading{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.reading a{display:flex;flex-direction:column;align-items:flex-start;gap:10px;height:100%;padding:24px;background:var(--surface);text-decoration:none;color:var(--ink);transition:background .2s}
.reading a:hover{background:var(--deep)}
.reading a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.reading strong{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.5}
.reading-ex{font-size:var(--fs-small);color:var(--soft);line-height:1.8}
@media (max-width:900px){.reading{grid-template-columns:minmax(0,1fr)}}

/* 案例說明：設計提案、示意圖 */
.disclaimer{margin:12px 0 0;font-size:var(--fs-small);color:var(--soft)}
.hero > .disclaimer{margin:-8px 0 28px}

/* 設計筆記：風格卡片（照片＋說明） */
.style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px var(--gap);margin:32px 0 12px}
.style-card{margin:0;display:flex;flex-direction:column;gap:14px;min-width:0}
.style-ph{display:block;overflow:hidden;background:var(--surface)}
.style-ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .6s var(--ease)}
.style-ph:hover img{transform:scale(1.03)}
.style-card h3{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:.04em;margin:0}
.style-card figcaption p{margin:0 0 6px;font-size:15px;line-height:1.8}
.style-see{font-size:var(--fs-small);color:var(--accent)}
.note-body .style-note{font-size:var(--fs-small);color:var(--soft);margin:0 0 24px}
@media (max-width:640px){.style-grid{grid-template-columns:minmax(0,1fr)}}

/* 文章標題區不要跟著網站選單固定在頂端 */
.note-head{position:static;z-index:auto;background:none}
.style-tag{font-size:var(--fs-small);color:var(--soft)}

/* 聯絡方式與浮動預約按鈕（2026-11-12） */
footer .contact-row{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:12px}
.soc-list{display:flex;gap:12px}
footer .row a.soc{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:filter .2s}
footer .row a.soc:hover{filter:brightness(1.12)}
footer .row a.soc:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.contact-direct{margin-top:16px;font-size:var(--fs-small);color:var(--soft)}
.contact-direct a{color:var(--ink);text-underline-offset:4px}
.book-fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:8;
  display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:999px;background:var(--accent);color:var(--on-accent);
  font-size:15px;font-weight:500;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.book-fab:hover{filter:brightness(1.08)}
.book-fab:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media print{.book-fab{display:none}}
footer{padding-bottom:112px}
footer .row a.soc .soc-i{width:24px;height:24px;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.soc-line{--m:url(data:image/png;base64,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)}
.soc-instagram{--m:url(data:image/png;base64,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)}
.soc-facebook{--m:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAEwUlEQVR4Ae3BPYilZx0H0POfd9cVIllM8KNRrDUjBBQRFo2wc3du1ElgDQELQWwMRJAtBlPY2FgMsthoQLASkiIGs7N77xhZTPwqlEAYsLZQbARBMCRmZ+ZnMYWFKd7VOzyXZ99zKolJO5XEpJ1KYtJOJTFpp5KYtFNJTNqpJCbtVBKTdiqJSTuVxKSdSmLSTiUxaaeSmLRTSUzaqSQm7VQSk3YqiUk7lcSknUpi0k4lcY8qvAcXcZ9TwQnu4G28hTfwtjNSSdwjCg/gSXwcl/BeXMA5p+LUCY5xjDv4Fw7xffzKClUS94CH8U08iQv+d7vYs0KVRMfuwzN4Ghf9/3axZ4UqiU69DzfxSZTV2MWeFaokOnQRN/AZq7WLPStUSXTmPH6Er6Cs1i72rFAl0Zmv44fOxi72rFAl0ZF34y940NnYxZ4VqiQ6cg3fc3Z2sWeFKolODHgdDzk7u9izQpVEJz6G3+F+ZyN4Gj+wQpVEJx7Dz9y9I7yK5/BL/BUn3tkRTqxQJdGJb+G77s4xnsF1HGmgkujE83jS3fkJvoojjVQSHSjcwBeM9yYewe81VEl0YAO3sG28P+MjONFQJdGBDdzCtvF+i0saqyQ6sIEFrhjvBh7TWCXRgQELzIz3Eh7XWCXRgQELzIz3Eh7XWCXRgQELzIy3jx2NVRIdGLDAzHj72NFYJdGBAUtsGW8fOxqrJDowYIkt4x1grrFKYo2dx/txAUc4wQmCIBjwAJ7DQ8Z7DVdxB4UB5VQQBMfYwD/xDytWSayxj+LXuB9v4QhHOMEJTnAeD2LD3XsDb2ID51FOBccI7mDAPr6GEytUSayxTRxaD8/jy4gVqiTW2CYOrYfruGbFKok1tolD6+EpPGvFKok1tolD6+ERvGrFKok1tolD7R3jE3jdilUSa2wTh9r7Ez6Fv1mxSmKNbeJQe3/Ap3FsxSqJNbaJQ+29gs85A5XEGtvEofau45ozUEmssU0cau8pPOsMVBJr7MP4MT6AYwRHOMaxU+fxIXzQ3TnCH/F3nMOAARtOvcupAd/AK85AJbHmCuW/xanCBbyMS8b7DT6L+I/yzk6ckUqiAxu4ibnxlnhUY5VEBzZwC9vGu43LGqskOrCBW9g23m1c1lgl0YEN3MK28W7jssYqiQ4MuIUrxruNyxqrJDowYIGZ8X6BmcYqiQ4MWGBmvAPMNVZJdGDAAjPjHWCusUqiAwMWmBlvgc9rrJLowIAltoy3jx2NVRIdGLDAzHj72NFYJdGBAQvMjLePHY1VEh0YsMDMeC/iqsYqiQ4MWGBmvBdxVWOVRAcGLDAz3gt4QmOVRAcGLDAz3gt4QmOVRAcGLDAz3k/xJY1VEh0YsMDMeD/HtsYqiQ4MWGBmvJdxRWOVRAcGLDAz3gHmGqskOjBggZnxDjDXWCXRgQFLbBnvAHONVRIdGLDElvEOMNdYJdGBAUtsGe8Ac41VEh0YsMSW8Q4w11gl0YEBS2wZ7wBzjVUSHRiwxJbxDjDXWCXRgXNY4rLxDjDXWCXRgXNY4rLxlnhUY5VEBwYssWW8fexorJLowIAFZsa7iS9qrJLowIDv4GHjvYZva6ySmLRTSUzaqSQm7VQSk3YqiUk7lcSknX8DRLLuUCAhumYAAAAASUVORK5CYII=)}
.soc-threads{--m:url(data:image/png;base64,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)}
footer .row a.soc .soc-facebook{transform:translate(1px,-2px)}

/* 服務頁：裝潢預算建議（2026-11-12） */
.budget-wrap{max-width:760px}
.budget-table th,.budget-table td{font-size:var(--fs-body);padding:16px 20px}
.budget-table td+td,.budget-table th+th{text-align:right;font-variant-numeric:tabular-nums}
.budget-note{max-width:760px;color:var(--soft);font-size:var(--fs-small);line-height:1.8}
.budget-note a{color:var(--ink);text-underline-offset:4px}
.budget-table{display:table;width:100%}

/* 關於我們：承諾、報價範例、寫法對照（2026-11-12） */
.about-sec{margin-top:clamp(72px,8vw,112px)}
.promises{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.promises li{background:var(--surface);padding:28px}
.promises .pn{display:block;font-family:var(--display);color:var(--accent);font-size:var(--fs-lead);margin-bottom:12px}
.promises h3{font-family:var(--display);font-weight:600;font-size:var(--fs-lead);margin:0 0 8px}
.promises p{margin:0;color:var(--soft)}
@media (max-width:1000px){.promises{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.promises{grid-template-columns:minmax(0,1fr)}}
.quote-wrap{overflow-x:auto}
.quote-table,.compare-table{display:table;width:100%}
.quote-table td:nth-child(n+3),.quote-table th:nth-child(n+3){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.quote-table{min-width:640px}
.compare-table td a{display:block;margin-top:4px;font-size:var(--fs-small);color:var(--ink);text-underline-offset:4px}

/* Cookie 提示（GA4_ID 有填才會出現） */
.cookie-note{position:fixed;left:16px;bottom:16px;z-index:9;max-width:440px;display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--surface);color:var(--ink);box-shadow:0 6px 24px rgba(0,0,0,.16);font-size:var(--fs-small);line-height:1.6}
.cookie-note[hidden]{display:none}
.cookie-note p{margin:0}
.cookie-note a{color:var(--ink);text-underline-offset:4px}
.cookie-note .btn{flex:none}
@media (max-width:640px){.cookie-note{right:16px;max-width:none}body.has-cookie .book-fab{bottom:132px}}
