/* Mobile reading system, 2026-09-22. Desktop V3 retained.
   System family; title 30/600, section 28/600, card 18/600, body 16/400,
   captions 14/400. Ink, muted, accent and paper inherit shared semantic tokens.
   20px gutters, 12/16/24/32/40 spacing; >=44px primary touch targets. */
.offer-region-tabs,.service-contents{display:none}
.menu-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.route-items>a{font-size:14px}
@media(max-width:780px){
 html{scroll-padding-top:80px;-webkit-text-size-adjust:100%}
 :root{--ui-section:28px;--ui-title:30px;--ui-hero:40px;--ui-card:18px;--ui-body:16px;--ui-caption:14px}
 .wrap{padding-left:20px;padding-right:20px}
 .header{background:#102432;backdrop-filter:none;-webkit-backdrop-filter:none}
 .header .head-inner{height:64px;min-height:64px;padding-top:0;padding-bottom:0;flex-wrap:nowrap}
 .header .brand-logo{width:126px}
 .menu-toggle{display:inline-flex;align-items:center;gap:9px;min-width:74px;min-height:44px;padding:8px 0 8px 12px;border:0;background:transparent;color:#f7f5ef;font-size:14px}
 .menu-toggle[aria-expanded=true] svg{transform:rotate(90deg)}
 .header .nav{position:fixed;inset:64px 0 0;max-height:calc(100dvh - 64px);margin:0;padding:24px 28px 40px;background:var(--ui-paper);border:0;overflow:auto;align-content:start;align-items:stretch;gap:0;flex-direction:column;flex-wrap:nowrap}
 .js .header .nav{display:none}.js .header .nav.open{display:flex}
 .header .nav a,.header .nav .nav-contact{display:block;width:100%;margin:0;padding:13px 0;min-height:54px;text-align:left;font:600 20px/1.4 var(--ui-font);color:var(--ui-ink);border:0;border-bottom:1px solid var(--ui-line);background:transparent;border-radius:0}
 .header .nav a[aria-current=page]{color:var(--ui-accent)}
 .header .nav a[aria-current=page]:after{display:none}
 .header .nav .nav-contact{color:var(--ui-accent);margin-top:10px}
 html.mobile-menu-open{overflow:hidden}
 .section,.inner-page .section,.home-page .section{padding-top:40px;padding-bottom:40px}
 .section h2,.section-head h2,.inner-page .story-copy h2,.story-copy h2,.journal-intro h2,.cta h2{font-size:var(--ui-section);line-height:1.35;letter-spacing:-.3px}
 .section-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:24px}
 .section-head .text-link,.journal-intro .text-link{min-height:44px;padding:8px 0;font-size:14px}
 .btn{min-height:46px;font-size:15px;padding:11px 20px;gap:14px}
 .text-link{min-height:44px;font-size:15px;gap:10px}
 .btn:hover,.case-card:hover,.service-card:hover{transform:none}
 .subhero{padding:24px 0}.subhero h1,.editorial-heading h1{font-size:30px;line-height:1.4}
 .editorial-heading{padding-top:22px}.editorial-heading-inner{padding-bottom:22px}
 .editorial-breadcrumb{margin-bottom:12px}.editorial-heading h1{margin-bottom:12px}
 .news-heading-inner{grid-template-columns:minmax(0,1fr) 96px;gap:12px;align-items:center}
 .news-heading-inner h1{margin-bottom:0}
 .news-official-qr{padding:5px;border-radius:8px}
 .news-official-qr img{width:84px;height:84px}
 .news-official-qr figcaption{display:none}
 .editorial-meta{gap:6px 12px}.editorial-content.section{padding-top:28px}
 /* First screen: message, action, real photograph. Address follows the image. */
 .office-hero .hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-top:28px;padding-bottom:28px}
 .office-hero .hero-copy{display:contents}
 .office-hero .hero-since{order:0;margin:0 0 10px;font-size:14px}
 .office-hero h1{order:1;margin:0 0 16px;font-size:40px;line-height:1.22;letter-spacing:-.6px}
 .office-hero .hero-desc{order:2;font-size:16px;line-height:1.75;max-width:36em}
 .office-hero .actions{order:3;gap:24px;margin:20px 0 24px;align-items:center}
 .office-hero-photo{order:4}.office-hero-photo img{aspect-ratio:16/10;max-height:330px;border-radius:16px;object-position:center}
 .office-hero-photo figcaption{margin-top:8px;font-size:14px}
 .office-hero-stone .office-location{order:5;gap:4px;margin-top:20px;padding-top:16px;max-width:none}
 .office-location-label{letter-spacing:0}.office-location-note{display:none}
 /* One region at a time on phones; every letter remains accessible. */
 .offer-wall{padding:36px 0}.offer-wall-heading{align-items:start;flex-direction:column;gap:8px}
 .offer-wall-heading h2{font-size:28px}.offer-wall-heading .text-link{min-height:44px}
 .offer-wall-note{margin:8px 0 18px;line-height:1.65}
 .offer-wall-scroll-note{display:block;margin:4px 0 0}
 .js .offer-region-tabs{display:flex;gap:8px;margin:20px 0 24px}
 .offer-region-tabs button{flex:1;min-height:44px;padding:8px 12px;border:1px solid var(--ui-line);border-radius:24px;background:transparent;color:var(--ui-ink);font:500 15px/1.4 var(--ui-font)}
 .offer-region-tabs button[aria-pressed=true]{background:#203b4c;border-color:#203b4c;color:#fff}
 .js .offer-region:not(.is-active){display:none}.js .offer-region-title{display:none}
 .offer-wall-grid{grid-template-rows:1fr;grid-template-columns:none;grid-auto-columns:66%;grid-auto-flow:column;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:0;padding:0 0 16px;scrollbar-width:thin;}
 .offer-card{scroll-snap-align:start}.offer-card-document{aspect-ratio:3/3.6;padding:10px}
 .offer-card-copy{gap:5px;padding-top:12px}.offer-card-copy strong{font-size:16px}.offer-card-copy>span{font-size:14px;line-height:1.55}
 .offer-ranking{margin-top:8px}.offer-viewer-toolbar h2{font-size:18px}.offer-viewer-toolbar{align-items:start}.offer-viewer-close{min-height:44px}
 .route-strip .wrap{display:block;padding-top:18px;padding-bottom:18px}.route-caption{margin-bottom:12px}
 .route-items{display:flex;gap:8px;justify-content:space-between}.route-items a{font-size:14px;min-height:44px;display:flex;gap:4px;align-items:center}
 /* Home service cards become thumb-friendly editorial rows, not three tall posters. */
 .service-grid{display:grid;grid-template-columns:1fr;gap:12px}
 .service-card{min-height:0;padding:20px;border-radius:16px}
 .service-top{float:right}.service-top .icon{display:none}.service-top small{font:500 14px/1.5 var(--ui-font)}
 .service-card h3{font-size:20px;margin:0 0 8px;max-width:90%}
 .service-card p{font-size:16px;margin:0;line-height:1.7;max-width:none}
 .service-card .card-footer{margin-top:16px;padding-top:12px;letter-spacing:0;font-size:14px}
 .service-card .card-footer .arrow{width:28px;height:28px;font-size:19px}
 .story{gap:24px}.story-poster{min-height:220px;padding:24px;border-radius:16px}.story-poster .big-q{font-size:220px;top:0;right:22px}.story-poster .verse{margin-top:48px;font-size:24px}.story-poster small{margin-top:12px;font-size:14px}
 .story-copy h2{margin-top:10px}.story-copy p{line-height:1.8}.story-copy .text-link{margin-top:16px}
 .cases-section .case-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px}
 .cases-section .case-card{flex:0 0 88%;scroll-snap-align:start;border-radius:16px}.cases-section .case-body{padding:20px}.cases-section .case-body h3{font-size:18px;line-height:1.6}
 .journal-layout.journal-with-covers{gap:20px}.journal-intro .section-sub{margin-top:12px}.journal-intro .text-link{margin-top:12px}
 .journal-with-covers .article-row{grid-template-columns:86px minmax(0,1fr);gap:14px;padding:20px 0;align-items:start}
 .journal-with-covers .journal-cover{width:86px;height:86px;object-fit:cover;border-radius:8px}
 .journal-with-covers .article-row h3{font-size:16px;line-height:1.6;margin:6px 0 0}
 .journal-with-covers .article-row small{font-size:14px}.article-pin{font-size:14px;margin-bottom:4px}
 /* Listings and service articles. */
 .content-filter>label{font-size:14px}.filter-controls{gap:10px;display:flex;flex-wrap:wrap}.filter-controls input{flex:1;min-width:0;width:auto}.filter-controls select{flex-basis:100%}.filter-controls input,.filter-controls select{font-size:16px;min-height:46px;padding:10px 12px}
 .filter-controls .btn{font-size:15px;min-height:46px}.result-count{margin-bottom:20px}
 .content-list-grid{grid-template-columns:1fr;gap:20px}.content-list-grid .case-body{padding:18px 20px}.content-list-grid .case-body h3{font-size:18px;line-height:1.55;margin:0}
 .content-list-grid .case-body p:empty{display:none}.content-list-grid .listing-cover{height:180px}
 .service-index-intro{gap:16px;margin-bottom:24px}.section .service-index-intro h2{font-size:24px}.service-index-intro p{font-size:16px;line-height:1.75}
 .service-index-intro nav{gap:8px;flex-wrap:nowrap;width:100%}.service-index-intro nav a{flex:1;min-height:44px;padding:11px 9px;text-align:center;font-size:14px}
 .service-list-grid .service-art{height:190px}.service-art-copy{padding:22px;width:76%}.service-art-copy>strong{font-size:24px;line-height:1.3}.service-art-copy>span{font-size:12px;letter-spacing:.6px}.service-art-copy>small{font-size:14px}
 .service-detail-intro{padding-top:24px}.service-feature{gap:20px}.service-feature-copy{padding:0}.service-feature-copy h2{font-size:26px;margin:8px 0 14px}
 .service-feature-copy>p:not(.eyebrow){margin-bottom:18px;line-height:1.8}.service-feature img{height:auto;aspect-ratio:16/10;border-radius:12px}.service-feature figcaption{font-size:14px}
 .service-highlights{grid-template-columns:1fr;gap:0;margin:24px 0}.service-highlights>div{border-top:1px solid var(--ui-line);padding:12px 0;gap:12px}.service-highlights p{font-size:16px}
 .service-route{padding:20px}.service-route h2{font-size:22px;margin:0 0 16px}.service-route ol{gap:16px}.service-route li strong{font-size:16px;line-height:1.6}
 .service-contents{display:flex;overflow:auto;gap:10px;padding:0 20px 18px;margin:0 0 12px;scrollbar-width:thin}
 .service-contents a{flex:none;white-space:nowrap;border-bottom:1px solid var(--ui-line);font-size:14px;min-height:44px;padding:10px 0;margin-right:8px}
 .service-reading .service-topic{scroll-margin-top:86px}.service-reading .service-topic h2{font-size:22px;line-height:1.5;margin-bottom:14px}.service-reading .service-topics{gap:24px}
 .migrated-body{min-height:0}.migrated-body p,.migrated-body li{font-size:16px;line-height:1.85}.migrated-body h2,.migrated-body h3{font-size:22px}
 .service-next{padding:28px 0}.service-next h2{font-size:24px}.service-next>.wrap{gap:20px}.service-next .btn{width:100%}
 /* Contact remains one clear primary QR, with adequate white quiet zone. */
 .contact-intro.section{padding:28px 0}.contact-layout{gap:28px}.contact-details>h2{font-size:28px}
 .contact-details .fact-row{grid-template-columns:1fr;gap:6px;padding:16px 0;font-size:16px}.contact-details .fact-row dt{font-size:14px}
 .contact-details dl{margin:18px 0 24px}.contact-details .actions{gap:22px}
 #consult-wechat{scroll-margin-top:84px}.contact-wecom,.contact-wechat{padding:20px;margin-top:28px;border:1px solid var(--ui-line);border-radius:16px;background:#fff;gap:16px;align-items:flex-start}
 .contact-wecom .wecom-qr-crop,.contact-wechat img{width:128px;height:128px}
 .contact-wecom strong,.contact-wechat strong{font-size:15px;line-height:1.5}.contact-wecom figcaption,.contact-wechat figcaption{gap:8px;font-size:14px;line-height:1.6;min-width:0}
 .contact-consult-dialog{width:calc(100vw - 28px);max-height:calc(100dvh - 28px);padding:24px 20px}.contact-consult-dialog h2{font-size:20px}.contact-consult-dialog img{width:min(230px,100%)}
 .contact-building img{aspect-ratio:16/10;border-radius:14px}.contact-building figcaption{font-size:14px}
 .location-section.section{padding:32px 0}.location-section .section-head h2{font-size:28px}.location-highlights{gap:8px 16px;margin:18px 0 14px}.location-address{font-size:16px;line-height:1.75}.map-caption{font-size:14px}
 .cta{padding:36px 0}.cta>.wrap{gap:20px}.cta h2{font-size:28px}.cta .eyebrow{letter-spacing:.5px}.cta .btn{min-width:156px}
 .footer{padding:32px 0 24px}.footer .brand-logo{width:142px}.footer-note{margin-top:16px}.footer .footer-top{gap:24px}
 .footer .footer-links{width:100%;justify-content:space-between;gap:24px}.footer-links a{min-height:40px;display:flex;align-items:center;font-size:14px}
 .footer-location{padding-top:24px;gap:18px}.footer-map{max-width:none}.footer-location-title{font-size:20px}.footer-visit-copy>p{font-size:16px;line-height:1.75;margin:10px 0}.footer-map-address{min-height:44px;display:flex;align-items:center}
 .footer-consult{gap:18px;margin-top:16px;align-items:flex-start}.footer-consult .wecom-qr-crop{width:116px;height:116px}.footer-consult p{font-size:14px}
 .footer-bottom{margin-top:28px;padding-top:18px;gap:10px;flex-direction:column;align-items:flex-start;line-height:1.7}
}
@media(max-width:359px){.wrap{padding-left:16px;padding-right:16px}.office-hero h1{font-size:36px}.contact-wecom,.contact-wechat{padding:16px;gap:12px}.contact-wecom .wecom-qr-crop,.contact-wechat img{width:112px;height:112px}.service-index-intro nav a{padding:11px 6px;font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-toggle svg{transition:none}}

@media(max-width:780px){.service-list-grid .service-art{height:178px}.service-art-copy{padding:18px;width:60%}.service-art-copy>strong{font-size:23px}.service-art-copy>span{font-size:10px;letter-spacing:.3px}.service-art-copy>small{font-size:13px}}
