/* Approved visual review implementation, 2026-11-05. */
@font-face{font-family:"IBM Plex Sans";src:url('/classic/assets/fonts/IBMPlexSans-Medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url('/classic/assets/fonts/IBMPlexSans-SemiBold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
body>main{flex:1;min-width:0}body>.utility,body>.site-header,body>.footer{flex-shrink:0}
html[lang=en] h1,html[lang=en] h2,html[lang=en] h3,html[lang=en] h4{font-family:"IBM Plex Sans",Arial,sans-serif;font-weight:500;letter-spacing:-.018em;text-wrap:balance}
html[lang=en] .page-intro h1{font-size:34px;line-height:1.2;max-width:1000px}
html[lang=en] .home-hero-system .hero-copy h1{font-size:clamp(35px,3vw,42px);line-height:1.14;letter-spacing:-.025em;font-weight:500;text-wrap:balance}
.home-hero-system .hero-copy{width:40%;max-width:480px}
.hero-copy p{max-width:390px}
.home-hero-system .hero-copy h1 br{display:initial}
.exploration-toggle>span[aria-hidden]{display:none}
.exploration-toggle::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:13px;vertical-align:3px;flex-shrink:0}
.exploration-toggle[aria-expanded=true]::after{transform:rotate(225deg);vertical-align:0}
.primary-nav .top-link,.primary-nav .exploration-toggle,.primary-nav .sub-menu a{transition:background-color .15s ease,color .15s ease;user-select:none}
.primary-nav .top-link:hover,.primary-nav .top-link:focus-visible,.primary-nav .exploration-toggle:hover,.primary-nav .exploration-toggle:focus-visible,.primary-nav .exploration-toggle[aria-expanded=true]{background:#dfedf5;color:#075582}
.primary-nav .sub-menu a:hover,.primary-nav .sub-menu a:focus-visible{background:#dfedf5;color:#075582}
@media(min-width:801px){.primary-nav .exploration>.sub-menu{top:100%;margin-top:0}}
.breadcrumb{font-size:12px}
.simple-content .page-intro{max-width:none}
.simple-content p,.topic-rows p,.route-cards p{font-size:15px;line-height:1.8}
.case-directory .case-gallery{align-items:start}
.case-directory .case-gallery article>p{font-size:14px;line-height:1.6;padding:16px;text-align:justify;text-align-last:left;text-justify:auto;letter-spacing:normal;word-spacing:normal}
html[lang=en] .case-directory .case-gallery article>p{hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:6 3 3;text-wrap:pretty}
html[lang^=zh] .case-directory .case-gallery article>p{text-justify:inter-character;line-break:strict}
.case-directory .case-gallery p>.text-link{text-align:right;text-align-last:right;letter-spacing:normal;word-spacing:normal}
.case-directory .case-photo h3,html[lang=en] .case-directory .case-photo h3{font-size:21px;line-height:1.3;font-weight:600;bottom:18px}
.case-directory .case-photo::after{inset:35% 0 0}
.case-directory .case-group-heading span{font-size:12px}
.case-directory .case-count{font-size:13px}
/* Equal full-subject foregrounds; the softened duplicate only fills lateral edges. */
.business-visual-frame,.proposal .business-visual-frame{aspect-ratio:3/1;background:#eef3f5;isolation:isolate}
.business-visual-frame::before,.article-figure::before{content:"";position:absolute;inset:0;background:var(--scene) center/cover no-repeat;filter:blur(18px);opacity:.7;z-index:-1}
.business-visual-frame img,.proposal .business-visual img{object-fit:contain;width:100%;height:100%;background:transparent}
.focus-grid>a>img[src*="ai-products-interaction"]{filter:brightness(1.14) saturate(.9)}
.focus-grid>a>img[src*="social"]{filter:saturate(.88)}
.focus-grid h3{min-height:2.9em}
.focus-grid p{font-size:14px;line-height:1.8}
.business-blocks>section>h2{min-height:3em}
.people-duties p,.core-module p,.data-integration p,.customer-system-names li{font-size:14px;line-height:1.75}
.simple-content p.terminal-caption,.flow-lane strong,.layer-heading h3 small,.integration-arrow>small{font-size:12px}
.execution-description strong{font-size:14px}
.system-summary{font-size:15px}
.robot-lineup{align-items:center;gap:12px}
.robot-lineup figure{position:relative;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:#eaf0f4;overflow:hidden}
.robot-lineup img{width:100%;height:100%;object-fit:contain;background:transparent;mix-blend-mode:darken}
/* Optical centre correction accounts for blank source-canvas space, not feet. */
.robot-lineup img[src*="four-wheel"]{transform:translateY(-2%)}
.robot-lineup img[src*="quadruped"]{transform:translateY(-2%)}
.robot-lineup img[src*="wheel-biped"]{transform:translateY(1%)}
.robot-lineup img[src*="agv-cutout"]{transform:translateY(-3%)}
.robot-lineup img[src*="agv-arm"]{transform:translateY(-1%)}
.robot-lineup img[src*="rail.png"]{transform:translateY(4%)}
.robot-lineup img[src*="drone.png"]{transform:translateY(2%)}
.about-ppt .advantages h3{min-height:2.8em;align-items:flex-start}
.about-ppt .advantages p,.about-ppt .vision p{font-size:14px;line-height:1.8}
main:has(.about-ppt)::before{opacity:.65;background-image:linear-gradient(105deg,rgba(247,250,252,.94),rgba(247,250,252,.87)),url('/classic/assets/about-robot-scene.png')}
.about-ppt .advantages section{background:rgba(255,255,255,.94)}
.about-ppt .capability-four h3,.about-ppt .vision{background:rgba(246,250,252,.94)}
/* Retain old URLs/copy while adopting the same reading width and hierarchy. */
.page-grid{max-width:1120px;grid-template-columns:minmax(0,1fr);gap:32px}
.page-grid>.content{grid-row:1;min-width:0}
.page-grid>.sidebar{display:grid;grid-template-columns:180px 1fr 1fr;align-items:stretch;background:#f4f7f9}
.page-grid>.sidebar>h2{display:flex;align-items:center;font-size:18px}
.page-grid>.sidebar nav{align-self:center}.page-grid .side-contact{border-left:1px solid var(--line)}
.page-grid .page-intro{max-width:none}.page-grid .content>h2{border-left:0;padding-left:0}
.page-grid .article-figure{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:3/1;background:#edf3f6}
.page-grid .article-figure img{width:100%;height:100%;object-fit:contain;background:transparent}
.footer p,.footer nav a{font-size:12px}
@media(min-width:701px) and (max-width:1200px){html[lang=en] .case-directory .case-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){
 .home-hero.home-hero-system{aspect-ratio:auto}
 .home-hero-system>img{position:relative;inset:auto;aspect-ratio:3/1;height:auto}
 .home-hero-system::after{bottom:auto;height:calc(100vw / 3)}
 .home-hero-system>.container{position:relative;inset:auto;height:auto;padding-top:28px;padding-bottom:32px}
 .home-hero-system .hero-copy{width:100%;max-width:700px}
 .home-hero-system .hero-copy p{max-width:630px}
 html[lang=en] .home-hero-system .hero-copy h1{max-width:640px;font-size:38px;text-wrap:balance}
}
@media(max-width:800px){.focus-grid h3{min-height:0}.page-grid>.sidebar{grid-template-columns:1fr}.page-grid .side-contact{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:700px){
 .about-ppt .advantages h3{min-height:0}.focus-grid h3{min-height:0}.business-blocks>section>h2{min-height:0}
 .case-directory .case-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .case-directory .case-filters button{white-space:normal;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;line-height:1.5;padding:10px}
 .case-directory .case-filters button span{flex-shrink:0}
 .simple-content p{font-size:14px}.people-duties p,.core-module p,.customer-system-names li{font-size:13px}
 .page-grid .article-figure{aspect-ratio:16/9}
 html[lang=en] .page-intro h1{font-size:28px}
 html[lang=en] .home-hero-system .hero-copy h1{font-size:34px;max-width:490px}
 .business-visual-frame,.proposal .business-visual-frame{aspect-ratio:3/1}
}
/* 2026-11-06: keep the collaboration action at the lower right in every locale. */
.contact-strip.business-cta{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px 24px;
}
.contact-strip.business-cta>p{grid-column:1;grid-row:1;margin:0;min-width:0}
.contact-strip.business-cta .business-cta-links{display:contents}
.contact-strip.business-cta .business-cta-links>.text-link{grid-column:1;grid-row:2;justify-self:start;align-self:end}
.contact-strip.business-cta .business-cta-links>.button{grid-column:2;grid-row:1 / span 2;justify-self:end;align-self:end;margin:0;white-space:nowrap}
@media(max-width:520px){.contact-strip.business-cta{column-gap:16px}}
/* 2026-11-06: unified banners; only the annotated truck door retains its full ratio. */
.business-visual-frame::before,.article-figure::before{content:none}
.business-visual-frame img,.proposal .business-visual img,.page-grid .article-figure img{object-fit:cover}
.page-grid .article-figure{aspect-ratio:3/1}
.business-visual-frame img[src$="business-ai-banner-275.png"]{object-position:center top}
.page-grid .article-figure:has(img[src$="/truck.jpg"]){aspect-ratio:auto}
.page-grid .article-figure img[src$="/truck.jpg"]{height:auto;object-fit:contain}
/* 2026-11-06 user-approved: remove all case-count displays, retain filtering. */
.case-directory .case-filters button>span,
.case-directory .case-count,
.case-directory .case-group-heading>span{display:none!important}
.case-directory .case-filters{margin-bottom:24px}
.contact-enquiry{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}
.contact-enquiry .form{max-width:850px;margin-top:16px}
.contact-enquiry textarea{min-height:110px;resize:vertical}
.contact-enquiry #draft-notice,.contact-enquiry #draft-status{font-size:13px;line-height:1.7}
.contact-enquiry button:disabled{opacity:.55;cursor:not-allowed}
/* 2026-11-06: equal-height cards per row, with detail links aligned at the bottom. */
.case-directory .case-gallery{align-items:stretch}
.case-directory .case-gallery article:not([hidden]){display:flex;flex-direction:column}
.case-directory .case-gallery article>p{display:flex;flex-direction:column;flex:1}
.case-directory .case-gallery article>p::after{content:none}
.case-directory .case-gallery p>.text-link{float:none;display:block;align-self:flex-end;margin: auto 0 0;padding-top:8px}
/* Contact form precedes direct contact channels. */
.contact-enquiry{border-top:0;margin-top:20px;padding-top:0;margin-bottom:28px}
.contact-enquiry+.contact-channels{border-top:1px solid var(--line);padding-top:24px}
/* 2026-11-07: separate parallel business/product/social copy columns. */
.business-blocks{column-gap:64px;row-gap:36px}
@media(max-width:1000px){.business-blocks{column-gap:40px;row-gap:32px}}
@media(max-width:700px){.business-blocks{gap:28px}}
.news-preview{margin-top:28px}.news-preview-label{font-size:12px;font-weight:600;color:#517087;letter-spacing:.04em}.news-preview-intro{font-size:13px!important;color:#6a7e8c;margin:8px 0 28px}
.news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.news-card{min-width:0;display:flex;flex-direction:column;border-bottom:1px solid #ccd9e2;padding-bottom:24px}.news-image{display:block;overflow:hidden;background:#edf2f5}.news-image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform .2s}.news-image:hover img{transform:scale(1.025)}
.news-card-body{padding-top:22px;display:flex;flex-direction:column;flex:1}.news-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#6b8190}.news-card h2{font-size:23px;line-height:1.5;margin:12px 0 14px}.news-card h2 a{color:inherit}.news-card-body>p{margin:0 0 24px}.news-card-bottom{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-top:auto}.news-card-bottom small{font-size:11px;color:#708391}.news-card-bottom .text-link{white-space:nowrap;font-size:13px}
@media(max-width:700px){.news-grid{grid-template-columns:1fr;gap:36px}.news-card h2{font-size:21px}.news-card-bottom{flex-wrap:wrap}}

/* Keep language controls right-aligned when the utility brand is hidden. */
.utility>.container{justify-content:flex-end}.utility>.container>div{margin-left:auto}


.business-layout-b .business-blocks { column-gap: clamp(72px, 8vw, 108px); row-gap: 44px; }
@media (max-width: 700px) {
  .business-layout-b .business-blocks { grid-template-columns: 1fr; gap: 40px; }
}
.news-card summary { cursor: pointer; list-style: none; }
.news-card summary::-webkit-details-marker { display: none; }
.news-card summary .news-meta { margin-top: 20px; }
.news-title { display: block; margin: 12px 0; font-size: 22px; line-height: 1.45; }
.news-card summary .text-link::after { content: " +"; }
.news-card details[open] summary .text-link::after { content: " −"; }
