@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@700;800&family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');

:root {
  --navy:#15132C;
  --yellow:#FFD400;
  --pink:#FF3D8E;
  --white:#FFFFFF;
  --paper:#FCFCFA;
  --warm:#F5F1E9;
  --ink:#15132C;
  --muted:#625F70;
  --line:#E5E1D9;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'Noto Sans TC',system-ui,sans-serif; }
a { color:inherit; text-decoration:none; }
.page-shell { width:100%!important; max-width:none!important; min-height:100vh; overflow:hidden; background:var(--paper)!important; color:var(--ink)!important; }

/* Shared approved site chrome */
.site-header { position:sticky; top:0; z-index:80; background:rgba(255,255,255,.95); backdrop-filter:blur(12px); border-bottom:1px solid #efede8; }
.nav-inner { position:relative; max-width:1400px; margin:auto; padding:13px clamp(18px,3.5vw,48px); display:flex; align-items:center; gap:18px; }
.brand { display:flex; align-items:baseline; gap:9px; margin-right:auto; white-space:nowrap; }
.brand-en { display:inline-flex; align-items:center; padding:10px 14px 4px; border-radius:10px; color:#fff; background:var(--navy); font:800 30px/1 'League Spartan',sans-serif; letter-spacing:.02em; }
.brand-zh { font-size:24px; line-height:1; font-weight:900; letter-spacing:.06em; }
.desktop-nav { display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.desktop-nav>a { padding:11px 0; font-size:15px; font-weight:700; letter-spacing:.06em; white-space:nowrap; }
.desktop-nav>a:hover,.desktop-nav>a.active { color:var(--pink); }
.line-cta { display:inline-flex!important; align-items:center; gap:8px; padding:12px 22px!important; border-radius:999px; background:var(--navy); color:#fff!important; font-weight:900!important; }
.line-icon { flex:0 0 auto; width:42px; height:23px; }
.mobile-menu { display:none; }

/* Different content modes share a language, not one identical silhouette */
.inner-hero { position:relative!important; isolation:isolate; min-height:clamp(450px,46vw,650px); display:flex; align-items:center; padding:clamp(80px,9vw,132px) clamp(20px,6vw,86px)!important; overflow:hidden; }
.inner-hero>div { position:relative; z-index:2; }
.inner-hero h1 { max-width:900px!important; margin:0!important; color:var(--navy)!important; font-size:clamp(42px,6vw,82px)!important; line-height:1.22!important; letter-spacing:-.035em!important; font-weight:900!important; }
.inner-hero p { max-width:42em!important; margin:30px 0 0!important; color:var(--muted)!important; font-size:clamp(16px,1.35vw,19px)!important; line-height:1.95!important; }
.inner-hero>div>div:first-child:not(.crumb) { display:inline-flex; padding:9px 13px 7px; margin-bottom:26px!important; background:var(--yellow); color:var(--navy)!important; font:800 12px/1.2 'League Spartan','Noto Sans TC',sans-serif!important; letter-spacing:.12em!important; text-transform:uppercase; }

body.page-insights .inner-hero { background:linear-gradient(104deg,#fff 0%,#fff 57%,#f4f0e9 100%)!important; }
body.page-insights .inner-hero:after { content:'EDITORIAL'; position:absolute; right:-.04em; bottom:-.24em; z-index:0; color:transparent; -webkit-text-stroke:2px rgba(21,19,44,.08); font:800 clamp(100px,20vw,290px)/1 'League Spartan',sans-serif; letter-spacing:-.04em; }
body.page-insights .inner-hero h1 br { display:none; }
body.page-insights .inner-hero h1:after { content:''; display:block; width:108px; height:3px; margin-top:30px; background:linear-gradient(90deg,var(--yellow) 0 72%,var(--pink) 72%); }

body.page-process .inner-hero { background:var(--navy)!important; }
body.page-process .inner-hero:after { content:'01  02  03'; position:absolute; right:4vw; bottom:.05em; color:rgba(255,255,255,.06); font:700 clamp(66px,11vw,150px)/1 'League Spartan',sans-serif; letter-spacing:.02em; }
body.page-process .inner-hero h1 { color:#fff!important; max-width:780px!important; }
body.page-process .inner-hero p { color:#d4d1df!important; }

body.page-faq .inner-hero { background:linear-gradient(105deg,#fff 0 62%,var(--warm) 62% 100%)!important; }
body.page-faq .inner-hero:after { content:'?'; position:absolute; right:7vw; top:50%; transform:translateY(-54%); color:var(--yellow); text-shadow:-7px 7px 0 var(--pink); font:800 clamp(180px,26vw,360px)/.8 'League Spartan',sans-serif; }
body.page-faq .inner-hero h1 { max-width:620px!important; }

body.page-article .inner-hero { min-height:430px; background:#fff!important; padding-bottom:70px!important; }
body.page-article .inner-hero:after { content:attr(data-article); position:absolute; right:5vw; bottom:-.16em; color:var(--yellow); text-shadow:-5px 5px 0 rgba(21,19,44,.16); font:800 clamp(130px,23vw,320px)/1 'League Spartan',sans-serif; opacity:.82; }
body.page-article .inner-hero .crumb { display:block!important; position:absolute; top:-48px; color:#8c8997!important; font-size:13px!important; }
body.page-article .inner-hero .crumb a { color:#8c8997!important; }
body.page-article .inner-hero .crumb .current { color:var(--navy)!important; }
body.page-article .inner-hero>div:last-child { max-width:920px!important; }
body.page-article .inner-hero h1 { max-width:16em!important; font-size:clamp(38px,4.8vw,66px)!important; line-height:1.35!important; }
body.page-article .inner-hero .eyebrow-practice,
body.page-article .inner-hero .eyebrow-market { display:inline-flex; padding:9px 13px 7px; margin-bottom:24px!important; background:var(--yellow); color:var(--navy)!important; font:800 12px/1.2 'League Spartan','Noto Sans TC',sans-serif!important; letter-spacing:.1em!important; }

/* Editorial index */
body.page-insights .pv-120-80-60 { padding:clamp(74px,8vw,118px) clamp(20px,5.5vw,80px) 70px!important; background:var(--paper); }
body.page-insights .art-card { border:0!important; background:#fff!important; overflow:hidden; box-shadow:0 18px 52px rgba(21,19,44,.07); transition:transform .25s ease,box-shadow .25s ease; }
body.page-insights a:hover .art-card { transform:translateY(-5px); box-shadow:0 24px 62px rgba(21,19,44,.11); }
body.page-insights .art-card .ph-dark { background:var(--warm)!important; }
body.page-insights .art-card img { transition:transform .45s ease; }
body.page-insights a:hover .art-card img { transform:scale(1.025); }
body.page-insights .art-card>div:last-child { position:relative; }
body.page-insights .art-card>div:last-child:before { content:''; position:absolute; left:0; top:0; width:4px; height:72px; background:var(--yellow); }
body.page-insights .grid-3 { gap:30px!important; }
body.page-insights .grid-3 .art-card { height:100%; }
body.page-insights .eyebrow-practice { color:var(--pink)!important; }
body.page-insights .eyebrow-market { color:#8b6a00!important; }

/* Editorial card rhythm at every viewport: 01 pink, 02 yellow, then alternate. */
body.page-insights a[href='Article 01.dc.html'] .eyebrow-practice,
body.page-insights a[href='Article 03.dc.html'] .eyebrow-practice,
body.page-insights a[href='Article 05.dc.html'] .eyebrow-market,
body.page-insights a[href='Article 07.dc.html'] .eyebrow-market {
  color:var(--pink)!important;
}
body.page-insights a[href='Article 02.dc.html'] .eyebrow-practice,
body.page-insights a[href='Article 04.dc.html'] .eyebrow-practice,
body.page-insights a[href='Article 06.dc.html'] .eyebrow-practice {
  color:#9a7400!important;
}
body.page-insights a[href='Article 01.dc.html'] .art-card>div:last-child:before,
body.page-insights a[href='Article 03.dc.html'] .art-card>div:last-child:before,
body.page-insights a[href='Article 05.dc.html'] .art-card>div:last-child:before,
body.page-insights a[href='Article 07.dc.html'] .art-card>div:last-child:before {
  background:var(--pink);
}
body.page-insights a[href='Article 02.dc.html'] .art-card>div:last-child:before,
body.page-insights a[href='Article 04.dc.html'] .art-card>div:last-child:before,
body.page-insights a[href='Article 06.dc.html'] .art-card>div:last-child:before {
  background:var(--yellow);
}

/* Service page: calm information under a stronger opening */
body.page-process .pv-130-80-60 { padding:clamp(80px,9vw,130px) clamp(20px,5.5vw,80px) 70px!important; background:#fff; }
body.page-process .grid-3 { gap:clamp(42px,6vw,84px)!important; }
body.page-process .grid-3>div { position:relative; padding:28px 0 40px; border-top:1.25px solid #8d899d; }
body.page-process .grid-3>div:nth-child(1) { transform:translateY(0); }
body.page-process .grid-3>div:nth-child(2) { transform:translateY(36px); }
body.page-process .grid-3>div:nth-child(3) { transform:translateY(72px); }
body.page-process .step-ico { width:42px!important; height:42px!important; margin:0 0 22px!important; border:0!important; border-radius:0!important; background:transparent!important; }
body.page-process .step-ico svg { width:34px; height:34px; stroke:var(--pink)!important; stroke-width:1.35!important; }
body.page-process .pv-130-80-60 svg[width='1180'] { display:none; }
body.page-process .feature-banner { border:0!important; background:var(--warm)!important; padding:clamp(38px,5vw,68px)!important; }
body.page-process .feature-banner>div:first-child { border-radius:0!important; background:var(--yellow)!important; }
body.page-process .pv-60-80-150 { padding:70px clamp(20px,5.5vw,80px) 130px!important; background:#fff; }
body.page-process .pv-60-80-150 .grid-2>div { border:0!important; border-top:3px solid var(--navy)!important; background:var(--paper)!important; padding:40px!important; }
body.page-process .pv-60-80-150 .grid-2>div+div { border-top-color:var(--navy)!important; }
body.page-process .process-highlight { color:var(--pink); }

/* FAQ: information is the protagonist */
body.page-faq .pv-120-80-150 { padding:clamp(74px,8vw,118px) clamp(20px,5.5vw,80px) 120px!important; background:#fff; }
body.page-faq .grid-2 { grid-template-columns:1fr!important; gap:0!important; max-width:900px!important; }
body.page-faq .grid-2 > div + div .faq-row:first-child { border-top:0!important; }
body.page-faq .faq-row { min-height:0; padding:0!important; gap:24px!important; border-bottom:1.25px solid var(--line)!important; }
body.page-faq .faq-row[style*='border-top'] { border-top:1.25px solid var(--navy)!important; }
body.page-faq details.faq-row { display:block; }
body.page-faq .faq-summary {
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 26px;
  align-items:start;
  gap:20px;
  padding:26px 0;
  list-style:none;
  cursor:pointer;
}
body.page-faq .faq-summary::-webkit-details-marker { display:none; }
body.page-faq .faq-summary:focus-visible { outline:2px solid var(--pink); outline-offset:5px; }
body.page-faq .faq-summary .faq-q { margin:0; }
body.page-faq .faq-sign { display:inline-grid; place-items:center; width:26px; height:26px; color:var(--pink); font:700 24px/1 'League Spartan',sans-serif; }
body.page-faq .faq-sign:before { content:'+'; }
body.page-faq details[open] .faq-sign:before { content:'−'; }
body.page-faq details.faq-row:not([open]) > .faq-a { display:none!important; }
body.page-faq details.faq-row[open] > .faq-a { display:block; margin:0; padding:0 46px 28px 68px; }
body.page-faq .faq-num { width:48px!important; color:var(--yellow)!important; text-shadow:-1px 1px 0 rgba(21,19,44,.75); font:800 24px/1.2 'League Spartan',sans-serif!important; }
body.page-faq .faq-q { color:var(--navy); font-size:clamp(17px,1.35vw,20px)!important; line-height:1.6!important; font-weight:900!important; }
body.page-faq .faq-a { color:var(--muted)!important; font-size:15px!important; line-height:1.9!important; }

/* Long-form articles */
body.page-article .pv-56-80-0 { padding:0 clamp(20px,5.5vw,80px)!important; background:#fff; }
body.page-article .pv-56-80-0>div { max-width:1240px!important; }
body.page-article .pv-56-80-0 .ph-dark { height:clamp(360px,48vw,650px)!important; background:var(--warm)!important; }
body.page-article .pv-56-80-0 img { width:100%!important; height:100%!important; object-fit:cover!important; }
body.page-article .pv-80-80-40 { padding:clamp(76px,8vw,118px) clamp(20px,5.5vw,80px) 70px!important; background:var(--paper)!important; }
body.page-article .art-body { max-width:780px!important; font-size:17px!important; line-height:2.05!important; color:#444153!important; }
body.page-article .art-body p { margin:0 0 28px!important; }
body.page-article .art-body strong { color:var(--navy)!important; font-weight:900!important; }
body.page-article .art-h2 { position:relative; display:block!important; margin:78px 0 30px!important; padding-top:25px; border-top:1.25px solid var(--yellow); color:var(--navy)!important; font-size:clamp(25px,2.4vw,34px)!important; line-height:1.55!important; font-weight:900!important; }
body.page-article .art-h2 .num { display:inline-block; min-width:44px; margin-right:13px; color:var(--yellow)!important; text-shadow:-1px 1px 0 var(--navy); font:800 26px/1 'League Spartan',sans-serif!important; }
body.page-article .art-h3 { margin:46px 0 18px!important; color:var(--navy)!important; font-size:20px!important; line-height:1.6!important; font-weight:900!important; }
body.page-article .pull { margin:40px -42px!important; padding:30px 38px!important; border:0!important; border-left:4px solid var(--pink)!important; background:#fff!important; color:var(--navy)!important; font-size:18px!important; line-height:1.85!important; box-shadow:0 18px 44px rgba(21,19,44,.06); }
body.page-article .art-table-wrap { border:0!important; box-shadow:0 10px 30px rgba(21,19,44,.06); }
body.page-article .art-table th { background:var(--navy)!important; color:#fff!important; }
body.page-article .art-table td:first-child { background:var(--warm)!important; }
body.page-article .rel-card { border:0!important; background:#fff!important; box-shadow:0 12px 38px rgba(21,19,44,.07); overflow:hidden; }

/* Existing CTA areas are unified without flattening every page */
.pv-50-80-150,.pv-60-80-150:last-of-type { padding:74px 20px 100px!important; }
.pv-50-80-150 a[href*='lin.ee'],
.pv-60-80-150 a[href*='lin.ee'],
.pv-120-80-150 a[href*='lin.ee'] { background:var(--yellow)!important; color:var(--navy)!important; font-weight:900!important; padding:16px 28px!important; border-radius:999px!important; }

.site-footer { background:var(--navy); color:#fff; padding:clamp(34px,4vw,48px) clamp(20px,3.5vw,48px) 20px; }
.footer-main { max-width:1300px; margin:auto; display:grid; grid-template-columns:minmax(300px,.8fr) minmax(0,2fr); align-items:start; gap:clamp(40px,6vw,92px); }
.footer-lockup { display:flex; align-items:baseline; gap:12px; }
.footer-logo { color:var(--yellow); font:800 31px/1 'League Spartan',sans-serif; }
.footer-zh { font-size:20px; font-weight:900; letter-spacing:.08em; }
.footer-text { margin-top:12px; color:#c2bfd0; font-size:15px; line-height:1.6; white-space:nowrap; }
.footer-navs { display:grid; gap:14px; }
.footer-group { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; gap:20px; }
.footer-contact-group { padding-top:14px; border-top:1px solid rgba(255,255,255,.12); }
.footer-label { color:#858198; font-size:12px; font-weight:800; letter-spacing:.14em; white-space:nowrap; }
.footer-contact-group .footer-label { color:var(--pink); }
.footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px clamp(20px,2.4vw,34px); }
.footer-links a { color:#ddd9e7; font-size:14px; font-weight:700; white-space:nowrap; }
.footer-links a:hover { color:var(--yellow); }
.copyright { max-width:1300px; margin:24px auto 0; padding-top:14px; border-top:1px solid rgba(255,255,255,.12); color:#77738b; font-size:11.5px; }

@media (max-width:1119px) {
  .desktop-nav { display:none; }
  .mobile-menu { display:block; margin-left:auto; }
  .mobile-menu summary { list-style:none; display:flex; align-items:center; gap:9px; padding:10px 4px 10px 10px; cursor:pointer; font-size:15px; font-weight:900; letter-spacing:.08em; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .burger { width:24px; display:flex; flex-direction:column; gap:5px; }
  .burger i { display:block; height:2px; background:var(--navy); }
  .mobile-links { position:absolute; top:100%; left:0; right:0; display:flex; flex-direction:column; padding:14px clamp(20px,5vw,44px) 24px; background:#fff; border-bottom:1px solid #efede8; box-shadow:0 16px 30px rgba(21,19,44,.08); }
  .mobile-links a { padding:12px 0; font-size:15px; font-weight:800; }
  .mobile-links .line-cta { align-self:flex-start; margin-top:8px; }
  body.page-insights .art-card[style*='flex-direction:row'] { display:grid!important; grid-template-columns:.8fr 1.2fr; }
  body.page-insights .art-card[style*='flex-direction:row']>.ph-dark { width:100%!important; }
  body.page-insights .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  body.page-article .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}

@media (max-width:719px) {
  .nav-inner { padding:11px 18px; }
  .brand-en { font-size:24px; padding:9px 12px 4px; }
  .brand-zh { font-size:20px; }
  .inner-hero { min-height:520px; padding:72px 20px 82px!important; }
  .inner-hero h1 { font-size:clamp(38px,11.5vw,54px)!important; line-height:1.3!important; }
  .inner-hero p { font-size:15.5px!important; line-height:1.85!important; }
  body.page-insights .inner-hero:after { font-size:34vw; bottom:-.12em; }
  body.page-faq .inner-hero { background:#fff!important; }
  body.page-faq .inner-hero:after { right:-.05em; top:auto; bottom:0; transform:none; font-size:54vw; opacity:.2; }
  body.page-article .inner-hero { min-height:470px; padding-top:105px!important; }
  body.page-article .inner-hero .crumb { top:-62px; white-space:nowrap; max-width:90vw; overflow:hidden; text-overflow:ellipsis; }
  body.page-article .inner-hero:after { right:-.06em; opacity:.28; font-size:48vw; }
  body.page-article .pv-56-80-0 .ph-dark { height:290px!important; }
  body.page-insights .art-card[style*='flex-direction:row'] { display:block!important; }
  body.page-insights .art-card[style*='flex-direction:row']>.ph-dark { height:250px!important; }
  body.page-insights .grid-3 { grid-template-columns:1fr!important; }
  body.page-insights .grid-3 .ph-dark { height:230px!important; }
  body.page-process .grid-3 { grid-template-columns:1fr!important; }
  body.page-process .grid-3>div:nth-child(n) { transform:none; }
  body.page-process .pv-130-80-60 { padding-bottom:40px!important; }
  body.page-process .grid-2 { grid-template-columns:1fr!important; }
  body.page-faq .grid-2 { grid-template-columns:1fr!important; }
  body.page-faq .grid-2>div+div .faq-row:first-child { border-top:0!important; }
  body.page-article .pull { margin:36px -8px!important; padding:26px 24px!important; }
  body.page-article .art-body { font-size:16.5px!important; }
  body.page-article .art-h2 { margin-top:64px!important; font-size:25px!important; }
  body.page-article .grid-2,
  body.page-article .grid-3 { grid-template-columns:1fr!important; }
  .site-footer { padding:32px 20px 18px; }
  .footer-main { display:block; }
  .footer-text { font-size:14px; white-space:normal; }
  .footer-navs { margin-top:26px; gap:18px; }
  .footer-group { display:block; }
  .footer-contact-group { padding-top:16px; }
  .footer-label { margin-bottom:10px; }
  .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); justify-content:start; gap:10px 24px; }
  .footer-contact-links { grid-template-columns:repeat(3,max-content); gap:10px 22px; }
  .copyright { margin-top:24px; padding-top:14px; }
}

@media (min-width:720px) and (max-width:1050px) {
  .footer-main { display:block; }
  .footer-navs { margin-top:26px; }
}

@media (prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; transition:none!important; }
}

/* Image-free editorial Hero shared by the remaining service/index pages. */
body.page-process .inner-hero,
body.page-insights .inner-hero,
body.page-faq .inner-hero {
  min-height:clamp(480px,46vw,620px);
  background:var(--navy)!important;
}

body.page-process .inner-hero > div,
body.page-insights .inner-hero > div,
body.page-faq .inner-hero > div {
  max-width:860px!important;
}

body.page-process .inner-hero h1,
body.page-insights .inner-hero h1,
body.page-faq .inner-hero h1 {
  max-width:900px!important;
  color:#fff!important;
}

body.page-process .inner-hero p,
body.page-insights .inner-hero p,
body.page-faq .inner-hero p {
  color:#d4d1df!important;
}

body.page-process .inner-hero .hero-focus,
body.page-insights .inner-hero .hero-focus,
body.page-faq .inner-hero .hero-focus {
  color:var(--pink);
  font-weight:900;
}

body.page-process .inner-hero h1:after,
body.page-insights .inner-hero h1:after,
body.page-faq .inner-hero h1:after {
  content:'';
  display:block;
  width:108px;
  height:3px;
  margin-top:30px;
  background:linear-gradient(90deg,var(--yellow) 0 72%,var(--pink) 72%);
}

body.page-process .inner-hero:after,
body.page-insights .inner-hero:after,
body.page-faq .inner-hero:after {
  position:absolute;
  right:-.04em;
  bottom:-.24em;
  top:auto;
  z-index:0;
  color:transparent;
  text-shadow:none;
  transform:none;
  opacity:1;
  -webkit-text-stroke:2px rgba(255,255,255,.1);
  font:800 clamp(100px,20vw,290px)/1 'League Spartan',sans-serif;
  letter-spacing:-.04em;
  pointer-events:none;
}

body.page-process .inner-hero:after { content:'PROCESS'; }
body.page-insights .inner-hero:after { content:'EDITORIAL'; }
body.page-faq .inner-hero:after { content:'FAQ'; }

@media (max-width:719px) {
  body.page-process .inner-hero,
  body.page-insights .inner-hero,
  body.page-faq .inner-hero {
    min-height:min(520px,calc(100svh - 64px));
    padding:58px 20px 66px!important;
  }

  body.page-process .inner-hero h1,
  body.page-insights .inner-hero h1,
  body.page-faq .inner-hero h1 {
    font-size:clamp(36px,10vw,46px)!important;
    line-height:1.32!important;
  }

  body.page-process .inner-hero:after,
  body.page-insights .inner-hero:after,
  body.page-faq .inner-hero:after {
    right:-.05em;
    bottom:-.12em;
    font-size:34vw;
  }
}

/* Remaining-page Hero system: shared hierarchy, page-specific silhouettes. */
body.page-process .inner-hero .hero-focus,
body.page-insights .inner-hero .hero-focus,
body.page-article .inner-hero .hero-focus {
  color:var(--pink);
  font-weight:900;
}

body.page-process .inner-hero,
body.page-insights .inner-hero {
  min-height:clamp(480px,46vw,620px);
  background:var(--navy)!important;
}

body.page-process .inner-hero > div,
body.page-insights .inner-hero > div {
  max-width:860px!important;
}

body.page-article .inner-hero {
  min-height:430px;
  background:var(--navy)!important;
}

body.page-insights .inner-hero h1,
body.page-article .inner-hero h1 {
  color:#fff!important;
}

body.page-insights .inner-hero p {
  color:#d4d1df!important;
}

body.page-insights .inner-hero:after {
  -webkit-text-stroke-color:rgba(255,255,255,.1);
}

body.page-article .inner-hero .crumb,
body.page-article .inner-hero .crumb a {
  color:rgba(255,255,255,.58)!important;
}

body.page-article .inner-hero .crumb .current {
  color:#fff!important;
}

@media (max-width:719px) {
  body.page-process .inner-hero,
  body.page-insights .inner-hero {
    min-height:min(520px,calc(100svh - 64px));
    padding:58px 20px 66px!important;
  }

  body.page-process .inner-hero h1,
  body.page-insights .inner-hero h1 {
    font-size:clamp(36px,10vw,46px)!important;
    line-height:1.32!important;
  }

  body.page-article .inner-hero {
    min-height:min(440px,calc(100svh - 64px));
    padding:88px 20px 58px!important;
  }

  body.page-article .inner-hero h1 {
    font-size:clamp(32px,9.2vw,40px)!important;
    line-height:1.36!important;
  }

  body.page-article .inner-hero .crumb {
    top:-52px;
  }
}

/* Inner-page Header: clean reverse treatment on the navy page system. */
.site-header {
  background:rgba(21,19,44,.97);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.site-header .brand-en {
  padding:0;
  border-radius:0;
  background:transparent;
  color:var(--yellow);
}
.site-header .brand-zh { color:#fff; }
.site-header .desktop-nav > a { color:rgba(255,255,255,.82); }
.site-header .desktop-nav > a:hover,
.site-header .desktop-nav > a.active { color:var(--pink); }
.site-header .line-cta {
  background:var(--yellow);
  color:var(--navy)!important;
}
.site-header .line-cta .line-icon text { fill:var(--yellow); }
.site-header .mobile-menu summary { color:#fff; }
.site-header .burger i { background:#fff; }
.site-header .mobile-links {
  background:var(--navy);
  border-bottom-color:rgba(255,255,255,.12);
  box-shadow:0 18px 36px rgba(10,9,24,.24);
}
.site-header .mobile-links a { color:rgba(255,255,255,.84); }
.site-header .mobile-links a[href='#top'] { color:var(--pink); }
.site-header .mobile-links .line-cta { color:var(--navy)!important; }

@media (max-width:719px) {
  .site-header .brand-en { padding:0; }
}

/* Compact long-form rhythm: preserve the frozen copy without making every sentence a new screen. */
body.page-article .inner-hero {
  min-height:clamp(350px,34vw,460px);
  padding:66px clamp(20px,5.5vw,80px) 52px!important;
}
body.page-article .inner-hero h1 {
  max-width:18em!important;
  font-size:clamp(34px,4.2vw,56px)!important;
  line-height:1.3!important;
}
body.page-article .inner-hero .crumb { top:-38px; }
body.page-article .inner-hero:after {
  bottom:-.22em;
  font-size:clamp(110px,19vw,260px);
  opacity:.5;
}

body.page-article .pv-56-80-0 .ph-dark {
  height:clamp(280px,34vw,460px)!important;
}
body.page-article .pv-80-80-40 {
  padding:clamp(52px,6vw,76px) clamp(20px,5.5vw,80px) 44px!important;
}
body.page-article .art-body {
  max-width:880px!important;
  font-size:16.5px!important;
  line-height:1.82!important;
}
body.page-article .art-body p { margin:0 0 13px!important; }
body.page-article .art-body ul,
body.page-article .art-body ol { margin:0 0 18px!important; }
body.page-article .art-body li { margin-bottom:6px!important; }
body.page-article .art-h2 {
  margin:46px 0 20px!important;
  padding-top:18px;
  font-size:clamp(23px,2.2vw,31px)!important;
  line-height:1.5!important;
}
body.page-article .art-h3 {
  margin:30px 0 12px!important;
  font-size:19px!important;
}
body.page-article .pull {
  margin:26px -24px!important;
  padding:22px 28px!important;
  font-size:17px!important;
  line-height:1.72!important;
}
body.page-article .art-table-wrap { margin:6px 0 28px!important; }
body.page-article .pv-100-80 {
  padding:68px clamp(20px,5.5vw,80px) 72px!important;
}
body.page-article .pv-100-80 > div > div:first-child {
  margin-bottom:26px!important;
}
body.page-article .pv-100-80 > div > div:last-child {
  margin-top:34px!important;
}

@media (max-width:719px) {
  body.page-article .inner-hero {
    min-height:350px;
    padding:64px 18px 44px!important;
  }
  body.page-article .inner-hero h1 {
    font-size:clamp(30px,8.4vw,36px)!important;
    line-height:1.3!important;
  }
  body.page-article .inner-hero .crumb { top:-40px; }
  body.page-article .inner-hero:after {
    right:-.05em;
    bottom:-.1em;
    font-size:42vw;
    opacity:.24;
  }
  body.page-article .pv-56-80-0 .ph-dark { height:210px!important; }
  body.page-article .pv-80-80-40 { padding:44px 18px 32px!important; }
  body.page-article .art-body {
    font-size:16px!important;
    line-height:1.76!important;
  }
  body.page-article .art-body p { margin-bottom:9px!important; }
  body.page-article .art-h2 {
    margin:34px 0 15px!important;
    padding-top:15px;
    font-size:23px!important;
    line-height:1.48!important;
  }
  body.page-article .art-h3 {
    margin:24px 0 10px!important;
    font-size:18px!important;
  }
  body.page-article .pull {
    margin:21px 0!important;
    padding:19px 18px!important;
    font-size:16.5px!important;
    line-height:1.68!important;
  }
  body.page-article .pv-100-80 { padding:48px 18px 58px!important; }
  body.page-article .pv-100-80 .grid-2,
  body.page-article .pv-100-80 .grid-3 {
    display:grid!important;
    grid-template-columns:none!important;
    grid-auto-flow:column;
    grid-auto-columns:minmax(270px,82vw);
    gap:16px!important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    padding-bottom:10px;
  }
  body.page-article .pv-100-80 .rel-card { scroll-snap-align:start; }
  body.page-article .pv-100-80 .rel-card .ph-dark { height:138px!important; }
  body.page-article .pv-100-80 .rel-card > div:last-child { padding:20px!important; }
  body.page-article .pv-100-80 > div > div:last-child { margin-top:24px!important; }
}

/* Text-led article rhythm: About SOMA's editorial devices replace article imagery. */
body.page-article .pv-56-80-0 { display:none!important; }

body.page-article .pv-80-80-40 {
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,var(--yellow) 0 74%,var(--pink) 74%) 0 0 / 118px 3px no-repeat,
    var(--paper)!important;
}
body.page-article .art-body:before {
  content:'SOMA EDITORIAL ／ 精品觀點';
  display:block;
  margin-bottom:28px;
  color:var(--pink);
  font:800 12px/1.3 'League Spartan','Noto Sans TC',sans-serif;
  letter-spacing:.12em;
}
body.page-article .art-body > p:first-of-type::first-letter {
  float:left;
  margin:.02em .16em 0 0;
  color:var(--pink);
  font:900 4.4em/.78 'Noto Sans TC',sans-serif;
}
body.page-article .art-h2 {
  position:relative;
  border-top-color:rgba(21,19,44,.22);
}
body.page-article .art-h2:before {
  content:'';
  position:absolute;
  left:0;
  top:-1.25px;
  width:82px;
  height:2.5px;
  background:linear-gradient(90deg,var(--yellow) 0 76%,var(--pink) 76%);
}
body.page-article .art-h2 .num {
  min-width:54px;
  color:var(--yellow)!important;
  font-size:42px!important;
  line-height:.85!important;
  text-shadow:-1px 1px 0 var(--navy);
}
body.page-article .pull {
  position:relative;
  overflow:hidden;
  border-left-color:var(--yellow)!important;
  background:#fff!important;
}
body.page-article .pull:nth-of-type(even) { border-left-color:var(--pink)!important; }

body.page-article .pv-100-80 .rel-card {
  position:relative;
  isolation:isolate;
  min-height:230px;
  overflow:hidden;
  border:0!important;
  border-top:3px solid var(--yellow)!important;
  background:#fff!important;
}
body.page-article .pv-100-80 .rel-card:nth-child(even) {
  border-top-color:var(--pink)!important;
}
body.page-article .pv-100-80 .rel-card:before {
  content:'READ';
  position:absolute;
  right:-.04em;
  bottom:-.18em;
  z-index:-1;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(21,19,44,.09);
  font:800 132px/1 'League Spartan',sans-serif;
  letter-spacing:-.05em;
}
body.page-article .pv-100-80 .rel-card[href*='Article 01']:before { content:'01'; }
body.page-article .pv-100-80 .rel-card[href*='Article 02']:before { content:'02'; }
body.page-article .pv-100-80 .rel-card[href*='Article 03']:before { content:'03'; }
body.page-article .pv-100-80 .rel-card[href*='Article 04']:before { content:'04'; }
body.page-article .pv-100-80 .rel-card[href*='Article 05']:before { content:'05'; }
body.page-article .pv-100-80 .rel-card[href*='Article 06']:before { content:'06'; }
body.page-article .pv-100-80 .rel-card[href*='Article 07']:before { content:'07'; }
body.page-article .pv-100-80 .rel-card > div:last-child {
  position:relative;
  z-index:1;
  padding:30px!important;
}

@media (max-width:719px) {
  body.page-article .pv-80-80-40 {
    background:
      linear-gradient(90deg,var(--yellow) 0 74%,var(--pink) 74%) 18px 0 / 96px 3px no-repeat,
      var(--paper)!important;
  }
  body.page-article .art-body:before { margin-bottom:22px; }
  body.page-article .art-body > p:first-of-type::first-letter {
    margin-right:.13em;
    font-size:3.65em;
  }
  body.page-article .art-h2 .num {
    min-width:46px;
    font-size:34px!important;
  }
  body.page-article .pv-100-80 .rel-card {
    min-height:220px;
  }
  body.page-article .pv-100-80 .rel-card:before {
    font-size:112px;
  }
  body.page-article .pv-100-80 .rel-card > div:last-child {
    padding:24px!important;
  }

  /* Comparison tables: reserve four Chinese characters for the label column. */
  body.page-article .table-scroll {
    width:100%;
    overflow-x:auto;
    margin:6px 0 28px;
    box-shadow:0 10px 30px rgba(21,19,44,.06);
  }
  body.page-article .art-table {
    width:100%!important;
    min-width:0!important;
    table-layout:fixed;
  }
  body.page-article .art-table th,
  body.page-article .art-table td {
    padding:12px 8px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
  body.page-article .art-table th:first-child,
  body.page-article .art-table td:first-child {
    width:76px;
    min-width:76px;
    max-width:76px;
    word-break:break-all;
  }
}

/* Article-end colour hierarchy: yellow acts, navy organizes, pink stays semantic. */
body.page-article .art-body a[href*='lin.ee'] {
  background:var(--yellow)!important;
  color:var(--navy)!important;
  font-weight:900!important;
  box-shadow:0 10px 26px rgba(255,212,0,.2);
}
body.page-article .pv-100-80 > div > div:first-child {
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--pink)!important;
}
body.page-article .pv-100-80 > div > div:first-child:before {
  content:'';
  width:38px;
  height:2px;
  flex:0 0 auto;
  background:var(--yellow);
}
body.page-article .pv-100-80 .eyebrow-practice,
body.page-article .pv-100-80 .eyebrow-market {
  color:#686477!important;
}
body.page-article .pv-100-80 .rel-card,
body.page-article .pv-100-80 .rel-card:nth-child(even) {
  border-top-color:var(--yellow)!important;
}

/* Editorial index on mobile: one featured read, then compact article rows. */
@media (max-width:719px) {
  body.page-insights .pv-120-80-60 {
    padding:30px 18px 54px!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] {
    margin-bottom:18px!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] > .ph-dark {
    height:132px!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] > div:last-child {
    padding:24px 22px 25px!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] .eyebrow-practice,
  body.page-insights .art-card[style*='flex-direction:row'] .eyebrow-market {
    margin-bottom:10px!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] .fs-28 {
    margin-bottom:12px!important;
    font-size:22px!important;
    line-height:1.45!important;
  }
  body.page-insights .art-card[style*='flex-direction:row'] > div:last-child > div:nth-child(3) {
    display:-webkit-box;
    overflow:hidden;
    margin-bottom:14px!important;
    font-size:14.5px!important;
    line-height:1.7!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
  }
  body.page-insights .grid-3 {
    gap:16px!important;
  }
  body.page-insights .grid-3 .art-card {
    display:grid!important;
    grid-template-columns:110px minmax(0,1fr);
    min-height:184px;
  }
  body.page-insights .grid-3 .art-card > .ph-dark {
    width:110px!important;
    height:100%!important;
    min-height:184px;
  }
  body.page-insights .grid-3 .art-card > div:last-child {
    padding:18px 17px!important;
  }
  body.page-insights .grid-3 .art-card .eyebrow-practice,
  body.page-insights .grid-3 .art-card .eyebrow-market {
    margin-bottom:7px!important;
    font-size:11.5px!important;
    line-height:1.45!important;
  }
  body.page-insights .grid-3 .art-card > div:last-child > div:nth-child(2) {
    margin-bottom:7px!important;
    font-size:16px!important;
    line-height:1.48!important;
  }
  body.page-insights .grid-3 .art-card > div:last-child > div:nth-child(3) {
    display:-webkit-box;
    overflow:hidden;
    font-size:13.5px!important;
    line-height:1.65!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

}

/* Process on mobile: two complete steps should fit in a typical viewport. */
@media (max-width:719px) {
  body.page-process .pv-130-80-60 {
    padding:28px 20px 38px!important;
  }
  body.page-process .grid-3 {
    gap:0!important;
  }
  body.page-process .grid-3 > div {
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:start;
    column-gap:14px;
    padding:18px 0 21px;
  }
  body.page-process .grid-3 > div > .step-ico {
    grid-column:1;
    grid-row:1;
    width:34px!important;
    height:34px!important;
    margin:0!important;
  }
  body.page-process .grid-3 > div > .step-ico svg {
    width:29px;
    height:29px;
  }
  body.page-process .grid-3 > div > div:nth-child(2) {
    grid-column:2;
    grid-row:1;
    align-self:center;
    margin-bottom:0!important;
    font-size:12.5px!important;
  }
  body.page-process .grid-3 > div > div:nth-child(3) {
    grid-column:1 / -1;
    grid-row:2;
    margin:10px 0 7px!important;
    font-size:21px!important;
    line-height:1.45!important;
  }
  body.page-process .grid-3 > div > div:nth-child(4) {
    grid-column:1 / -1;
    grid-row:3;
    font-size:15px!important;
    line-height:1.72!important;
  }

  body.page-process .pv-80-80 {
    padding:24px 20px!important;
  }
  body.page-process .feature-banner {
    gap:15px!important;
    padding:21px 20px!important;
  }
  body.page-process .feature-banner > div:first-child {
    width:38px!important;
    height:38px!important;
  }
  body.page-process .feature-banner > div:first-child svg {
    width:22px;
    height:22px;
  }
  body.page-process .feature-banner > div:last-child > div:first-child {
    margin-bottom:4px!important;
    font-size:12px!important;
  }
  body.page-process .feature-banner > div:last-child > div:last-child {
    font-size:16px!important;
    line-height:1.65!important;
  }
  body.page-process .pv-60-80-150 {
    padding:34px 20px 54px!important;
  }
  body.page-process .pv-60-80-150 > div > div:first-child {
    margin-bottom:10px!important;
  }
  body.page-process .pv-60-80-150 h2 {
    margin-bottom:24px!important;
    font-size:27px!important;
    line-height:1.42!important;
  }
  body.page-process .pv-60-80-150 .grid-2 {
    gap:14px!important;
  }
  body.page-process .pv-60-80-150 .grid-2 > div {
    padding:21px 20px!important;
    border-top-color:var(--navy)!important;
  }
  body.page-process .pv-60-80-150 .grid-2 > div > div:first-child {
    margin-bottom:8px!important;
  }
  body.page-process .pv-60-80-150 .grid-2 > div > div:nth-child(2) {
    margin-bottom:8px!important;
    font-size:19px!important;
    line-height:1.5!important;
  }
  body.page-process .pv-60-80-150 .grid-2 > div > div:nth-child(3) {
    font-size:14.5px!important;
    line-height:1.72!important;
  }
  body.page-process .pv-60-80-150 .grid-2 + div {
    margin-top:28px!important;
  }
}

/* FAQ accordion density adjustments for tablet and mobile. */
@media (max-width:1023px) {
  body.page-faq .pv-120-80-150 {
    padding:52px 32px 78px!important;
  }
  body.page-faq .grid-2 {
    grid-template-columns:1fr!important;
    gap:0!important;
  }
  body.page-faq .grid-2 > div + div .faq-row:first-child {
    border-top:0!important;
  }
  body.page-faq details.faq-row {
    min-height:0;
    padding:0!important;
  }
  body.page-faq .faq-summary {
    grid-template-columns:40px minmax(0,1fr) 24px;
    align-items:start;
    gap:14px;
    padding:20px 0;
    cursor:pointer;
  }
  body.page-faq .faq-summary:focus-visible {
    outline:2px solid var(--pink);
    outline-offset:5px;
  }
  body.page-faq .faq-summary .faq-num {
    width:40px!important;
    font-size:22px!important;
  }
  body.page-faq .faq-summary .faq-q {
    font-size:16.5px!important;
    line-height:1.55!important;
  }
  body.page-faq .faq-sign {
    display:inline-grid;
    place-items:center;
    width:24px;
    height:24px;
    color:var(--pink);
    font:700 22px/1 'League Spartan',sans-serif;
  }
  body.page-faq .faq-sign:before { content:'+'; }
  body.page-faq details[open] .faq-sign:before { content:'−'; }
  body.page-faq details.faq-row:not([open]) > .faq-a { display:none; }
  body.page-faq details.faq-row[open] > .faq-a {
    display:block;
    margin:0;
    padding:0 38px 24px 54px;
    font-size:15px!important;
    line-height:1.8!important;
  }
  body.page-faq .grid-2 + div {
    margin-top:44px!important;
  }
}

@media (max-width:719px) {
  body.page-faq .pv-120-80-150 {
    padding:34px 20px 60px!important;
  }
  body.page-faq .faq-summary {
    grid-template-columns:36px minmax(0,1fr) 22px;
    gap:12px;
    padding:18px 0;
  }
  body.page-faq .faq-summary .faq-num {
    width:36px!important;
    font-size:20px!important;
  }
  body.page-faq .faq-summary .faq-q {
    font-size:16px!important;
  }
  body.page-faq details.faq-row[open] > .faq-a {
    padding:0 30px 22px 48px;
  }
}
