@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&family=Manrope:wght@400;600;700;800&display=swap');:root{--navy:#102a3a;--dark:#0b1f2c;--teal:#16b8ad;--cream:#f5f7f5;--ink:#172d39;--muted:#647782}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,'Noto Sans TC',sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}header{position:sticky;top:0;z-index:30;background:linear-gradient(180deg,rgba(9,28,40,.86) 0%,rgba(13,38,53,.80) 100%);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}header::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px;background:linear-gradient(180deg,rgba(13,38,53,.22),rgba(13,38,53,0));pointer-events:none}.topline{background:var(--navy);color:#c8dadc;padding:8px max(5%,calc((100% - 1240px)/2));font-size:12px;letter-spacing:.5px}.nav{max-width:1240px;margin:auto;padding:18px 24px;display:flex;align-items:center;gap:25px;justify-content:space-between}.brand{font-weight:800;font-size:25px;letter-spacing:2px;color:var(--navy);white-space:nowrap}.brand span{display:block;font-size:9px;letter-spacing:3.4px;color:#68818b;margin-top:2px}.links{display:flex;gap:23px;align-items:center}.links a{font-size:14px;font-weight:600;white-space:nowrap}.links a.active,.links a:hover{color:#009e96}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 25px;background:var(--teal);color:#fff;font-weight:700;border-radius:3px;transition:.2s;border:0;cursor:pointer}.btn:hover{background:#0d948e;transform:translateY(-1px)}.btn.outline{background:transparent;border:1px solid #a9c5c7;color:var(--navy)}.btn.dark{background:var(--navy)}.menu{display:none;background:none;border:0;font-size:26px}.hero{min-height:620px;display:flex;align-items:center;background:linear-gradient(90deg,#081e2ceF 0%,#0b2639d9 48%,#0b263966 100%),url('img/hero.jpg?v=20261103c') center/cover;color:white}.wrap{max-width:1240px;padding:0 24px;margin:auto}.hero .wrap{width:100%}.eyebrow{color:var(--teal);font-size:13px;letter-spacing:3px;font-weight:800}.hero h1{font-size:clamp(40px,5.4vw,72px);line-height:1.3;letter-spacing:2px;margin:23px 0;max-width:850px}.hero p{max-width:610px;line-height:2;color:#d8e5e8}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}.hero .outline{color:white;border-color:#91b3b8}.section{padding:95px 0}.soft{background:var(--cream)}.darksection{background:var(--navy);color:white}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:36px}.section h2,.pagehero h1{font-size:clamp(30px,3.5vw,46px);margin:10px 0 15px;letter-spacing:1px}.lead{line-height:2;color:var(--muted);max-width:750px}.darksection .lead{color:#b9cdd2}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{background:white;border:1px solid #e3eaeb;padding:30px;transition:.2s}.card:hover{border-color:var(--teal);transform:translateY(-4px);box-shadow:0 15px 35px #0c2b3712}.card .number{color:var(--teal);font-weight:800;font-size:12px;letter-spacing:2px}.card h3{font-size:20px;margin:22px 0 12px}.card p{font-size:14px;color:#657985;line-height:1.9;margin:0}.card .more{display:block;margin-top:23px;color:#009e96;font-weight:700;font-size:13px}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.photo{width:100%;height:430px;object-fit:cover}.pillrow{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.pill{border:1px solid #b9d2d3;padding:9px 15px;font-size:13px;color:#32606b}.pagehero{background:linear-gradient(100deg,#0a2231ef,#10394ccc),url('img/switch.jpg?v=20261103c') center/cover;color:white;padding:110px 0}.pagehero p{color:#cfdee2;line-height:1.9}.casegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.case{background:#fff;border:1px solid #e1e8ea;overflow:hidden}.case img{width:100%;height:230px;object-fit:cover}.case .content{padding:24px}.case h3{font-size:20px}.case p{color:#687d86;line-height:1.8}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.step{border-top:2px solid var(--teal);padding:24px;background:white}.step strong{color:#12aaa3;font-size:26px}.step h3{margin:13px 0}.step p{line-height:1.8;color:var(--muted)}.faqs details{border-bottom:1px solid #dce5e6;padding:22px 5px}.faqs summary{cursor:pointer;font-weight:700;font-size:17px}.faqs p{color:var(--muted);line-height:2}.contactbox{padding:38px;background:#f4f8f8}.field{display:grid;gap:8px;margin:15px 0}.field input,.field select,.field textarea{padding:14px;border:1px solid #cddbdc;font:inherit;width:100%;background:#fff}.field label{font-size:13px;font-weight:700}.cta{background:#0f3445;color:white;padding:70px 0}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}footer{background:#091e2b;color:#a7bec6;padding:55px 0 25px}footer .foot{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:40px}footer h3{color:white}footer a{display:block;margin:12px 0}footer small{display:block;border-top:1px solid #294453;margin-top:45px;padding-top:22px}.floating{position:fixed;bottom:25px;right:25px;z-index:20;background:#16b8ad;color:white;padding:15px 21px;border-radius:50px;font-weight:800;box-shadow:0 8px 25px #1239}.note{font-size:12px;color:#71858e;line-height:1.8}@media(max-width:1050px){.links{gap:12px}.links a{font-size:12px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.topline{font-size:10px;padding:8px 16px}.nav{padding:14px 18px}.brand{font-size:21px}.menu{display:block}.links{display:none;position:absolute;top:100%;left:0;right:0;background:white;flex-direction:column;align-items:stretch;padding:20px 25px;box-shadow:0 15px 20px #1232}.links.open{display:flex}.links a{font-size:16px;padding:9px}.hero{min-height:560px}.hero h1{font-size:39px}.section{padding:65px 0}.sectionhead{display:block}.grid,.casegrid,.steps,.split,footer .foot{grid-template-columns:1fr}.photo{height:300px}.cta .wrap{display:block}.cta .btn{margin-top:20px}.pagehero{padding:75px 0}}.brand-logo{height:46px;width:auto;display:block}@media(max-width:760px){.brand-logo{height:36px}}
.brand-logo{height:50px;filter:drop-shadow(0 0 .6px rgba(255,255,255,.95)) drop-shadow(0 0 .6px rgba(255,255,255,.95)) drop-shadow(0 0 4px rgba(255,255,255,.25))}
.topline{background:transparent;border-bottom:1px solid rgba(255,255,255,.06)}
.steps.flow{grid-template-columns:repeat(6,1fr);gap:34px}
.steps.flow .step{position:relative;padding:22px 16px}
.steps.flow .step p{font-size:14px;margin:0}
.steps.flow .step:not(:last-child)::after{content:"";position:absolute;top:50%;right:-27px;width:20px;height:20px;transform:translateY(-50%);opacity:.45;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316b8ad' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.faqcat{margin:42px 0 6px;font-size:15px;letter-spacing:2px;color:#009e96;border-left:3px solid var(--teal);padding-left:12px}
.faqcat:first-child{margin-top:0}
@media(max-width:1050px){.steps.flow{grid-template-columns:repeat(3,1fr)}.steps.flow .step:nth-child(3)::after{display:none}}
@media(max-width:760px){.brand-logo{height:40px}.steps.flow{grid-template-columns:1fr;gap:30px}.steps.flow .step:not(:last-child)::after,.steps.flow .step:nth-child(3)::after{display:block;top:auto;bottom:-26px;right:50%;transform:translateX(50%) rotate(90deg)}}

.links a{color:#d9e6ea}.links a.active,.links a:hover{color:#5fd8ce}
.menu{color:#fff}
@media(max-width:760px){.links{background:rgba(9,28,40,.97);box-shadow:0 15px 20px rgba(0,0,0,.25)}}

/* ===== visual upgrade v */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
.links{gap:4px}.links>a,.dd>a{padding:10px 13px;border-radius:6px;transition:background .2s,color .2s}
.links>a:hover,.dd>a:hover{background:rgba(255,255,255,.07)}
.links a.navcta{background:var(--teal);color:#fff!important;margin-left:8px}.links a.navcta:hover{background:#0d948e}
.dd{position:relative}.dd>a i{font-style:normal;font-size:10px;opacity:.7;margin-left:2px}
.ddm{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;background:rgba(10,30,43,.97);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px;box-shadow:0 20px 45px rgba(0,0,0,.35);opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s var(--ease)}
.dd::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
.dd:hover .ddm,.dd:focus-within .ddm{opacity:1;visibility:visible;transform:none}
.ddm.two{display:grid;grid-template-columns:1fr 1fr;min-width:330px;gap:2px}
.ddm a{display:block;padding:10px 12px;border-radius:6px;font-size:14px;color:#d4e3e7}
.ddm a:hover{background:rgba(22,184,173,.14);color:#6fe3d9}
.ddm a.all{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.08);margin-top:4px;color:#5fd8ce}
/* home header over hero */
.pg-index header{position:fixed;left:0;right:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .35s}
.pg-index header::after{display:none}
.pg-index header.solid{background:linear-gradient(180deg,rgba(9,28,40,.9),rgba(13,38,53,.84));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
/* hero slideshow */
.hero{position:relative;min-height:100vh;overflow:hidden;background:#081e2c}
.slides,.slide{position:absolute;inset:0}
.slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.12);transition:opacity 1.6s ease,transform 8s linear}
.slide.on{opacity:1;transform:scale(1)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(6,22,33,.92) 0%,rgba(8,30,44,.72) 50%,rgba(8,30,44,.25) 100%)}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 80% 30%,rgba(22,184,173,.18),transparent 45%)}
.hero .wrap{position:relative;z-index:2;padding-top:110px}
.hero h1 .ln{display:block;opacity:0;transform:translateY(30px);animation:up .9s var(--ease) forwards}
.hero h1 .ln:nth-child(2){animation-delay:.18s;color:#7fe6dc}
.hero .eyebrow,.hero p,.hero .actions{opacity:0;animation:up .9s var(--ease) .35s forwards}
.hero p{animation-delay:.45s}.hero .actions{animation-delay:.6s}
@keyframes up{to{opacity:1;transform:none}}
.scrollhint{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:4px;color:#9fc3c8}
.scrollhint::after{content:"";display:block;width:1px;height:38px;margin:10px auto 0;background:linear-gradient(#5fd8ce,transparent);animation:drip 2s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* stats */
.stats{background:linear-gradient(90deg,#0d3043,#0f3a4c);color:#fff;position:relative;z-index:3}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stats .wrap>div{padding:34px 20px;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.stats .wrap>div:last-child{border:0}
.stats b{display:block;font-size:34px;color:#6fe3d9;letter-spacing:1px}
.stats span{font-size:13px;color:#b5ccd1;letter-spacing:1px}
/* service cards */
.card.svc{position:relative;overflow:hidden;border-radius:12px;min-height:250px;display:flex;flex-direction:column}
.card.svc .ic{width:40px;height:40px;color:var(--teal);margin-bottom:6px;transition:transform .35s var(--ease)}
.card.svc:hover .ic{transform:scale(1.12) rotate(-4deg)}
.card.svc .more{margin-top:auto;padding-top:18px}
.card.svc.hasimg{color:#fff;border:0;background:#0b2230}
.card.svc.hasimg::before{content:"";position:absolute;inset:0;background:var(--cimg) center/cover;transition:transform .7s var(--ease);z-index:0}
.card.svc.hasimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,28,40,.35),rgba(8,28,40,.92) 75%);z-index:0}
.card.svc.hasimg:hover::before{transform:scale(1.08)}
.card.svc.hasimg>*{position:relative;z-index:1}
.card.svc.hasimg p{color:#cfe0e4}.card.svc.hasimg .ic,.card.svc.hasimg .number,.card.svc.hasimg .more{color:#6fe3d9}
.card{border-radius:12px}
/* split photo frame */
.split img.photo{border-radius:14px;box-shadow:24px 24px 0 rgba(22,184,173,.14),0 30px 60px rgba(10,35,50,.18)}
/* step bubbles */
.step{border-radius:12px;box-shadow:0 10px 30px rgba(12,43,55,.06)}
.step strong{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#16b8ad,#0d7f8f);color:#fff;font-size:16px}
/* page hero */
.pagehero{position:relative;overflow:hidden;background:#0a2231;padding:150px 0 110px}
.pagehero::before{content:"";position:absolute;inset:-6%;background:var(--pimg,url(img/switch.jpg)) center/cover;animation:kb 18s ease-in-out infinite alternate}
.pagehero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,28,40,.94),rgba(12,50,66,.6))}
.pagehero .wrap{position:relative;z-index:1}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.1) translateX(-2%)}}
/* gallery belt */
.gallery{padding:95px 0 60px;background:#0b1f2c;color:#fff;overflow:hidden}
.gallery .btn.outline{color:#fff;border-color:#4d7480}
.track{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.belt{display:flex;gap:18px;width:max-content;animation:belt 45s linear infinite}
.belt:hover{animation-play-state:paused}
.belt img{height:300px;width:240px;object-fit:cover;border-radius:12px;filter:saturate(.9)}
.belt img:nth-child(odd){height:300px;width:380px}
@keyframes belt{to{transform:translateX(-50%)}}
/* case cards */
.case{border-radius:12px;transition:.35s var(--ease)}.case img{transition:transform .7s var(--ease)}
.case:hover{transform:translateY(-6px);box-shadow:0 25px 50px rgba(12,43,55,.15)}.case:hover img{transform:scale(1.06)}
.cta{background:linear-gradient(120deg,#0e3446,#0b5a63)}
/* reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.slide,.belt,.pagehero::before{animation:none;transition:none}}
@media(max-width:1050px){.links>a,.dd>a{padding:8px 7px}}
@media(max-width:760px){.links{gap:0}.dd .ddm{position:static;opacity:1;visibility:visible;transform:none;display:grid;background:transparent;border:0;box-shadow:none;padding:0 0 0 14px;min-width:0}.ddm.two{grid-template-columns:1fr 1fr}.ddm a{font-size:14px;padding:7px}.links a.navcta{margin:8px 0 0;text-align:center}.pg-index header{background:rgba(9,28,40,.85)}.hero{min-height:88vh}.stats .wrap{grid-template-columns:1fr 1fr}.stats .wrap>div:nth-child(2){border-right:0}.stats b{font-size:26px}.belt img,.belt img:nth-child(odd){height:220px;width:200px}.pagehero{padding:110px 0 70px}}
.stats b{line-height:44px;height:44px;margin-bottom:4px}.scrollhint{color:#d5e7ea}
