/* Layout: spec-sheet industrial. Charcoal hero band, white body, mono data labels, coral used only as rule/marker. Light-only by brand choice. */
:root{
  --charcoal:#374250; --coral:#D36767;
  --ink:#1E252E; --muted:#596371; --line:#D8DCE2; --paper:#FFFFFF; --ground:#F3F4F6; --on-dark:#E9ECF0; --on-dark-muted:#AEB6C1;
  --f-display:"Archivo","Noto Sans SC","Noto Sans TC",Arial Narrow,Arial,sans-serif;
  --f-body:"IBM Plex Sans","Noto Sans SC","Noto Sans TC",Helvetica,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1120px; color-scheme:light;
}
[data-l="tc"],.tc{--f-display:"Archivo","Noto Sans TC",Arial,sans-serif;--f-body:"IBM Plex Sans","Noto Sans TC",Helvetica,Arial,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.6 var(--f-body)}
a{color:inherit}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:20px}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.005em}
.ph{display:inline-block}
.nw{white-space:nowrap}
.mono{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}

header.top{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:env(safe-area-inset-top,0px);z-index:5}
header.top .wrap{display:flex;align-items:center;gap:12px 22px;padding-block:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand img{height:44px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:6px 20px;flex-wrap:wrap}
.nav a{text-decoration:none;font-size:.95rem;color:var(--muted);padding-block:4px;border-bottom:2px solid transparent}
.nav a[aria-current="page"],.nav a.active,.nav a:hover{color:var(--ink);border-bottom-color:var(--coral)}
.has-sub{position:relative}
.has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.sub{list-style:none;margin:0;padding:8px 0;display:none;position:absolute;left:-14px;top:100%;min-width:200px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--coral);box-shadow:0 8px 24px rgba(30,37,46,.08)}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{display:block;padding:8px 16px;border:0;color:var(--ink)}
.sub a:hover,.sub a[aria-current="page"]{background:var(--ground)}
.menu-btn{display:none;font:600 .9rem var(--f-body);background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:6px 12px;cursor:pointer}
.langs{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.langs a,.langs button{font:500 .85rem var(--f-body);padding:5px 10px;background:var(--paper);color:var(--muted);border:0;cursor:pointer;text-decoration:none}
.langs a+a,.langs button+button{border-left:1px solid var(--line)}
.langs [aria-current="true"]{background:var(--charcoal);color:#fff}

.hero{background:var(--charcoal);color:var(--on-dark)}
.hero .wrap{padding-block:64px 56px;display:grid;gap:28px}
.eyebrow{color:var(--on-dark-muted);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--coral)}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.04;font-weight:750;font-stretch:78%;color:#fff;max-width:18ch}
[data-l="sc"] .hero h1,[data-l="tc"] .hero h1,.zh .hero h1{font-weight:700;line-height:1.18;max-width:16em}
.hero p.lede{font-size:1.15rem;max-width:58ch;margin:0;color:var(--on-dark)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 20px;border-radius:4px;text-decoration:none;font-weight:600;font-size:1rem}
.btn-light{background:#fff;color:var(--charcoal)}
.btn-light .num{font-variant-numeric:tabular-nums;font-family:var(--f-mono);letter-spacing:.02em}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.18);margin-top:12px}
.facts div{padding:16px 16px 0 0;min-width:0}
.facts div+div{padding-left:16px;border-left:1px solid rgba(255,255,255,.18)}
.facts b{display:block;font-family:var(--f-mono);font-weight:500;color:#fff;font-size:.95rem}
.facts span{color:var(--on-dark-muted);font-size:.9rem}

section.block{padding-block:64px}
section.block+section.block{border-top:1px solid var(--line)}
.sec-head{display:grid;gap:8px;margin-bottom:28px}
.sec-head .mono{color:var(--coral)}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;font-stretch:85%}
.sec-head p{margin:0;color:var(--muted);max-width:60ch}

.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0;border-top:2px solid var(--charcoal)}
.svc article{padding:22px 22px 24px 0;border-bottom:1px solid var(--line);min-width:0}
.svc h3{font-size:1.2rem;font-weight:700;font-stretch:90%;margin-bottom:6px}
.svc p{margin:0;color:var(--muted)}

.sheet{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--charcoal)}
.sheet-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line);color:var(--muted)}
.sheet dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.sheet .row{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;padding:16px 20px;border-bottom:1px solid var(--line);min-width:0}
.sheet .row:nth-child(odd){border-right:1px solid var(--line)}
.sheet .n{font-family:var(--f-mono);font-size:.8rem;color:var(--coral);padding-top:3px;font-variant-numeric:tabular-nums}
.sheet dt{font-weight:600}
.sheet dd{margin:0;grid-column:2;color:var(--muted);font-size:.95rem}

.mkts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:28px}
.mkts h3{font-family:var(--f-mono);font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.mkts ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mkts li{font-size:1.05rem}

.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:40px;align-items:start}
.about .who b{display:block;font-family:var(--f-display);font-size:1.5rem;font-stretch:88%;font-weight:700;line-height:1.2}
.about .who span{color:var(--muted)}
.about p{margin:0 0 14px;max-width:62ch}

.contact{background:var(--charcoal);color:var(--on-dark)}
.contact .wrap{padding-block:56px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.contact h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);font-stretch:85%}
.contact p{margin:10px 0 0;color:var(--on-dark-muted);max-width:44ch}
.contact dl{margin:0;display:grid;gap:14px}
.contact dt{color:var(--on-dark-muted)}
.contact dd{margin:2px 0 0;font-size:1.2rem;color:#fff;overflow-wrap:anywhere}
.contact dd a{text-decoration:none;border-bottom:1px solid var(--coral)}
.contact .num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

.guide-hero{background:var(--paper);border-bottom:1px solid var(--line)}
.guide-hero .wrap{padding-block:52px 40px;display:grid;gap:14px}
.guide-hero .eyebrow{color:var(--muted)}
.guide-hero h1{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.1;font-weight:750;font-stretch:80%;max-width:24ch}
[data-l="sc"] .guide-hero h1,[data-l="tc"] .guide-hero h1,.zh .guide-hero h1{line-height:1.25;font-weight:700}
.guide-hero p{margin:0;color:var(--muted);max-width:60ch;font-size:1.1rem}
.faq{max-width:760px;display:grid;gap:0}
.faq section{padding-block:26px;border-bottom:1px solid var(--line)}
.faq h2{font-size:1.35rem;font-weight:700;font-stretch:90%;margin-bottom:8px}
.faq p{margin:0}
.note{color:var(--muted);font-size:.9rem;margin-top:24px}

footer.foot{background:var(--paper);border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
footer.foot .wrap{padding-block:26px;display:flex;justify-content:space-between;gap:10px 24px;flex-wrap:wrap}
footer.foot p{margin:0}

@media (max-width:760px){
  .hero .wrap{padding-block:44px 40px}
  .facts{grid-template-columns:1fr}
  .facts div,.facts div+div{padding:12px 0;border-left:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .sheet dl{grid-template-columns:1fr}
  .sheet .row:nth-child(odd){border-right:0}
  .about,.contact .wrap{grid-template-columns:1fr;gap:20px}
  section.block{padding-block:48px}
  .brand img{height:38px}
}
@media (prefers-reduced-motion:no-preference){.btn,.nav a{transition:border-color .15s,color .15s}}

/* Residential + shared pages: ivory daylight band, charcoal type, coral as rule; coral-ink for small coral text (AA contrast). */
:root{--ivory:#FAF6F1;--coral-ink:#A84848}
.crumbs{font-size:.88rem;color:var(--muted);margin:0}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.crumbs li+li::before{content:"/";margin-right:4px;color:var(--line)}
.crumbs a{text-decoration:none;border-bottom:1px solid var(--line)}
.r-hero{background:var(--ivory);border-bottom:1px solid var(--line)}
.r-hero .wrap{padding-block:56px 52px;display:grid;gap:22px}
.r-hero .eyebrow{color:var(--coral-ink)}
.r-hero h1{font-size:clamp(2rem,4.8vw,3.5rem);line-height:1.08;font-weight:700;font-stretch:84%;color:var(--charcoal);max-width:22ch}
.zh .r-hero h1{line-height:1.25;max-width:17em;font-stretch:100%}
.r-hero .lede{font-size:1.15rem;max-width:60ch;margin:0;color:var(--ink)}
.r-hero .note{margin:0;font-size:.95rem;color:var(--muted);max-width:60ch}
.btn-dark{background:var(--charcoal);color:#fff}
.btn-dark:hover{background:var(--ink)}
.btn-line{color:var(--charcoal);border:1px solid var(--charcoal)}
.btn-line:hover{background:var(--paper)}
.r-block{padding-block:44px;background:var(--paper)}
.r-block+.r-block{border-top:1px solid var(--line)}
.r-block.alt{background:var(--ivory)}
.r-block h2{font-size:clamp(1.45rem,2.6vw,1.95rem);font-weight:700;font-stretch:88%;color:var(--charcoal);margin-bottom:14px;max-width:40ch}
.zh .r-block h2{font-stretch:100%;max-width:24em}
.r-block h2::before{content:"";display:block;width:28px;height:2px;background:var(--coral);margin-bottom:14px}
.prose{max-width:700px}
.prose p{margin:0 0 14px}
.prose p:last-child{margin-bottom:0}
.zh .prose p,.zh .r-hero .lede{line-height:1.85}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:700px}
.ticks li{padding-left:26px;position:relative}
.ticks li::before{content:"";position:absolute;left:2px;top:.6em;width:12px;height:2px;background:var(--coral)}
.callout{max-width:700px;background:var(--ivory);border-left:3px solid var(--coral);padding:20px 24px}
.callout h2{font-size:1.25rem;margin-bottom:8px}
.callout h2::before{display:none}
.more{display:inline-block;margin-top:16px;font-weight:600;color:var(--charcoal);text-decoration:none;border-bottom:2px solid var(--coral);padding-bottom:2px}
.more::after{content:" \2192"}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin-top:8px}
.card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--charcoal);padding:22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.alt .card{background:#fff}
.card h3{font-size:1.2rem;font-weight:700;font-stretch:90%}
.card p{margin:0;color:var(--muted);flex:1}
.card .more{margin-top:6px;align-self:flex-start}
.card.lbl .mono{color:var(--coral-ink)}
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px}
.split .card{padding:30px;border-top-width:4px}
.split .card h3{font-size:1.45rem}
.split .tone-res{background:var(--ivory);border-top-color:var(--coral)}
.split .tone-com{background:var(--charcoal);border-color:var(--charcoal);color:var(--on-dark)}
.split .tone-com h3{color:#fff}
.split .tone-com p{color:var(--on-dark-muted)}
.split .tone-com .more{color:#fff}
.relinks{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.relinks a{display:inline-block;padding:9px 14px;border:1px solid var(--line);border-radius:4px;text-decoration:none;background:var(--paper);font-size:.95rem}
.relinks a:hover{border-color:var(--charcoal)}
.qa{max-width:760px;margin:0}
.qa div{padding-block:18px;border-bottom:1px solid var(--line)}
.qa div:first-child{border-top:1px solid var(--line)}
.qa dt{font-weight:600;font-size:1.08rem;margin-bottom:6px}
.qa dd{margin:0;color:var(--ink)}
.qa a{color:var(--charcoal);text-decoration-color:var(--coral);text-underline-offset:3px}
.com-band{background:var(--charcoal);color:var(--on-dark)}
.com-band .wrap{padding-block:52px;display:grid;gap:22px}
.com-band h2{color:#fff;font-size:clamp(1.5rem,2.8vw,2rem);font-stretch:85%}
.com-band p.lede{margin:0;color:var(--on-dark);max-width:62ch}
.com-band ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));border-top:1px solid rgba(255,255,255,.18)}
.com-band li{padding:14px 18px 14px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.com-band li b{display:block;color:#fff;font-weight:600}
.com-band li span{color:var(--on-dark-muted);font-size:.95rem}
.com-band .ctas a{color:#fff}
.r-contact{background:var(--ivory);border-top:1px solid var(--line)}
.r-contact .wrap{padding-block:56px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:start}
.r-contact h2{font-size:clamp(1.6rem,3vw,2.2rem);font-stretch:85%;color:var(--charcoal)}
.zh .r-contact h2{font-stretch:100%}
.r-contact .intro{margin:12px 0 0;max-width:46ch}
.direct{margin:26px 0 0;display:grid;gap:16px}
.direct dt{color:var(--muted)}
.direct dd{margin:2px 0 0;font-size:1.15rem;overflow-wrap:anywhere}
.direct dd a{text-decoration:none;border-bottom:1px solid var(--coral)}
.direct .who{display:block;font-size:.9rem;color:var(--muted)}
.choices+.direct{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;margin-top:22px}
.choices a{display:grid;gap:4px;padding:20px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--coral);text-decoration:none}
.choices a:hover{border-color:var(--charcoal)}
.choices b{font-family:var(--f-display);font-size:1.25rem;font-stretch:88%}
.choices span{color:var(--muted)}
.choices span::after{content:" \2192"}
.recip{background:var(--ivory);border-top:1px solid var(--line)}
.recip .wrap{padding-block:40px;display:grid;gap:10px}
.recip h2{font-size:1.4rem;font-stretch:88%;color:var(--charcoal)}
.recip p{margin:0;max-width:62ch}
/* inquiry form */
.inq{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--charcoal);padding:26px;display:grid;gap:16px}
.inq h3{font-size:1.3rem;font-stretch:90%;color:var(--charcoal)}
.inq .intro{margin:-8px 0 0;color:var(--muted)}
.inq .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.inq label,.inq legend{display:block;font-weight:600;font-size:.95rem;margin-bottom:6px;padding:0}
.inq fieldset{border:0;margin:0;padding:0;min-width:0}
.inq input[type=text],.inq input[type=email],.inq input[type=tel],.inq select,.inq textarea{width:100%;font:400 16px/1.4 var(--f-body);color:var(--ink);background:#fff;border:1px solid #9AA3AE;border-radius:4px;padding:10px 12px}
.inq textarea{min-height:110px;resize:vertical}
.inq input:focus-visible,.inq select:focus-visible,.inq textarea:focus-visible{outline:2px solid var(--coral);outline-offset:1px;border-color:var(--charcoal)}
.inq [aria-invalid=true]{border-color:var(--coral-ink);box-shadow:0 0 0 1px var(--coral-ink)}
.inq .hint{font-size:.88rem;color:var(--muted);margin:0}
.inq .err{font-size:.88rem;color:var(--coral-ink);margin:4px 0 0;min-height:0}
.inq .err:empty{display:none}
.inq .opts{display:flex;flex-wrap:wrap;gap:8px 18px}
.inq .opts label{font-weight:400;display:flex;align-items:center;gap:8px;margin:0}
.inq .opts input{width:18px;height:18px;accent-color:var(--charcoal)}
.inq .ack{font-size:.88rem;color:var(--muted);margin:0}
.inq .ack a{color:var(--ink)}
.inq button{justify-self:start;font:600 1rem var(--f-body);background:var(--charcoal);color:#fff;border:0;border-radius:4px;padding:13px 22px;cursor:pointer}
.inq button:hover{background:var(--ink)}
.inq button:disabled{opacity:.6;cursor:wait}
.form-status:empty{display:none}
.form-status{margin:0;padding:12px 14px;border-radius:4px;font-size:.95rem}
.form-status.is-ok{background:#EEF4EF;color:#24502E}
.form-status.is-err{background:#F8ECEC;color:#7A2E2E}
.form-status.is-info{background:var(--ground);color:var(--ink)}
.hp{display:none}
footer.foot a{color:inherit}
.review{margin:0;background:#fff;border:1px solid var(--line);border-top:3px solid var(--coral);padding:22px;display:flex;flex-direction:column;gap:14px}
.review blockquote{margin:0;flex:1}
.review blockquote p{margin:0;font-size:1.05rem;line-height:1.6;color:var(--ink)}
.review figcaption b{display:block;font-weight:600}
.review figcaption span{color:var(--muted);font-size:.9rem}
.reviews .more{margin-top:22px}
/* photos */
.r-hero.has-photo .wrap{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:48px}
.hero-text{display:grid;gap:22px;min-width:0}
.hero-photo{margin:0;justify-self:end;max-width:420px;width:100%}
.hero-photo img{display:block;width:100%;height:auto;border-radius:6px;box-shadow:0 14px 34px rgba(30,37,46,.14)}
.who-row{display:flex;gap:14px;align-items:center}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.who-photo{display:block;width:100%;max-width:260px;height:auto;border-radius:6px;margin-bottom:16px}
@media (max-width:900px){
  .js .menu-btn{display:inline-block}
  .js .nav{display:none;order:5;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:6px 0 10px;border-top:1px solid var(--line)}
  .js .nav.open{display:flex}
  .js .nav>a,.js .has-sub>a{padding:12px 2px;border-bottom:1px solid var(--line)}
  .has-sub>a::after{display:none}
  .sub{display:block;position:static;border:0;box-shadow:none;padding:0 0 6px 14px;min-width:0;background:transparent}
  .sub a{padding:9px 2px;color:var(--muted)}
}
@media (max-width:760px){
  .r-hero .wrap{padding-block:40px 36px}
  .r-block{padding-block:36px}
  .r-contact .wrap{grid-template-columns:1fr;gap:28px}
  .r-hero.has-photo .wrap{grid-template-columns:1fr;gap:28px}
  .hero-photo{justify-self:start;max-width:340px}
  .inq{padding:20px}
  .inq .row2{grid-template-columns:1fr}
  .split .card{padding:24px}
}
