/* Final typography layer shared by the homepage and CI page. */
:root{--copy-size:1.0625rem;--small-size:.875rem}
body{font-size:var(--copy-size);line-height:1.8}
/* Translated words must not set the minimum width of a grid or flex column. */
body{overflow-wrap:anywhere}
html:lang(ja) body,html:lang(zh) body{word-break:normal}
.hero h1{white-space:normal}
.hero-layout>*,.geofm-layout>*,.splat-layout>*,.integration-inner>*,.about-grid>*,.contact-grid>*,.section-heading>*,.ai-case-header>*,.gpdx-overview>*,.year-entry li>span{min-width:0}
.status-badge{max-width:100%;white-space:normal}
.hero-description,.product-copy>p,.section-intro,.about-grid>div>p:not(.eyebrow),.contact-intro{font-size:var(--copy-size);line-height:1.9}
.expertise-card p,.project-info p,.scenario-content p,.twin-band p,.ai-case p,.about-values p,.integration p,.delivery-steps p,.culture-grid p,.career-subsection>p,.transit-card p,.apply-panel p,.fm-final-summary p,.company-ci-card p{font-size:var(--copy-size);line-height:1.85}
.year-entry li,.legacy-table,.career-roles li,.career-roles p,.benefits-grid li,.gp-features-grid p,.hiring-process p,.talent-line,.contact-details>div{font-size:var(--copy-size);line-height:1.85}
.eyebrow,.hero .eyebrow,.scenario-content .eyebrow,.twin-band .eyebrow,.career-roles .eyebrow,.keywords,.hero-tags,.status-badge,.caption,.image-credit,.research-visual figcaption,.research-timeline,.section-footnote,.form-note,.form-mode,.privacy-details,.privacy-details p,.consent,.form-status,.project-info>span,.project-info small,.pipeline small,.year-entry time,.year-entry>summary span,.year-index a,.benefits-lead span,.case-flow small,.company-chart figcaption,.map-controls p,.transit-card a,.bus-routes span,.line-nine,.archive-block>summary span,.legacy-table caption,.ci-color-copy>span,.ci-signature>p,.ci-signature-plate>span{font-size:var(--small-size);line-height:1.75}
.eyebrow,.hero .eyebrow,.scenario-content .eyebrow,.twin-band .eyebrow{letter-spacing:.09em}
.scenario-content h3{font-size:1.625rem;line-height:1.4}
.scenario-meta{font-size:var(--small-size);line-height:1.8}
.scenario-content{min-height:0;padding:28px}
.case-flow strong,.pipeline strong,.gp-features-grid h4{font-size:var(--copy-size);line-height:1.6}
.contact-form-panel label:not(.consent){font-size:var(--copy-size)}
.contact-form-panel input:not([type=checkbox]),.contact-form-panel select,.contact-form-panel textarea{font-size:var(--copy-size)}
.contact-details dd a[target],.copy-button,.careers-jump a,.apply-actions a,.map-controls .button,.ci-back,.ci-page .ci-back{font-size:var(--small-size)}
.source-link{font-size:.875rem!important}
.button,.hero-actions .button,.hero-actions .text-link,.text-link,.filters button,.tab-bar button,.scenario-tabs button{font-size:var(--copy-size);line-height:1.5}
.research-visual .tab-bar{flex-wrap:wrap;gap:6px;padding:10px 8px}
.research-visual .tab-bar button{flex:1 1 auto;min-width:0;min-height:44px;padding:8px;white-space:normal;overflow-wrap:anywhere}
.fm-validation-icon{display:inline-block;vertical-align:-2px;margin-right:4px}
@media(max-width:600px){.research-visual .tab-bar button{flex-basis:calc(50% - 6px);font-size:var(--small-size)}.research-visual .tab-bar button:first-child{flex-basis:100%}}
.scenario-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:16px}
.scenario-tabs button{flex:1 1 auto;min-height:44px;padding:10px 14px;white-space:normal}
.panel-toolbar,.vehicle-demo .panel-toolbar{font-size:.875rem;line-height:1.6;gap:12px;flex-wrap:wrap}
.panel-toolbar .mono{font-size:var(--small-size)}
.header nav a,:is(html[lang=en],html[lang=es]) .header nav a{font-size:var(--small-size)}
.site-controls #language-select{font-size:.875rem;max-width:none}
.footer-top p,.footer-top>a:last-child,.footer-bottom{font-size:.875rem;line-height:1.8;color:var(--muted)}
.scene-top,.scene-label,.scene-controls>span,.scene-controls button,.hero-bottom,.hero-bottom>span,.hero-bottom a{font-size:var(--small-size);line-height:1.6}
.scene-top{flex-wrap:wrap;gap:8px}.scene-controls{gap:12px}.scene-controls>span{max-width:65%}.scene-controls button{flex-shrink:0}
.hero-bottom{gap:20px;flex-wrap:wrap}.hero-bottom>span{max-width:none}
.research-visual figcaption{min-height:0}
.splat-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start}
.facility-visual{margin:0;background:var(--surface)}
.facility-image-wrap{position:relative;background:#0b1c30}
.facility-image-wrap img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:contain}
.facility-concept{position:absolute;top:16px;left:18px;padding:5px 10px;background:#0b1c30e6;border:1px solid #50748f;border-radius:4px;color:#e0effb;font-size:var(--small-size);letter-spacing:.04em}
.facility-visual figcaption{padding:18px 24px 12px;font-size:var(--small-size);line-height:1.75;color:var(--text)}
.facility-targets{display:grid;gap:7px;padding:0 24px 22px;margin:0;list-style:none;color:var(--muted);font-size:.875rem;line-height:1.65}
.facility-targets li{border-left:2px solid var(--accent);padding-left:12px}
@media(max-width:1200px){.header-inner{gap:12px}.header nav{gap:6px}.header #navigation>a{padding-inline:5px}}
@media(max-width:1080px){.header nav a,:is(html[lang=en],html[lang=es]) .header nav a{font-size:var(--copy-size)}.splat-layout{grid-template-columns:1fr;gap:32px}.scenario-card{max-width:760px;width:100%}.scenario-content{padding:24px}.facility-image-wrap img{max-height:480px}}
@media(max-width:700px){
 :root{--copy-size:1rem}
 .hero-description,.product-copy>p,.section-intro,.about-grid>div>p:not(.eyebrow),.contact-intro{font-size:var(--copy-size)}
 .hero-actions{gap:16px;flex-wrap:wrap}.hero-actions .button,.hero-actions .text-link{font-size:var(--small-size)}
 .scenario-tabs{gap:6px;padding:12px}.scenario-tabs button{padding:9px 10px;font-size:var(--small-size)}
 .scenario-content h3{font-size:1.375rem}.scenario-content{padding:22px}
 .facility-visual figcaption{padding:16px 18px 10px}.facility-targets{padding:0 18px 18px}
 .benefits-lead{grid-template-columns:1fr}.benefits-lead>div{padding:20px}.benefits-lead strong,:is(html[lang=en],html[lang=es]) .benefits-lead strong{font-size:1.5rem}
 .culture-grid,.benefits-grid{grid-template-columns:1fr}.gp-features-grid{grid-template-columns:1fr}
 .scene-top{font-size:var(--small-size)}.scene-controls{align-items:flex-end}.scene-controls>span{max-width:60%;font-size:var(--small-size)}
 .scene-label{font-size:var(--small-size);bottom:85px;right:16px}.scene-top>span:last-child{display:none}
 .site-controls #language-select{font-size:var(--small-size)}.year-entry time{flex-basis:74px}.year-entry li{gap:10px}
 .footer-bottom{font-size:var(--small-size)}
}

/* Organization is a semantic tree rendered from company.json. */
.company-extra{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px}
.company-chart{padding:28px;background:var(--surface)}
.org-tree,.org-children{list-style:none;margin:0;padding:0}
.org-tree{text-align:center;font-size:var(--copy-size);line-height:1.5}
.org-tree li{position:relative;min-width:0}
.org-node{position:relative;display:flex;align-items:center;justify-content:center;min-height:58px;padding:13px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);overflow-wrap:anywhere}
.org-tree>.org-item>.org-node{max-width:200px;margin:auto;background:var(--accent);color:var(--ink);font-weight:650;border-color:var(--accent)}
.org-children{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding-top:34px;position:relative}
.org-children:before{content:'';position:absolute;height:17px;top:0;left:50%;border-left:1px solid var(--accent)}
.org-children>.org-item:before{content:'';position:absolute;top:-17px;height:17px;left:50%;border-left:1px solid var(--accent)}
.org-children>.org-item:after{content:'';position:absolute;top:-17px;left:-7px;right:-7px;border-top:1px solid var(--accent)}
.org-children>.org-item:first-child:after{left:50%}.org-children>.org-item:last-child:after{right:50%}
.org-children .org-children{display:flex;flex-direction:column;padding-top:20px;gap:12px}
.org-children .org-children:before{height:100%;top:0;left:50%}
.org-children .org-children>.org-item:before,.org-children .org-children>.org-item:after{display:none}
.org-children .org-children .org-node{background:var(--surface);min-height:48px}
@media(max-width:1080px){.company-extra{grid-template-columns:1fr}.company-chart{padding:24px}}
@media(max-width:600px){
 .company-chart{padding:20px}.org-tree{text-align:left}.org-tree>.org-item>.org-node{margin:0;max-width:200px}
 .org-children{display:flex;flex-direction:column;gap:16px;padding:20px 0 0 24px;margin-left:18px}
 .org-children:before{left:0;top:0;height:calc(100% - 29px)}
 .org-children>.org-item:before{top:29px;height:0;left:-24px;width:24px;border-left:0;border-top:1px solid var(--accent)}
 .org-children>.org-item:after{display:none}.org-node{justify-content:flex-start}
 .org-children .org-children{padding:16px 0 0 24px;margin-left:18px}
 .org-children .org-children:before{left:0;height:calc(100% - 24px)}
 .org-children .org-children>.org-item:before{display:block;top:24px}
}

/* Three heading levels, with two sizes for reading text. */
:root{--title-large:2.5rem;--title-small:1.5rem}
.section h2,.ci-page h2,:is(html[lang=en],html[lang=es]) .section h2,:is(html[lang=en],html[lang=es]) .ci-page h2{font-size:var(--title-large);line-height:1.35}
.section h3,.section h4,.ci-page h3,.ci-page h4{font-size:var(--title-small);line-height:1.4}
.ci-intro,.ci-story p,.ci-color p,.ci-downloads p,.ci-downloads a,.ci-section>p{font-size:var(--copy-size);line-height:1.85}
.proof-grid span,.vehicle-compare-labels,.vehicle-compare-hint,.about-values span,.hiring-process span,.client-block>.eyebrow,.ci-story>span,.ci-guide span{font-size:var(--small-size)}
@media(max-width:700px){:root{--title-large:2rem;--title-small:1.375rem}}

.feature-list p{font-size:var(--copy-size);line-height:1.85}.feature-list li>span,.product-copy p.research-note,.mini-tags span,.scene-label small,.card-number,.delivery-steps li>span,.scene-controls,.mono{font-size:var(--small-size);line-height:1.75}
.gs-gallery{margin-top:32px;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.gs-gallery-intro{padding:24px}.gs-gallery-intro .eyebrow{display:block;margin:0 0 12px}.gs-gallery-intro h4{margin:0 0 14px}.gs-gallery-intro p{font-size:var(--copy-size);line-height:1.85}
#gs-image-link{display:block;aspect-ratio:16/10;overflow:hidden;background:#0b1c30}#gs-image{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.gs-gallery figcaption{padding:16px 24px 0;color:var(--text);font-size:var(--small-size)}
.gs-gallery-controls{display:flex;align-items:center;gap:10px;padding:16px 24px 24px;font-size:var(--small-size)}
.gs-gallery-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--text);padding:8px 12px;font-size:var(--small-size)}
.gs-gallery-controls button:hover{border-color:var(--accent)}#gs-play{margin-left:auto}#gs-count{white-space:nowrap}
@media(max-width:700px){.gs-gallery-intro{padding:20px}.gs-gallery figcaption{padding:16px 20px 0}.gs-gallery-controls{padding:16px 20px 20px;gap:8px}.gs-gallery-controls button{padding:8px}}
/* The platform disclosure uses theme text, including light mode. */
.gp-features>summary{color:var(--text);font-size:var(--copy-size);font-weight:600;line-height:1.7;padding:16px 20px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.gp-features>summary:hover{color:var(--accent);border-color:var(--accent)}
.gpdx-section{background:var(--panel);border-block:1px solid var(--line)}
.gpdx-overview{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}.gpdx-overview figure{border:1px solid var(--line);background:var(--surface)}.gpdx-overview img{width:100%;height:auto;object-fit:contain}.gpdx-overview figcaption{padding:16px 20px;color:var(--muted);font-size:var(--small-size)}.gpdx-overview h3{margin-bottom:22px}.gpdx-overview p{font-size:var(--copy-size);line-height:1.85}.gpdx-overview .text-link{margin-top:28px}
.gpdx-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:36px 0}.gpdx-capabilities article{padding:24px;border:1px solid var(--line);background:var(--surface)}.gpdx-capabilities h3{margin-bottom:16px}.gpdx-capabilities p{font-size:var(--copy-size);line-height:1.85}
.gpdx-section .gp-features>summary{background:var(--surface)}.gpdx-section .gp-features-grid article{background:var(--surface)}
.gpdx-section .ai-case{margin-top:48px;background:var(--surface)}.gpdx-section .case-flow{list-style:none;padding:0}.gpdx-section .case-flow li{border-top:2px solid var(--accent);padding-top:18px}.gpdx-section .case-flow strong{display:block;margin:8px 0 12px}.gpdx-section .case-flow p{font-size:var(--copy-size);line-height:1.85}.gpdx-section .gpdx-case-outcome{margin-top:28px;padding:20px;border-left:3px solid var(--accent);background:var(--panel);max-width:none}
@media(max-width:980px){.gpdx-overview{grid-template-columns:1fr;gap:28px}.gpdx-capabilities{grid-template-columns:1fr}.gpdx-capabilities article{padding:22px}}

.location-map{display:block;width:100%;height:560px;border:0;background:#fff}.map-controls #map-status{margin:0}.map-controls #retry-location-map{margin-top:16px}

.location-layout{grid-template-columns:minmax(0,1fr) 280px;gap:32px}
.location-visit{padding:24px;border:1px solid var(--line);background:var(--surface)}.location-visit h3{margin-bottom:18px}.location-visit p{font-size:var(--copy-size);line-height:1.85}.location-visit .visit-phone{display:inline-block;margin-top:22px;font-size:var(--copy-size);font-weight:600;color:var(--accent)}.location-visit .visit-fax{font-size:var(--small-size);margin-top:6px}.visit-links{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-top:28px}.visit-links .button,.visit-links .text-link{font-size:var(--small-size)}
.location-fallback{margin-top:28px;padding:24px;border:1px solid var(--line);background:var(--panel)}.location-fallback>h3{margin-bottom:24px}
@media(max-width:980px){.location-layout{grid-template-columns:1fr}.location-visit{padding:22px}.visit-links{flex-direction:row;flex-wrap:wrap;align-items:center}}

.footer-services{display:flex;flex-wrap:wrap;gap:12px 24px}.footer-services a{display:inline-flex;align-items:center;min-height:36px;font-size:var(--small-size);font-weight:600;color:var(--text)}.footer-services a:hover{color:var(--accent)}.footer-services a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:420px){
 .header .brand-original{min-width:0;flex-shrink:1}
 .header .brand-original .brand-logo{width:clamp(88px,28vw,118px)}
 .header .menu-toggle{flex-shrink:0;gap:0;padding:6px 8px}
 .header .site-controls{flex-shrink:0}
 .header .site-controls #language-select{width:94px;max-width:94px}
 .benefits-lead>div{display:block}
}
