:root{--g:#f2b705;--gt:#a97c00;--bg:#fff;--card:#fff;--ink:#1a1a1a;--mut:#666;--line:#e5e5e5;--ph:#f0f0f0}
*{box-sizing:border-box}html{scroll-padding-top:4.375rem}
body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.7 "Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;padding-bottom:3.5rem}
a{color:inherit;text-decoration:none}img{max-width:100%}
header{position:sticky;top:0;z-index:9;background:#fff;box-shadow:0 2px 0.5rem #0000000f;border-bottom:3px solid var(--g)}
.hb{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 1rem;min-height:3.75rem;max-width:75rem;margin:0 auto}
.brand{display:flex;align-items:center;gap:0.625rem;margin-right:auto}.brand img{height:2.5rem;width:auto}
.bt{display:flex;flex-direction:column}.bt b{display:flex;justify-content:space-between;font:700 1.375rem/1 "Noto Sans TC",sans-serif;color:#111}
.bt small{white-space:nowrap;line-height:1;font-size:0.625rem;letter-spacing:.06em;color:#6b7684}
nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 0.5rem 0.75rem #0000001a;flex-direction:column;padding:0.375rem 1rem 0.75rem}
body.mo nav{display:flex}nav a{color:#333;padding:0.625rem 0;border-bottom:1px solid #eee}nav a.on{color:var(--gt)}
.mb{background:none;border:1px solid #ccc;color:#222;border-radius:0;padding:0.375rem 0.75rem;font:inherit;font-size:0.875rem}
@media(min-width:900px){nav{display:flex;position:static;flex-direction:row;padding:0;background:none}nav a{border:0;padding:0.375rem 0.625rem;font-size:0.875rem;border-bottom:2px solid transparent}nav a.on{border-color:var(--g)}.mb{display:none}.bar3{display:none!important}body{padding-bottom:0}}
.w{max-width:68.75rem;margin:0 auto;padding:2.25rem 1.125rem}
h1,h2,h3{font-family:"Noto Sans TC",sans-serif}
h2{font-size:1.625rem;line-height:1.3;margin:0 0 0.375rem;border-left:0.375rem solid var(--g);padding-left:0.625rem}h2 small{font-size:0.75rem;letter-spacing:.2em;color:var(--mut);margin-left:0.5rem;font-weight:500}
.sub{color:var(--mut);margin:0 0 1.25rem;font-size:0.9375rem}
.hero{position:relative;min-height:28.75rem;display:flex;align-items:flex-end;padding:3.5rem 1.125rem 4rem;background:#0b0b0b center/cover;color:#fff}
.hero .in{max-width:68.75rem;margin:0 auto;width:100%}
.hero h1{font:900 clamp(3.25rem,12vw,6.5rem)/1.05 "Noto Serif TC","Songti TC",serif;margin:0 0 0.875rem}
.hero p{margin:4px 0;color:#d8dfe8}.hero .en{letter-spacing:.3em;font-size:0.75rem;color:#aab6c4;margin-top:0.625rem}
.btn{display:inline-block;background:var(--g);color:#111;font-weight:700;padding:0.625rem 1.25rem;margin-top:1.25rem;font-size:0.9375rem;border:0;cursor:pointer;font-family:inherit}
.band{display:grid;grid-template-columns:repeat(2,1fr);gap:0.625rem;margin:-28px auto 0;position:relative;padding:0 1.125rem;max-width:68.75rem}
.band a{background:#fff;box-shadow:0 4px 0.875rem #00000018;border-left:4px solid var(--g);padding:1rem 0.875rem}.band b{display:block;color:#111}.band small{color:#777;font-size:0.6875rem}
.g2,.g3,.g4{display:grid;gap:0.875rem}.g2{grid-template-columns:1fr}.g3,.g4{grid-template-columns:1fr 1fr}
@media(min-width:760px){.band{grid-template-columns:repeat(4,1fr)}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--card);box-shadow:0 2px 0.5rem #0000000d;border:1px solid var(--line);border-left:4px solid var(--g);overflow:hidden;display:block}
.card .t{padding:0.75rem 0.875rem}.card h3{margin:0 0 2px;font-size:1rem}.card p{margin:0;font-size:0.8125rem;color:var(--mut)}
.cimg{width:100%;height:8.125rem;object-fit:cover;display:block}.photo{width:100%;height:21.25rem;object-fit:cover;object-position:50% 0;display:block}
.pb{background:#f6f6f3;border-bottom:3px solid var(--g);padding:2.125rem 1.125rem}.pb .in{max-width:68.75rem;margin:0 auto}.pb h1{margin:0 0 0.375rem;font-size:1.625rem;border-left:0.375rem solid var(--g);padding-left:0.625rem}.pb p{margin:0;color:#666}
.cta{text-align:center;padding:2.5rem 1.125rem;color:#fff;background:#0b0b0b center/cover}.cta h2{border:0;padding:0;font-size:1.375rem;color:#fff}
.tabs{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1rem}.tabs a{padding:0.375rem 0.875rem;border:1px solid var(--line);font-size:0.8125rem;cursor:pointer;background:var(--card)}.tabs a.on{background:var(--g);color:#111;border-color:var(--g)}
.bar{height:0.5rem;background:var(--line);margin-top:0.5rem}.bar i{display:block;height:100%;background:var(--g)}.tag{font-size:0.75rem;color:var(--gt)}
.nws{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--g);padding:1.125rem 1.25rem;margin-bottom:0.875rem}.nws time{display:block;color:var(--gt);font-size:0.875rem;letter-spacing:.06em;margin-bottom:0.375rem}.nws h2{border:0;padding:0;font-size:1.1875rem;line-height:1.5;margin:0 0 0.625rem}.nws p{margin:0;font-size:0.9375rem;line-height:1.9;color:var(--mut)}
.ct p{margin:0 0 0.875rem}.ct b{display:block;font-size:0.75rem;color:var(--mut)}.ct a{color:var(--gt)}
form{display:grid;gap:0.625rem}input,textarea{width:100%;padding:0.625rem;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit}
footer{background:#f3f3f0;color:#666;font-size:0.75rem;text-align:center;padding:1.125rem 0.75rem;border-top:1px solid var(--line)}
.bar3{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:#fff;border-top:2px solid var(--g)}.bar3 a{flex:1;text-align:center;padding:0.875rem 4px;font-weight:700;font-size:0.875rem;border-right:1px solid #eee}.bar3 a:first-child{background:var(--g);color:#111}
#lb{display:none;position:fixed;inset:0;background:#000d;z-index:99;overflow:auto;padding:0.75rem}#lb img{max-width:100%;display:block;margin:0 auto}

.nw{padding:0.5rem 0 2.125rem;border-bottom:2px solid #e3e3e3;margin-bottom:1.875rem}.nw:last-child{border-bottom:0}
.nw h2{border:0;padding:0;margin:0 0 1.125rem;font-size:clamp(1.625rem,6.4vw,2.375rem);line-height:1.35;font-weight:800;color:#0d1b4a}
.nw .m{display:flex;align-items:center;gap:0.625rem;color:#666;font-size:1.0625rem;margin-bottom:0.5rem}.nw .m svg{width:1.375rem;height:1.375rem;flex:none}
.nw .cat{color:#666;font-size:1rem;margin:0 0 1.25rem 2rem}
.nw .ph{width:100%;height:clamp(18.75rem,62vw,32.5rem);object-fit:cover;object-position:50% 0;display:block;cursor:zoom-in}
.nw .ex{margin:1.375rem 0;color:#666;font-size:1.0625rem;line-height:1.85;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.nw .ex.open{display:block}
.nw .btn{margin:0;padding:0.875rem 1.75rem;border-radius:4px;font-size:1rem}

.ctw{display:grid;gap:1.875rem}@media(min-width:900px){.ctw{grid-template-columns:1fr 1.5fr;gap:3rem}}
.ctl .ti{font-size:1.0625rem;line-height:2;margin:0 0 0.375rem;color:#333}.ctl hr{border:0;border-top:3px solid #0d1b4a;margin:1.375rem 0}
.ci{list-style:none;margin:0;padding:0;display:grid;gap:0.875rem}.ci li{display:flex;gap:0.75rem;align-items:center;font-size:1.0625rem}.ci svg{flex:none}.ci a{color:var(--gt)}
.map{position:relative;height:18.75rem;background:#e9ece9;overflow:hidden}.map .mp{position:absolute;inset:0;display:grid;place-items:center;color:#889;font-size:0.9375rem}.map iframe{position:relative;width:100%;height:100%;border:0;display:block}.map .mo{position:absolute;left:0.625rem;top:0.625rem;background:#fff;padding:0.375rem 0.75rem;font-size:0.8125rem;font-weight:700;color:#1a4fb8;box-shadow:0 1px 0.375rem #0003}
.tb2{display:flex;margin-bottom:1.375rem}.tb2 a{padding:0.875rem 1.75rem;border:1px solid #cfd6e4;font-size:1.0625rem;cursor:pointer;color:#555}.tb2 a.on{background:#0d1b4a;color:#fff;border-color:#0d1b4a}
.in1{font-size:1.0625rem;color:#555;margin:0 0 0.625rem}.rq{color:#d4001a;font-weight:700;font-size:0.875rem;margin:0 0 1rem}
#fm{gap:0.875rem}#fm input:not([type=checkbox]),#fm textarea{background:#f1f1ef;border:0;padding:1rem 1.125rem;font-size:1rem;border-radius:0}
.r2{display:grid;gap:0.875rem;grid-template-columns:1fr}.r3{display:grid;gap:0.875rem;grid-template-columns:1fr}@media(min-width:700px){.r2{grid-template-columns:1fr 1fr}.r3{grid-template-columns:1fr 1fr 1fr}}
.ck{background:#f1f1ef;padding:1rem 1.125rem;display:flex;flex-wrap:wrap;gap:0.625rem 1.125rem;align-items:center;font-size:1rem}.ck label{display:flex;align-items:center;gap:0.375rem;cursor:pointer}.ck input{width:1.125rem;height:1.125rem;padding:0;accent-color:#a97c00}

.st{margin:0;font-size:0.9375rem;min-height:0}.st.err{color:#d4001a;font-weight:700}
.ok{background:#f6f6f3;border-left:0.375rem solid var(--g);padding:1.75rem 1.5rem}.ok b{display:block;font-size:1.375rem;margin-bottom:0.5rem;color:#0d1b4a}.ok p{margin:0;color:#555;font-size:1rem;line-height:1.8}
#fm button:disabled{opacity:.6;cursor:wait}

@media(min-width:760px){
.cimg[data-z]{height:auto!important;aspect-ratio:3/4;object-position:50% 0!important}
.photo{height:auto!important;max-height:35rem}
.g2,.g3,.g4{align-items:start}
}
.card .cimg{height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%}


/* ===== v9 全畫面（以 rem 等比例放大）===== */
:root{--px:clamp(18px,5vw,110px)}
.bt{gap:.3rem}
.abt{display:grid;gap:.75rem}
@media(min-width:900px){
html{font-size:clamp(16px,.98vw,30px)}
header{font-size:.85rem}
.hb{max-width:none;padding:.6em var(--px);min-height:0;gap:1.2em}
.brand{gap:.8em}.brand img{height:3em}
.bt{gap:.5em}.bt b{font-size:1.55em}.bt small{font-size:.68em;letter-spacing:.08em}
nav{gap:.2em}nav a{white-space:nowrap;font-size:1em;padding:.5em .85em;border-bottom-width:3px;font-weight:500}
.w,.hero .in,.pb .in{max-width:none}
.w{padding:3.75rem var(--px)}
.hero{padding:5.5rem var(--px) 7.5rem;min-height:min(80vh,50rem)}
.hero .in{padding:0}
.hero h1{font-size:5.8rem}
.hero p{font-size:1.3rem}.hero .en{font-size:.85rem}
.band{max-width:none;padding:0 var(--px);margin-top:-3rem;gap:1.25rem}
.band a{padding:1.5rem}.band b{font-size:1.4rem}.band small{font-size:.9rem}
.pb{padding:2.75rem var(--px)}.pb h1{font-size:2.4rem}.pb p{font-size:1.1rem}
h2{font-size:2.1rem}
.sub{font-size:1.2rem;max-width:72ch;line-height:1.95}
.btn{font-size:1.1rem;padding:.8em 1.8em}
.abt{grid-template-columns:1fr 2fr;gap:4rem;align-items:start}.abt .sub{margin:0 0 1.6rem}
.g2,.g3,.g4{gap:1.6rem}
.g2{grid-template-columns:4fr 7fr;gap:4rem;align-items:center}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(2,1fr)}
.card .t{padding:1.25rem 1.5rem}.card h3{font-size:1.4rem;margin-bottom:.4rem}.card p{font-size:1.05rem}
.tag{font-size:1rem}
.tabs a{font-size:1.1rem;padding:.55em 1.5em}
.photo{max-height:42rem}
.cta{padding:5rem var(--px)}.cta h2{font-size:2.3rem;margin-bottom:.6rem}
footer{font-size:1rem;padding:1.75rem .75rem}
.nw{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:4rem;align-items:start;padding-bottom:3rem;margin-bottom:3rem}
.nw .ph{grid-column:1;grid-row:1/span 6;height:auto!important;max-height:none}
.nw>*:not(.ph){grid-column:2}
.nw h2{font-size:2.5rem}.nw .m{font-size:1.15rem}.nw .cat{font-size:1.1rem}
.nw .ex{font-size:1.15rem}.nw .btn{font-size:1.1rem;padding:.9em 2em}
.g2 h2{font-size:2.2rem!important;margin-bottom:.9rem}
.g2~*,.w>.g2[style]{margin-top:3rem!important}
.ctw{grid-template-columns:1fr 1.6fr;gap:4.5rem}.map{height:24rem}
.ctl .ti{font-size:1.2rem}.ci li{font-size:1.2rem}.in1{font-size:1.2rem}.rq{font-size:1rem}
.tb2 a{font-size:1.2rem}
#fm input:not([type=checkbox]),#fm textarea{font-size:1.1rem}.ck{font-size:1.1rem}.ck input{width:1.1rem;height:1.1rem}
}
@media(min-width:1150px){header{font-size:1.05rem}}
@media(min-width:1300px){header{font-size:1.15rem}}
@media(min-width:1100px){
.g4{grid-template-columns:repeat(4,1fr)}
.cimg[data-z]{aspect-ratio:4/5}
}

/* ===== v11 字體與行距（參考較緊湊、層次分明的新聞版面）===== */
.nw{padding:.5rem 0 2.5rem;margin-bottom:2.5rem}
.nw h2{font-size:clamp(1.375rem,5.6vw,1.75rem);line-height:1.3;font-weight:700;letter-spacing:.01em;margin:0 0 1.75rem}
.nw .m{font-size:.9375rem;gap:.5rem;margin-bottom:.625rem}.nw .m svg{width:1.125rem;height:1.125rem}
.nw .cat{font-size:.875rem;margin:0 0 1.75rem 1.625rem}
.nw .ex{font-size:1rem;line-height:1.7;letter-spacing:.02em;margin:1.75rem 0 2rem}
.nw .btn{font-size:.9375rem;padding:.75rem 1.5rem}
.sub{line-height:1.75}.card p{line-height:1.6}.ctl .ti{line-height:1.8}
.pb h1{font-size:1.5rem}
@media(min-width:900px){
.nw h2{font-size:2rem;line-height:1.3;margin-bottom:1.5rem}
.nw .m{font-size:1rem}.nw .cat{font-size:.95rem}
.nw .ex{font-size:1.1rem;line-height:1.7}
.nw .btn{font-size:1rem}
.sub{line-height:1.8}
.pb h1{font-size:2.2rem}
}

/* ===== 服務項目案例頁 /work/ ===== */
.ch{margin-top:2.5rem}
.case{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.case h2{border:0;padding:0;font-size:1.25rem;line-height:1.35;margin:0 0 .375rem;color:#0d1b4a}
.case .cm{margin:0 0 .75rem;color:var(--gt);font-size:.875rem}
.case .sub{margin-bottom:1rem}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}
.gal figure{margin:0}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;cursor:zoom-in}
.gal figcaption{font-size:.8125rem;color:var(--mut);margin-top:.25rem}
@media(min-width:760px){.gal{grid-template-columns:repeat(3,1fr);gap:1rem}}
@media(min-width:900px){.case h2{font-size:1.6rem}.case .cm{font-size:1rem}.gal figcaption{font-size:.95rem}.ch{margin-top:4rem}}
.w>.ch:first-child{margin-top:0}
