@charset "UTF-8";
:root { --paper:#F6F5F1; --navy:#142D46; --teal:#327F82; --rule:#cfd5d6; --muted:#526579; --serif:"Songti TC","Songti SC","Noto Serif CJK TC","PMingLiU",Georgia,serif; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; background:var(--paper); color:var(--navy); font-family:var(--serif); line-height:1.65; }
[hidden] { display:none !important; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--teal); }
a:focus-visible { outline:3px solid var(--teal); outline-offset:6px; }
.wrap { max-width:1435px; margin-inline:auto; padding-inline:clamp(24px,5.6vw,80px); }
.skip-link { position:fixed; top:12px; left:12px; z-index:10; padding:8px 16px; background:var(--paper); transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
.site-header { min-height:140px; display:flex; align-items:flex-start; justify-content:space-between; gap:32px; padding-top:28px; padding-bottom:24px; }
.brand { display:flex; align-items:center; flex-shrink:0; gap:30px; }
.brand-mark { object-fit:contain; width:78px; height:78px; }
.brand-text { display:flex; flex-direction:column; line-height:1.25; }
.brand-name { font-size:34px; letter-spacing:.27em; }
.brand-english { font-size:16px; letter-spacing:.32em; margin-top:1px; }
.brand-chinese { font-size:15px; letter-spacing:.21em; margin-top:7px; }
.header-controls { display:flex; align-items:center; gap:34px; padding-top:10px; }
nav { display:flex; align-items:center; gap:clamp(20px,3.25vw,46px); }
nav a { font-size:15px; font-weight:600; white-space:nowrap; padding-bottom:9px; border-bottom:2px solid transparent; }
nav a[aria-current="page"] { border-color:var(--teal); }
.language-switch { padding-left:34px; border-left:1px solid #aeb8be; font-size:16px; white-space:nowrap; align-self:flex-start; }
.intro { padding-top:26px; padding-bottom:24px; }
h1,h2,p { margin-top:0; }
h1 { font-size:clamp(48px,5.7vw,82px); font-weight:600; line-height:1.22; margin-bottom:14px; letter-spacing:.025em; }
.intro-subtitle { font-size:clamp(23px,2.18vw,31px); letter-spacing:.15em; margin-bottom:17px; }
.intro-company { font-size:20px; line-height:1.3; letter-spacing:.24em; margin-bottom:5px; }
.harbour { position:relative; margin:0; height:380px; overflow:hidden; }
.harbour > img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.asset-pending { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; margin:0; color:var(--muted); font-size:14px; }
.harbour figcaption { position:absolute; bottom:0; left:0; display:flex; align-items:center; gap:38px; padding:17px 64px 17px 80px; background:var(--navy); color:var(--paper); }
.harbour figcaption > span { font-size:28px; letter-spacing:.12em; padding-right:36px; border-right:1px solid #b0c0c7; }
.harbour figcaption a { font-size:17px; letter-spacing:.16em; }
.business { display:grid; grid-template-columns:1fr 1fr; padding-top:36px; padding-bottom:32px; }
.business > div { border-right:1px solid var(--rule); padding-top:20px; padding-right:36px; }
h2 { font-weight:500; font-size:32px; line-height:1.4; margin-bottom:24px; }
.business h2 { font-size:clamp(40px,4.6vw,66px); font-weight:600; margin-bottom:28px; }
.business h2::after { content:""; display:block; width:72px; margin-top:23px; border-bottom:3px solid var(--teal); }
.service-links { list-style:none; padding:0 0 0 34px; margin:0; }
.service-links li + li { border-top:1px solid var(--rule); }
.service-links a { display:block; padding:12px 16px 17px; font-size:28px; line-height:1.6; }
.service-links a:hover { background:#eeefeb; }
.inner .intro { padding-bottom:54px; }
.inner h1 { font-size:clamp(42px,4.75vw,68px); }
.editorial { display:grid; grid-template-columns:1fr 1.6fr; gap:64px; padding-top:34px; padding-bottom:54px; }
.editorial + .editorial { border-top:1px solid var(--rule); }
.section-label { font-size:21px; padding-top:7px; color:var(--teal); }
.editorial p,.risk-note p { font-size:19px; max-width:720px; line-height:1.9; }
.text-link { display:inline-block; border-bottom:1px solid var(--teal); padding-block:4px; font-size:18px; }
.details { margin:0 0 26px; }
.details > div { display:grid; grid-template-columns:160px 1fr; padding:18px 0; border-bottom:1px solid var(--rule); gap:18px; }
dt { color:var(--muted); }
dd { margin:0; overflow-wrap:anywhere; }
.muted { color:var(--muted); }
.service-section { scroll-margin-top:24px; }
.risk-note { padding-top:32px; padding-bottom:56px; border-top:1px solid var(--rule); }
.risk-note h2 { font-size:25px; }
.site-footer { border-top:1px solid var(--rule); display:flex; justify-content:space-between; align-items:start; gap:24px; padding-top:26px; padding-bottom:32px; font-size:13px; color:var(--muted); }
.site-footer p { margin-bottom:0; }
html[lang="en"] .brand-chinese { letter-spacing:.1em; }
html[lang="en"] nav { gap:20px; }
html[lang="en"] nav a { font-size:13px; white-space:normal; }
html[lang="en"] h1 { letter-spacing:0; font-size:clamp(48px,5.1vw,72px); }
html[lang="en"] .intro-subtitle { letter-spacing:.02em; }
html[lang="en"] .intro-company { letter-spacing:.12em; }
html[lang="en"] .service-links a { font-size:25px; }
@media (max-width:1150px) {
.site-header { flex-wrap:wrap; gap:24px; }
.header-controls { width:100%; justify-content:space-between; padding-top:0; }
nav { flex:1; justify-content:space-between; gap:16px; }
.intro { padding-top:24px; }
.editorial { gap:36px; grid-template-columns:1fr 1.7fr; }
}
@media (max-width:700px) {
.wrap { padding-inline:24px; }
.site-header { padding-top:24px; padding-bottom:20px; min-height:0; }
.brand { gap:18px; }
.brand-mark { width:58px; height:58px; }
.brand-name { font-size:28px; }
.brand-english { font-size:13px; }
.brand-chinese { font-size:12px; letter-spacing:.15em; }
.header-controls { gap:18px; align-items:flex-start; }
nav { justify-content:flex-start; flex-wrap:wrap; column-gap:20px; row-gap:8px; }
nav a { font-size:14px; padding-bottom:4px; }
.language-switch { padding-left:18px; font-size:14px; }
.intro { padding-top:26px; padding-bottom:28px; }
h1 { font-size:clamp(38px,8.5vw,58px); line-height:1.3; letter-spacing:0; margin-bottom:16px; }
.intro-subtitle { font-size:21px; letter-spacing:.04em; }
.intro-company { font-size:14px; letter-spacing:.11em; line-height:1.6; }
.harbour { height:270px; }
.harbour figcaption { padding:14px 24px; gap:24px; }
.harbour figcaption > span { font-size:22px; padding-right:24px; }
.harbour figcaption a { font-size:15px; letter-spacing:.06em; }
.business { display:block; padding-top:32px; padding-bottom:32px; }
.business > div { border:0; padding:0; }
.business h2 { font-size:40px; margin-bottom:20px; }
.business h2::after { margin-top:16px; }
.service-links { padding-left:0; }
.service-links a { font-size:23px; padding-inline:0; }
.editorial { display:block; padding-top:24px; padding-bottom:32px; }
.section-label { margin-bottom:16px; font-size:18px; }
h2 { font-size:28px; }
.editorial p,.risk-note p { font-size:17px; }
.inner .intro { padding-bottom:22px; }
.inner h1 { font-size:38px; }
.details > div { grid-template-columns:1fr; gap:6px; padding:16px 0; }
.site-footer { flex-direction:column; gap:16px; }
html[lang="en"] h1 { font-size:clamp(36px,8.6vw,58px); }
html[lang="en"] nav a { font-size:13px; }
html[lang="en"] .service-links a { font-size:23px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Desktop fidelity adjustments after side-by-side Chrome comparison. */
@media (min-width:1151px) {
.brand { gap:22px; }
.brand-mark { width:98px; height:108px; object-fit:fill; margin-left:-12px; margin-top:-17px; }
.home .intro { padding-bottom:19px; }
.home h1 { font-size:clamp(48px,5.3vw,76px); letter-spacing:0; line-height:1.32; }
.business { grid-template-columns:49% 51%; }
.service-links a { padding:4px 16px 32px; }
.service-links li:last-child a { padding-bottom:12px; }
}
@media (max-width:700px) {
nav a { min-height:36px; display:inline-flex; align-items:center; }
.language-switch { min-height:36px; display:inline-flex; align-items:center; }
html[lang="en"] .brand-chinese { font-size:12px; }
}

.arrow-icon { flex-shrink:0; width:20px; height:20px; filter:invert(42%) sepia(20%) saturate(1042%) hue-rotate(134deg) brightness(91%) contrast(86%); }
.service-links a { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.harbour figcaption a { display:inline-flex; align-items:center; gap:14px; }
.harbour figcaption .arrow-icon { filter:invert(97%) sepia(7%) saturate(316%) hue-rotate(352deg) brightness(107%) contrast(96%); }

@media (max-width:700px) {
html[lang="en"] .harbour figcaption { gap:18px; max-width:100%; }
html[lang="en"] .harbour figcaption > span { font-size:17px; letter-spacing:.02em; padding-right:18px; }
html[lang="en"] .harbour figcaption a { font-size:14px; letter-spacing:0; gap:10px; }
html[lang="en"] .harbour figcaption .arrow-icon { width:18px; height:18px; }
}

.harbour > img { object-position:center 25%; }

@media (min-width:1151px) {
.header-controls { gap:58px; }
.language-switch { padding-left:58px; }
html[lang="zh-Hant"] nav a { font-size:16px; }
nav a[aria-current="page"] { padding-inline:10px; margin-inline:-10px; }
}

@media (min-width:1151px) {
.service-links li { padding-bottom:16px; }
.service-links li + li { border-top:0; }
.service-links li:not(:last-child) a { padding-bottom:15px; border-bottom:1px solid var(--rule); }
.service-links li:last-child { padding-bottom:0; }
}

/* Content expansion: preserve the palette, typography and harbour composition. */
.business-lead { max-width:420px; font-size:19px; line-height:1.9; }
.service-summary { color:var(--muted); font-size:17px; line-height:1.8; margin:0 16px 22px; max-width:560px; }
.home .editorial { border-top:1px solid var(--rule); }
.text-link + .text-link { margin-left:24px; }
.details { font-size:18px; }
@media (min-width:1151px) {
  nav,html[lang="en"] nav { gap:clamp(14px,1.6vw,23px); }
  .header-controls { gap:24px; }
  .language-switch { padding-left:24px; }
  .service-links li:not(:last-child) a { border-bottom:0; padding-bottom:8px; }
  .service-links li:not(:last-child) { border-bottom:1px solid var(--rule); margin-bottom:14px; }
  .service-links li { padding-bottom:0; }
  .service-links li:last-child a { padding-bottom:8px; }
}
@media (max-width:700px) {
  .business-lead { font-size:17px; margin-bottom:24px; }
  .service-summary { margin-inline:0; font-size:16px; }
  .service-links a { padding-bottom:8px; }
  .text-link + .text-link { margin-left:0; display:table; margin-top:12px; }
  .details { font-size:17px; }
}
