/* Onos Global: editorial hierarchy, expressive geometry, real production. */
:root {
  --paper:#f8f9f5; --ink:#202924; --muted:#59625c; --line:#d9ded7;
  --white:#fff; --red:#c24620; --orange:#f36b3f; --yellow:#edeb94;
  --teal:#306a56; --blue:#1448d5; --ease:cubic-bezier(.2,.7,.2,1);
  font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased;
}
html { scroll-padding-top:110px; }
body { line-height:1.65; }
[hidden] { display:none!important; }
button, a, select { touch-action:manipulation; }
img { filter:none; }
.wrap { width:min(1320px,calc(100% - 96px)); }
.section { padding-block:104px; }
h1,h2,h3 { font-optical-sizing:auto; }
h2 { font-size:clamp(2.2rem,4vw,3.75rem); line-height:1.08; letter-spacing:-.045em; }
p { text-wrap:pretty; }
.eyebrow { display:flex; font-size:.74rem; font-weight:600; letter-spacing:.1em; line-height:1.7; }
.section-index { border:0; width:auto; height:auto; color:var(--teal); font-family:monospace; }
.mono { font-size:.73rem; letter-spacing:.05em; }
.site-header { padding:18px max(48px,calc((100vw - 1320px)/2)); gap:32px; background:#f8f9f5ed; border-color:var(--line); }
.wordmark { gap:7px; }
.wordmark b { font-size:1.36rem; letter-spacing:-.045em; }
.wordmark small { font-size:.56rem; letter-spacing:.27em; }
.main-nav { gap:30px; }
.main-nav a { font-size:.88rem; }
.main-nav a::after { background:var(--teal); }
.header-actions { gap:24px; }
.header-cta { background:var(--ink); border-radius:4px; padding:12px 19px; font-size:.84rem; }
.header-cta:hover { background:var(--teal); }
.language-switch { border:1px solid var(--line); border-radius:5px; padding:3px; }
.language-switch a { font-size:.7rem; min-width:32px; min-height:30px; opacity:1; color:var(--muted); border-radius:3px; }
.language-switch a[aria-current=page] { background:var(--ink); color:#fff; }
.button { min-height:52px; padding:15px 22px; font-size:.9rem; font-weight:600; border-radius:4px; gap:24px; }
.button.primary { background:var(--ink); color:white; }
.button.primary:hover { background:var(--teal); }
.button>span:last-child:not(:first-child), .header-cta>span:last-child { transition:transform .2s; }
.button:hover>span:last-child:not(:first-child), .header-cta:hover>span:last-child { transform:translate(2px,-2px); }
:where(a,button,select):focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
.text-link { font-size:.9rem; font-weight:500; }
.enterprise-hero { padding-top:42px; padding-bottom:38px; }
.hero-kicker { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.hero-kicker .status-dot { width:7px; height:7px; background:var(--teal); }
.hero-edition { font-family:monospace; font-size:.7rem; color:var(--muted); letter-spacing:.04em; }
.hero-story { display:grid; grid-template-columns:1.7fr 1fr; gap:64px; align-items:end; margin:34px 0 42px; }
.enterprise-hero h1 { font-size:clamp(3rem,4.65vw,4.5rem); line-height:1.18; letter-spacing:-.045em; font-weight:500; max-width:none; text-wrap:balance; }
.hero-emphasis { color:var(--teal); }
.hero-summary { padding-bottom:7px; }
.hero-summary>p { font-size:1.1rem; color:var(--muted); line-height:1.65; max-width:42ch; }
.hero-summary .hero-actions { margin-top:26px; gap:22px; }
.hero-summary .hero-actions .button { font-size:.85rem; }
.hero-secondary { font-size:.84rem; display:flex; align-items:center; gap:16px; padding-block:12px; }
.hero-secondary:hover { color:var(--teal); }
.hero-stage { display:grid; grid-template-columns:2.05fr 1fr; gap:16px; }
.hero-main-photo { min-width:0; overflow:hidden; border-radius:5px; background:#e0e4dc; display:flex; flex-direction:column; }
.hero-main-photo img { width:100%; height:350px; object-fit:cover; object-position:center 58%; }
.hero-main-photo figcaption { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 21px; background:#edf0e9; }
.photo-caption-main { font-size:.92rem; font-weight:500; }
.hero-main-photo .mono { font-size:.66rem; color:var(--muted); }
.world-card { position:relative; background:var(--yellow); border-radius:5px; overflow:hidden; min-width:0; padding:24px 28px; display:flex; flex-direction:column; justify-content:space-between; }
.world-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.world-card-top .mono { font-size:.67rem; }
.world-arrow { font-size:1.45rem; line-height:1; transition:transform .2s; }
.world-card:hover .world-arrow { transform:translate(3px,-3px); }
.orbital-art { width:min(290px,100%); margin:-7px auto -10px; }
.orbital-art svg { display:block; width:100%; height:auto; }
.globe-route { stroke-dasharray:480; stroke-dashoffset:0; }
.world-card:hover .globe-route { animation:draw-route .9s var(--ease) both; }
.world-card-bottom strong { display:block; font-weight:500; font-size:1.55rem; letter-spacing:-.035em; line-height:1.18; }
.world-card-bottom>span { display:block; font-size:.77rem; margin-top:14px; }
@keyframes draw-route { from {stroke-dashoffset:480} to {stroke-dashoffset:0} }
.facts { margin-top:0; padding:30px 0 34px; border:0; border-bottom:1px solid var(--line); }
.facts>div { padding-inline:40px; gap:3px; }
.facts strong { color:var(--ink); font-size:2.75rem; font-weight:500; line-height:1.1; }
.facts span { font-size:.84rem; color:var(--muted); }
.section-heading { grid-template-columns:1fr; gap:22px; margin-bottom:42px; }
.section-heading>.eyebrow { margin:0; max-width:none; }
.section-heading>div { display:grid; grid-template-columns:1.2fr 1fr; gap:80px; align-items:end; }
.section-heading h2 { font-size:clamp(2.2rem,3.6vw,3.6rem); max-width:20ch; font-weight:500; }
.section-intro { font-size:1rem; line-height:1.75; margin:0; max-width:48ch; }
.capability-grid { gap:18px; border:0; }
.capability-card { background:transparent; border:0!important; border-radius:0; box-shadow:none!important; display:flex; flex-direction:column; }
.capability-art { display:flex; height:200px; border:0; border-radius:5px; flex:none; }
.art-print { background:#e2ecdc; }
.art-print span { width:80px; height:80px; background:#e7512d; opacity:.93; }
.art-print span:nth-child(2) { background:#236651; }
.art-print span:nth-child(3) { background:#e5c64b; }
.art-stitch { background:#f8d2bb; }
.art-stitch::before { border-color:#d6532a; width:106px; height:106px; border-width:18px; }
.art-stitch::after { inset:0 30%; background:repeating-linear-gradient(0deg,transparent 0 14px,#f8d2bb 14px 19px); opacity:1; }
.art-sublimation { background:#d9e4fb; }
.art-sublimation::before { inset:-12% 27%; border:26px solid #315bba; transform:rotate(38deg); }
.art-sublimation::after { background:#f4a45e; width:78px; height:78px; }
.art-laser { background:#edeb94; }
.art-laser::before { width:125px; height:125px; left:calc(50% - 62px); top:38px; background:#345e43; }
.card-content { height:auto; flex:1; padding:24px 0 0; display:flex; flex-direction:column; }
.card-content>.motion-illustration { display:none; }
.card-content>.mono { color:var(--muted); font-size:.7rem; }
.card-content h3 { min-height:2.7em; font-size:1.55rem; line-height:1.23; margin:15px 0 0; font-weight:500; letter-spacing:-.035em; }
.card-content p { color:var(--muted); font-size:.92rem; line-height:1.65; margin:15px 0 24px; }
.card-content .tag { font-size:.73rem; font-weight:500; padding-top:18px; }
.method-shortcut { color:var(--ink); font-size:.84rem; margin-top:18px; padding-bottom:4px; }
.method-shortcut:hover { color:var(--teal); }
.capability-card:hover .art-print span:first-child { transform:translateX(-7px); }
.capability-note { display:none; }
.production-fit { padding-block:90px; background:#e9eee5; scroll-margin-top:0; }
.fit-head { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:80px; margin-bottom:34px; }
.fit-head h2 { font-size:clamp(2.2rem,3.6vw,3.6rem); font-weight:500; max-width:18ch; }
.fit-head label { width:100%; font-weight:500; font-size:.92rem; }
.fit-head select { margin-top:12px; width:100%; padding:17px 40px 17px 16px; color:var(--ink); background:white; border:1px solid #aebbac; border-radius:4px; min-height:56px; font-size:.94rem; }
.fit-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.fit-tabs button { border:1px solid #b7c3b3; padding:10px 22px; border-radius:3px; background:transparent; color:var(--ink); font-size:.85rem; min-height:44px; transition:background .18s,color .18s; }
.fit-tabs button[aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
.fit-tabs button:hover:not([aria-pressed=true]) { background:#d8e2d3; }
.fit-tabs button:active { transform:scale(.97); }
.fit-panel { display:grid; grid-template-columns:1.15fr 1fr; background:white; border:0; border-radius:6px; overflow:hidden; }
.fit-panel>img { min-height:395px; max-height:520px; height:100%; width:100%; object-fit:cover; }
.fit-copy { padding:40px 42px; }
.fit-copy .mono { color:var(--teal); }
.fit-copy h3 { font-size:2.1rem; line-height:1.2; font-weight:500; margin:16px 0 24px; }
.fit-copy dl>div { border-color:var(--line); margin-top:18px; padding-top:18px; }
.fit-copy dt { font-size:.85rem; font-weight:600; }
.fit-copy dd { font-size:.96rem; color:var(--muted); line-height:1.7; }
.fit-foot { margin-top:24px; gap:40px; }
.fit-foot p { color:var(--muted); font-size:.84rem; max-width:70ch; }
.fit-foot .button { background:var(--ink); border-radius:4px; color:white; }
.fit-foot .button:hover { background:var(--teal); }
.network { background:var(--ink); color:var(--paper); }
.network .eyebrow, .network .section-index { color:#c0d8ac; }
.network .section-intro { color:#b8c4b9; }
.network-photo { border:0; border-radius:5px; background:#2d3930; }
.network-photo img { height:385px; }
.network-photo figcaption { background:#2d3930; color:#e7eee0; border:0; padding:17px 22px; font-size:.84rem; }
.plant-grid { gap:42px; margin-top:46px; }
.plant { border-top:1px solid #5b695d; padding-top:25px; }
.plant-code { color:#c3d89f; font-size:.77rem; }
.plant h3 { font-size:2rem; font-weight:500; }
.plant .plant-role { color:#ecf1e6; font-size:.92rem; font-weight:500; margin-top:14px; }
.plant p { font-size:.95rem; color:#b9c4b9; }
.plant-location { font-size:.78rem; color:#d2dccb; }
.process-grid { border-color:var(--line); }
.step-number { color:var(--teal); font-weight:500; font-size:2.2rem; }
.process-grid>li>.motion-illustration { width:60px; height:60px; margin:22px 0; }
.motion-illustration { color:var(--teal); --ac:#c24620; }
.process-grid h3 { font-size:1.4rem; font-weight:500; min-height:2.6em; line-height:1.3; margin-top:20px; }
.process-grid p { font-size:.92rem; line-height:1.7; }
.gallery-section { background:#edf0e9; color:var(--ink); }
.gallery-heading h2 { font-size:clamp(2.2rem,3.6vw,3.6rem); font-weight:500; }
.gallery-heading .eyebrow { color:var(--muted); }
.gallery-controls button { color:var(--ink); border-color:#a7b2a3; border-radius:50%; width:48px; height:48px; }
.gallery-controls button:hover { background:var(--ink); color:white; }
.photo-rail { scrollbar-color:#b4bfb0 transparent; }
.photo-rail figure { flex-basis:43%; }
.photo-button { border-radius:5px; background:#dae2d3; }
.photo-button>span { background:white; border-radius:50%; width:40px; height:40px; }
.photo-rail figcaption { font-size:.94rem; }
.photo-rail figcaption .mono { color:var(--teal); }
.gallery-hint { color:var(--muted); font-size:.79rem; }
.ecosystem-card { border:1px solid var(--line); border-radius:5px; padding:30px; }
.global-card { background:#dde8d7; color:var(--ink); }
.pod-card { background:#f8d2bb; color:var(--ink); }
.group-card { background:#efedcf; color:var(--ink); }
.ecosystem-symbol { font-size:3.5rem; font-weight:400; color:var(--teal); }
.ecosystem-card h3 { font-size:1.8rem; font-weight:500; }
.ecosystem-card .mono { font-size:.69rem; }
.ecosystem-card p { font-size:.96rem; line-height:1.7; }
.domain { font-size:.82rem; border-color:#a2ad9c; }
.faq { padding-top:0; }
.faq-heading h2 { font-weight:500; }
.faq-heading p:not(.eyebrow) { font-size:.99rem; line-height:1.7; }
.faq-list summary { font-size:1rem; font-weight:500; padding-block:25px; }
.faq-list details>p { font-size:.95rem; }
.faq-list summary>span:last-child { color:var(--teal); }
.contact-section { background:var(--yellow); color:var(--ink); padding-block:88px; }
.contact-grid { gap:100px; }
.contact-grid h2 { font-size:clamp(2.8rem,4.9vw,5rem); font-weight:500; max-width:14ch; }
.contact-section .contact-grid p,.contact-section .contact-note { color:var(--ink); }
.contact-section .button.primary { background:var(--ink); color:white; }
.contact-section .button.primary:hover { background:var(--teal); }
.contact-mark { color:var(--teal); }
.contact-details,.contact-address { border-color:#a9ad70; }
.contact-details>a { font-size:clamp(1rem,1.65vw,1.45rem); font-weight:500; }
.contact-address p { font-size:.87rem; }
.contact-note { font-size:.76rem; }
.site-footer { background:var(--ink); color:var(--paper); padding-top:50px; }
.footer-brand { font-size:clamp(2.7rem,9.5vw,9rem); letter-spacing:-.055em; font-weight:500; border-color:#52604f; padding-bottom:28px; }
.footer-brand span { color:#c0d8ac; }
.footer-bottom { font-size:.79rem; color:#c3cdbe; padding-top:24px; }
.footer-bottom a:hover { color:white; }
.motion-toggle { color:var(--ink); background:#fff; border-color:var(--line); box-shadow:0 3px 14px #20302112; }
.motion-ring { display:none; }
.motion-ready [data-motion-card]:hover { transform:none!important; box-shadow:none; }
.motion-ready :is(.button,.header-cta):hover { translate:none; box-shadow:none; }
.reveal { transition:opacity .5s var(--ease),transform .5s var(--ease); }
.image-dialog { border-radius:6px; }
.skip-link:not(:focus) { clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; }
html[lang=vi] .enterprise-hero h1 { font-size:clamp(3rem,4.65vw,4.5rem); line-height:1.22; letter-spacing:-.045em; }
html[lang=vi] .section-heading h2,html[lang=vi] .fit-head h2 { font-size:clamp(2.1rem,3.4vw,3.5rem); line-height:1.24; }
html[lang=vi] .card-content h3 { min-height:2.7em; line-height:1.3; }
html[lang=vi] .hero-summary>p { font-size:1.02rem; }
@media (min-width:1600px) {
  .hero-main-photo img { height:405px; }
  .enterprise-hero { padding-top:54px; }
  .hero-story { margin-block:44px 50px; }
  .orbital-art { width:310px; }
}
@media (max-width:1180px) {
  .wrap { width:calc(100% - 64px); }
  .site-header { padding-inline:32px; gap:24px; }
  .main-nav { gap:22px; }
  .main-nav a { font-size:.81rem; }
  .header-actions { gap:16px; }
  .hero-story { gap:40px; }
  .enterprise-hero h1 { font-size:clamp(2.8rem,4.65vw,4rem); }
  .hero-summary>p { font-size:1rem; }
  .hero-summary .hero-actions { gap:9px 20px; }
  .hero-main-photo img { height:340px; }
  .world-card { padding:24px; }
  .world-card-bottom strong { font-size:1.45rem; }
  .orbital-art { margin:0 auto; }
  .section-heading>div,.fit-head { gap:45px; }
  .capability-grid { gap:16px; }
  .capability-art { height:175px; }
  .card-content h3 { font-size:1.4rem; }
  .card-content p { font-size:.87rem; }
  .art-laser::before { top:26px; }
  .fit-copy { padding:32px; }
}
@media (max-width:980px) {
  .section { padding-block:78px; }
  .site-header { padding-block:13px; }
  .main-nav a { font-size:.91rem; }
  .enterprise-hero { padding-top:30px; }
  .hero-story { grid-template-columns:1.1fr 1fr; gap:30px; margin:28px 0 35px; align-items:start; }
  .enterprise-hero h1 { font-size:clamp(3rem,6.2vw,4.3rem); line-height:1.08; }
  .hero-edition { display:none; }
  .hero-summary>p { font-size:.95rem; }
  .hero-summary .hero-actions .button { padding:13px 16px; font-size:.82rem; }
  .hero-secondary { font-size:.8rem; }
  .hero-stage { grid-template-columns:1.55fr 1fr; gap:14px; }
  .hero-main-photo img { height:310px; }
  .hero-main-photo figcaption { padding:16px; }
  .hero-main-photo .mono { display:none; }
  .photo-caption-main { font-size:.85rem; }
  .world-card { padding:20px; }
  .world-card-top .mono { font-size:.6rem; }
  .world-card-bottom strong { font-size:1.3rem; }
  .world-card-bottom>span { font-size:.71rem; }
  .facts strong { font-size:2.35rem; }
  .facts>div { padding-inline:24px; }
  .facts span { font-size:.77rem; }
  .section-heading>div { gap:35px; }
  .section-heading h2 { font-size:2.55rem; }
  .section-intro { font-size:.94rem; }
  .capability-grid { gap:38px 24px; }
  .capability-art { height:195px; }
  .card-content h3 { min-height:0; font-size:1.55rem; }
  .card-content p { font-size:.94rem; }
  .fit-head { gap:35px; }
  .fit-head h2 { font-size:2.55rem; }
  .fit-panel { grid-template-columns:1fr 1fr; }
  .fit-copy { padding:28px; }
  .fit-copy h3 { font-size:1.8rem; }
  .fit-copy dd { font-size:.89rem; }
  .fit-panel>img { min-height:390px; }
  .plant-grid { gap:26px; }
  .plant p { font-size:.88rem; }
  .plant h3 { font-size:1.8rem; }
  .process-grid h3 { min-height:0; }
  .ecosystem-grid { grid-template-columns:1fr; }
  .ecosystem-card { display:grid; grid-template-columns:80px 1fr 1fr; gap:0 24px; align-items:center; padding:24px; }
  .ecosystem-symbol { grid-column:1; grid-row:1/4; margin:0; }
  .ecosystem-card .mono { grid-column:2/4; }
  .ecosystem-card h3 { grid-column:2; }
  .ecosystem-card p { grid-column:3; grid-row:2/4; margin:10px 0; }
  .domain { grid-column:2; margin-top:14px; font-size:.78rem; }
  html[lang=vi] .enterprise-hero h1 { font-size:clamp(2.8rem,5.4vw,4rem); }
}
@media (max-width:700px) {
  html { scroll-padding-top:100px; }
  .wrap { width:calc(100% - 40px); }
  .site-header { padding:13px 20px; }
  .header-cta { display:none; }
  .header-actions { gap:12px; }
  .language-switch { padding:2px; }
  .language-switch a { min-width:28px; font-size:.67rem; }
  .wordmark b { font-size:1.2rem; }
  .wordmark small { font-size:.5rem; }
  .onos-ref-logo { width:34px; height:34px; }
  .enterprise-hero { padding-top:30px; padding-bottom:24px; }
  .hero-kicker .eyebrow { font-size:.65rem; letter-spacing:.065em; gap:10px; }
  .hero-story { grid-template-columns:1fr; gap:23px; margin:23px 0 30px; }
  .enterprise-hero h1 { font-size:clamp(2.65rem,10.2vw,4.4rem); line-height:1.1; letter-spacing:-.057em; }
  .hero-summary { padding:0; }
  .hero-summary>p { font-size:1rem; line-height:1.7; max-width:43ch; }
  .hero-summary .hero-actions { gap:15px 23px; margin-top:23px; }
  .hero-summary .hero-actions .button { min-height:50px; padding:14px 18px; font-size:.82rem; gap:20px; }
  .hero-stage { grid-template-columns:1fr; gap:14px; }
  .hero-main-photo img { height:auto; aspect-ratio:1.43; object-position:center; }
  .hero-main-photo figcaption { padding:13px 15px; }
  .photo-caption-main { font-size:.86rem; }
  .hero-main-photo .mono { display:block; font-size:.58rem; }
  .world-card { display:grid; grid-template-columns:1fr 130px; gap:14px; padding:22px; }
  .world-card-top { grid-column:1/-1; }
  .world-card-bottom { grid-column:1; grid-row:2; align-self:center; }
  .world-card-bottom strong { font-size:1.32rem; line-height:1.25; }
  .world-card-bottom>span { font-size:.73rem; line-height:1.5; max-width:17ch; margin-top:12px; }
  .orbital-art { grid-column:2; grid-row:2; width:140px; max-width:100%; margin:0; }
  .world-card-top .mono { font-size:.65rem; }
  .facts { grid-template-columns:repeat(2,1fr); padding:0; }
  .facts>div { padding:24px 0 24px 22px!important; min-height:118px; }
  .facts>div:nth-child(odd) { padding-left:0!important; }
  .facts strong { font-size:2.35rem; }
  .facts span { font-size:.79rem; margin-top:8px; }
  .section { padding-block:60px; }
  .section-heading { gap:18px; margin-bottom:30px; }
  .section-heading>div { grid-template-columns:1fr; gap:20px; }
  .section-heading h2 { font-size:2.4rem; line-height:1.14; max-width:21ch; }
  .section-intro { font-size:.97rem; line-height:1.75; }
  .eyebrow { font-size:.68rem; gap:10px; }
  .capability-grid { grid-template-columns:1fr 1fr; gap:33px 20px; }
  .capability-art { height:150px; }
  .art-print span { width:62px; height:62px; margin:-18px; }
  .art-stitch::before { width:90px; height:90px; border-width:13px; }
  .art-sublimation::before { border-width:19px; }
  .art-sublimation::after { width:55px; height:55px; }
  .art-laser::before { width:90px; height:90px; left:calc(50% - 45px); top:30px; }
  .card-content { padding:19px 0 0; }
  .card-content>.mono { font-size:.6rem; letter-spacing:.015em; }
  .card-content h3 { font-size:1.28rem; min-height:2.7em; margin-top:12px; line-height:1.25; }
  .card-content p { font-size:.87rem; margin-top:12px; line-height:1.65; }
  .card-content .tag { font-size:.66rem; padding-top:14px; }
  .method-shortcut { font-size:.75rem; margin-top:17px; }
  .production-fit { padding-block:58px; }
  .fit-head { display:block; margin-bottom:25px; }
  .fit-head h2 { font-size:2.4rem; line-height:1.14; max-width:18ch; }
  .fit-head label { display:block; margin-top:23px; font-size:.86rem; }
  .fit-head select { font-size:.86rem; }
  .fit-tabs { gap:8px; margin-bottom:22px; }
  .fit-tabs button { font-size:.77rem; padding:9px 13px; }
  .fit-panel { grid-template-columns:1fr; }
  .fit-panel>img { min-height:0; height:auto; aspect-ratio:1.5; }
  .fit-copy { padding:27px 24px; }
  .fit-copy h3 { font-size:1.9rem; }
  .fit-copy dd { font-size:.94rem; }
  .fit-foot { flex-direction:column; gap:23px; align-items:stretch; }
  .fit-foot p { font-size:.8rem; }
  .fit-foot .button { width:100%; justify-content:space-between; }
  .network-photo img { height:260px; }
  .network-photo figcaption { padding:14px; font-size:.75rem; }
  .network-photo .mono { font-size:.58rem; }
  .plant-grid { grid-template-columns:1fr; gap:30px; margin-top:30px; }
  .plant { padding-top:23px; }
  .plant h3 { font-size:2rem; margin-top:12px; }
  .plant p { font-size:.96rem; }
  .plant-location { margin-top:18px; font-size:.79rem; }
  .process-grid { grid-template-columns:1fr; gap:0; }
  .process-grid>li,.process-grid>li:not(:first-child) { padding:26px 0 26px 52px; border-left:0; border-top:1px solid var(--line); }
  .process-grid>li:first-child { border-top:0; }
  .step-number { position:absolute; left:0; top:30px; font-size:1.65rem; }
  .process-grid>li>.motion-illustration { width:56px; height:56px; margin:0 0 18px; }
  .process-grid h3 { margin:0; font-size:1.5rem; }
  .process-grid p { font-size:.94rem; margin-top:14px; }
  .gallery-heading { align-items:end; flex-wrap:wrap; gap:20px; }
  .gallery-heading h2 { font-size:2.35rem; }
  .gallery-heading .eyebrow { margin-bottom:18px; }
  .gallery-controls { display:flex; }
  .gallery-controls button { width:42px; height:42px; }
  .photo-rail figure { flex-basis:89%; }
  .photo-rail figcaption { font-size:.88rem; gap:15px; }
  .gallery-hint { font-size:.75rem; }
  .ecosystem-card { display:flex; padding:27px; }
  .ecosystem-symbol { align-self:flex-start; margin-bottom:22px; font-size:3rem; }
  .ecosystem-card .mono { align-self:flex-start; font-size:.66rem; }
  .ecosystem-card h3 { width:100%; font-size:1.85rem; }
  .ecosystem-card p { align-self:flex-start; font-size:.97rem; margin:17px 0 25px; }
  .domain { width:100%; font-size:.82rem; margin-top:auto; }
  .faq { padding-top:0; grid-template-columns:1fr; gap:30px; }
  .faq-heading h2 { font-size:2.4rem; }
  .faq-heading p:not(.eyebrow) { font-size:.97rem; }
  .faq-list details>p { font-size:.92rem; }
  .contact-section { padding-block:59px; }
  .contact-grid { grid-template-columns:1fr; gap:36px; }
  .contact-grid h2 { font-size:2.85rem; line-height:1.12; max-width:14ch; }
  .contact-grid>div>p:not(.eyebrow):not(.contact-note) { font-size:.97rem; line-height:1.7; }
  .contact-details { gap:9px; padding-top:25px; }
  .contact-details>a { font-size:1.2rem; }
  .contact-note { font-size:.74rem; }
  .contact-address p { font-size:.85rem; }
  .site-footer { padding-top:38px; padding-bottom:26px; }
  .footer-brand { font-size:clamp(2rem,9.3vw,4.5rem); gap:12px; padding-bottom:24px; }
  .footer-bottom { font-size:.74rem; gap:20px; }
  html[lang=vi] .enterprise-hero h1 { font-size:clamp(2.25rem,8.8vw,4rem); line-height:1.24; letter-spacing:-.045em; }
  html[lang=vi] .section-heading h2,html[lang=vi] .fit-head h2 { font-size:2.2rem; line-height:1.25; }
  html[lang=vi] .hero-summary>p { font-size:1rem; }
  html[lang=vi] .contact-grid h2 { font-size:2.6rem; }
}
@media (max-width:390px) {
  .world-card { grid-template-columns:1fr 106px; padding:20px; }
  .world-card-bottom strong { font-size:1.2rem; }
  .hero-main-photo .mono { display:none; }
  .capability-grid { gap:32px 18px; }
  .card-content h3 { font-size:1.15rem; }
  .card-content p { font-size:.85rem; }
}
@media (max-width:480px) {
  .capability-grid { grid-template-columns:1fr; gap:36px; }
  .capability-art { height:180px; }
  .art-print span { width:90px; height:90px; margin:-15px; }
  .art-stitch::before { width:110px; height:110px; border-width:17px; }
  .art-laser::before { width:114px; height:114px; left:calc(50% - 57px); top:33px; }
  .card-content h3,html[lang=vi] .card-content h3 { min-height:0; font-size:1.6rem; }
  .card-content p { font-size:.98rem; line-height:1.7; margin:14px 0 22px; }
  .card-content>.mono { font-size:.68rem; }
  .card-content .tag { font-size:.77rem; }
  .method-shortcut { font-size:.88rem; }
}
@media (prefers-reduced-motion:reduce) {
  .world-card:hover .globe-route { animation:none; }
  .world-arrow,.button>span:last-child { transition:none; }
}
@media (prefers-reduced-transparency:reduce) {
  .site-header { background:var(--paper); backdrop-filter:none; }
}

/* Three real Onos facility scenes, with controls kept below the photos. */
.network-photo { margin:0; position:relative; overflow:hidden; border-radius:14px; }
.facility-carousel { position:relative; outline-offset:6px; background:#26342d; }
.facility-carousel>.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.facility-slides { position:relative; height:clamp(320px,38vw,500px); overflow:hidden; background:#26342d; }
.facility-slide {
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  margin:0; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .44s var(--ease),visibility 0s linear .44s;
}
.facility-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .44s var(--ease); }
.network-photo .facility-slide>img {
  position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none;
  object-fit:cover; object-position:center 52%; transform:scale(1); transition:transform 5.2s linear;
}
.facility-slide.is-active>img { transform:scale(1.035); }
.network-photo .facility-slide>figcaption {
  position:relative; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:20px;
  padding:56px 30px 24px; color:#fff; background:linear-gradient(0deg,#12231ee8,transparent);
}
.facility-slide figcaption>span:first-child { font-size:1.12rem; font-weight:600; line-height:1.45; }
.facility-slide figcaption>.mono { font-size:.72rem; line-height:1.5; letter-spacing:.08em; text-align:right; }
.facility-controls {
  display:flex; align-items:center; gap:12px; min-height:68px; padding:10px 20px;
  background:#26342d; color:#f8f9f5;
}
.facility-arrow,.facility-toggle {
  display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px;
  padding:0; border:1px solid #78847a; border-radius:50%; color:inherit;
  background:transparent; cursor:pointer; transition:background .18s,border-color .18s,transform .18s;
}
.facility-arrow span { font-size:1.3rem; line-height:1; }
.facility-toggle { font-size:1rem; }
.facility-arrow:hover,.facility-toggle:hover { background:#415447; border-color:#d0ddcf; }
.facility-arrow:active,.facility-toggle:active { transform:scale(.94); }
.facility-play-icon { display:none; font-size:.8rem; }
.facility-toggle[aria-pressed=true] .facility-pause-icon { display:none; }
.facility-toggle[aria-pressed=true] .facility-play-icon { display:block; }
.facility-dots { display:flex; align-items:center; gap:4px; }
.facility-dots button {
  display:grid; place-items:center; width:34px; height:44px; padding:0; border:0;
  color:inherit; background:transparent; cursor:pointer;
}
.facility-dots button span { width:7px; height:7px; border-radius:99px; background:#8c9a8e; transition:width .2s,background .2s; }
.facility-dots button[aria-pressed=true] span { width:22px; background:#f0ed9d; }
.facility-progress { height:2px; flex:1; overflow:hidden; background:#536157; }
.facility-progress>span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:#f0ed9d; }
.facility-carousel.is-counting .facility-progress>span { animation:facility-countdown 5.2s linear both; }
.facility-carousel.is-hovered .facility-progress>span { animation-play-state:paused; }
@keyframes facility-countdown { to { transform:scaleX(1); } }
.network-photo .facility-slides img { filter:none; }
@media (max-width:700px) {
  .network-photo { border-radius:10px; }
  .facility-slides { height:clamp(230px,66vw,350px); touch-action:pan-y; }
  .network-photo .facility-slide>figcaption { align-items:start; flex-direction:column; gap:5px; padding:44px 18px 17px; }
  .facility-slide figcaption>span:first-child { font-size:1rem; }
  .facility-slide figcaption>.mono { font-size:.66rem; text-align:left; }
  .facility-controls { gap:7px; min-height:58px; padding:7px 10px; }
  .facility-arrow,.facility-toggle { flex-basis:40px; width:40px; height:40px; }
  .facility-dots { gap:0; }
  .facility-dots button { width:30px; height:40px; }
  .facility-progress { min-width:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .facility-slide,.facility-slide.is-active,.network-photo .facility-slide>img,.facility-arrow,.facility-toggle,.facility-dots button span { transition:none; }
  .facility-slide.is-active>img { transform:none; }
  .facility-progress { display:none; }
}

/* Official machine photography and specifications from Onos Factory. */
#capabilities .capability-art { position:relative; overflow:hidden; border-radius:8px; background:#1d2723; }
#capabilities .capability-art::before,#capabilities .capability-art::after { display:none; }
#capabilities .capability-art>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 46%; }
#capabilities .machine-model { display:block; margin-top:10px; color:#76512b; font:600 .64rem/1.5 var(--mono); letter-spacing:.035em; }

/* Keep the requested company logo lockup, not a billboard-sized wordmark. */
.footer-brand { display:flex; align-items:center; gap:14px; white-space:normal; font-size:1rem; letter-spacing:0; line-height:1.2; padding:16px 0 24px; }
.footer-brand .footer-logo-icon { width:52px; height:52px; flex:none; }
.footer-brand .footer-logo-lockup { display:grid; gap:5px; }
.footer-brand .footer-logo-lockup b { color:#f8f9f5; font-size:1.12rem; letter-spacing:.09em; }
.footer-brand .footer-logo-lockup small { color:#c0d8ac; font-size:.57rem; letter-spacing:.12em; }
.footer-brand .footer-arrow { margin-left:auto; color:#c0d8ac; font-size:1.8rem; }
@media(max-width:560px) { .footer-brand .footer-logo-icon { width:42px; height:42px; } }

/* Production overview: group related content, reduce visual noise. */
.facts {
  padding:28px 12px; background:#edf1e9; border:1px solid #e0e6dc;
  border-radius:20px; margin-top:4px;
}
.facts>div,.facts>div:first-child { padding:0 28px; gap:8px; }
.facts strong { font-size:3rem; font-weight:600; letter-spacing:-.055em; color:#285640; line-height:1.1; }
.facts span { font-size:.88rem; margin:0; line-height:1.5; color:#4f5e53; }
#capabilities { padding-block:80px; }
#capabilities .section-heading { gap:16px; margin-bottom:32px; }
#capabilities .section-heading>div { grid-template-columns:1.2fr 1fr; align-items:center; gap:64px; }
#capabilities .section-heading .eyebrow { color:var(--teal); font-size:.75rem; letter-spacing:.08em; }
#capabilities .section-heading h2,html[lang=vi] #capabilities .section-heading h2 {
  font-size:clamp(2rem,3.4vw,3.15rem); font-weight:600; line-height:1.2; letter-spacing:-.045em; max-width:22ch;
}
#capabilities .section-intro { font-size:1.05rem; line-height:1.7; max-width:46ch; }
#capabilities .capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
#capabilities .capability-card {
  position:relative; background:#fff; border:1px solid #e1e6dd!important; border-radius:18px;
  overflow:hidden; transition:border-color .2s,box-shadow .2s;
}
#capabilities .capability-card:hover,#capabilities .capability-card:focus-within {
  border-color:#a8c0ac!important; box-shadow:0 8px 26px #203b2b08!important;
}
#capabilities .capability-art {
  position:absolute; top:24px; right:24px; width:88px; height:88px; border-radius:20px; pointer-events:none;
}
#capabilities .art-print span { width:36px; height:36px; margin:-7px; }
#capabilities .art-stitch::before { width:51px; height:51px; border-width:9px; }
#capabilities .art-stitch::after { inset:0 22%; background:repeating-linear-gradient(0deg,transparent 0 8px,#f8d2bb 8px 11px); }
#capabilities .art-sublimation::before { inset:-15% 22%; border-width:12px; }
#capabilities .art-sublimation::after { width:32px; height:32px; }
#capabilities .art-laser::before { width:62px; height:62px; top:13px; left:13px; }
#capabilities .card-content { height:auto; padding:28px 30px 20px; }
#capabilities .card-content>.mono { font-size:.71rem; line-height:1.6; letter-spacing:.055em; padding-right:96px; }
#capabilities .card-content h3,html[lang=vi] #capabilities .card-content h3 {
  min-height:0; font-size:1.7rem; font-weight:600; line-height:1.3;
  letter-spacing:-.025em; margin-top:12px; padding-right:102px;
}
#capabilities .card-content p { font-size:1rem; line-height:1.65; margin:30px 0 20px; max-width:52ch; }
#capabilities .card-content .tag {
  align-self:flex-start; background:#f2f5ee; border:0; border-radius:6px;
  padding:6px 10px; font-size:.78rem; font-weight:400; line-height:1.6;
}
#capabilities .method-shortcut {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border-top:1px solid #e8ece4; margin-top:20px; padding:15px 0 0;
  min-height:48px; font-size:.9rem; font-weight:600; line-height:1.5;
}
#capabilities .method-shortcut::after {
  content:'↗'; display:grid; place-items:center; width:32px; height:32px; flex:none;
  border-radius:50%; background:#eef3e9; color:var(--teal); transition:background .2s,color .2s;
}
#capabilities .method-shortcut:hover::after { background:var(--teal); color:#fff; }
.production-fit { padding-block:76px; background:#edf1e9; }
.fit-head { align-items:center; gap:64px; margin-bottom:30px; }
.fit-head h2,html[lang=vi] .fit-head h2 {
  font-size:clamp(2rem,3.4vw,3.15rem); font-weight:600; line-height:1.2; letter-spacing:-.045em; max-width:20ch;
}
.fit-head .section-intro { font-size:1.05rem; line-height:1.7; max-width:43ch; }
.fit-tabs {
  display:flex; gap:6px; background:white; border:1px solid #dce4d7; border-bottom:0;
  border-radius:20px 20px 0 0; margin:0; padding:16px 20px;
}
.fit-tabs button {
  border:0; border-radius:99px; font-size:.94rem; font-weight:600;
  min-height:48px; padding:12px 24px; color:#59655a; background:transparent;
}
.fit-tabs button[aria-pressed=true] { background:#e6efde; color:#244731; }
.fit-tabs button:hover:not([aria-pressed=true]) { background:#f1f5ed; color:#244731; }
.fit-tabs button:focus-visible { outline-offset:2px; }
.fit-panel {
  grid-template-columns:1.05fr 1fr; border:1px solid #dce4d7; border-top:1px solid #e6ebe2;
  border-radius:0 0 20px 20px; padding:12px; gap:12px; margin:0; background:white;
}
.fit-panel>img { min-height:380px; height:100%; max-height:470px; border-radius:12px; }
.fit-copy { padding:30px 32px; }
.fit-copy .mono { font-size:.76rem; letter-spacing:.04em; }
.fit-copy h3 { font-size:2rem; font-weight:600; line-height:1.3; letter-spacing:-.025em; margin:12px 0 24px; }
.fit-copy dl>div { margin-top:20px; padding-top:20px; border-color:#e7ece2; }
.fit-copy dt { font-size:.9rem; font-weight:600; }
.fit-copy dd { font-size:1rem; line-height:1.65; margin-top:8px; }
.fit-foot { margin-top:22px; }
.fit-foot p { font-size:.87rem; line-height:1.7; max-width:65ch; }
.fit-foot .button { min-height:52px; border-radius:99px; padding-inline:24px; background:#285640; }
@media (max-width:1100px) {
  .facts>div,.facts>div:first-child { padding-inline:20px; }
  .facts strong { font-size:2.6rem; }
  #capabilities .section-heading>div,.fit-head { gap:36px; }
  #capabilities .card-content { padding:26px 24px 18px; }
  #capabilities .capability-art { width:70px; height:70px; top:22px; right:22px; border-radius:16px; }
  #capabilities .art-stitch::before { width:45px; height:45px; border-width:8px; }
  #capabilities .art-laser::before { width:50px; height:50px; top:10px; left:10px; }
  #capabilities .card-content h3 { font-size:1.5rem; padding-right:76px; }
  #capabilities .card-content>.mono { padding-right:76px; }
  #capabilities .card-content p { margin-top:24px; }
  .fit-copy { padding:24px; }
  .fit-copy h3 { font-size:1.75rem; }
}
@media (max-width:700px) {
  .facts { padding:8px 20px; border-radius:16px; }
  .facts>div,.facts>div:first-child { padding:20px 0 20px 20px!important; min-height:120px; gap:7px; }
  .facts>div:nth-child(odd) { padding-left:0!important; }
  .facts strong { font-size:2.4rem; }
  .facts span { font-size:.81rem; margin:0; max-width:15ch; }
  #capabilities { padding-block:52px; }
  #capabilities .section-heading { gap:14px; margin-bottom:24px; }
  #capabilities .section-heading>div { grid-template-columns:1fr; gap:16px; }
  #capabilities .section-heading h2,html[lang=vi] #capabilities .section-heading h2,.fit-head h2,html[lang=vi] .fit-head h2 {
    font-size:2rem; line-height:1.25; letter-spacing:-.035em; max-width:24ch;
  }
  #capabilities .section-intro,.fit-head .section-intro { font-size:1rem; line-height:1.7; }
  #capabilities .capability-grid { grid-template-columns:1fr; gap:16px; }
  #capabilities .card-content { padding:24px 22px 18px; }
  #capabilities .card-content h3,html[lang=vi] #capabilities .card-content h3 { font-size:1.5rem; padding-right:78px; }
  #capabilities .card-content>.mono { font-size:.7rem; }
  #capabilities .card-content p { font-size:.97rem; margin:24px 0 18px; }
  #capabilities .method-shortcut { margin-top:18px; font-size:.87rem; }
  .production-fit { padding-block:52px; }
  .fit-head { display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:24px; }
  .fit-tabs { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:10px; border-radius:16px 16px 0 0; }
  .fit-tabs button { font-size:.83rem; padding:11px 8px; min-height:46px; }
  .fit-panel { grid-template-columns:1fr; padding:10px; gap:0; border-radius:0 0 16px 16px; }
  .fit-panel>img { min-height:0; height:auto; aspect-ratio:1.45; border-radius:10px; }
  .fit-copy { padding:22px 14px 20px; }
  .fit-copy h3 { font-size:1.65rem; margin:10px 0 20px; }
  .fit-copy dt { font-size:.88rem; }
  .fit-copy dd { font-size:.95rem; }
  .fit-foot { gap:18px; }
  .fit-foot p { font-size:.85rem; }
}
@media (prefers-reduced-motion:reduce) {
  #capabilities .capability-card,#capabilities .method-shortcut::after { transition:none; }
}

/* Three real Onos facility scenes, with controls kept below the photos. */
.network-photo { margin:0; position:relative; overflow:hidden; border-radius:14px; }
.facility-carousel { position:relative; outline-offset:6px; background:#26342d; }
.facility-slides { position:relative; height:clamp(320px,38vw,500px); overflow:hidden; background:#26342d; }
.facility-slide {
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  margin:0; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .44s var(--ease),visibility 0s linear .44s;
}
.facility-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .44s var(--ease); }
.network-photo .facility-slide>img {
  position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none;
  object-fit:cover; object-position:center 52%; transform:scale(1); transition:transform 5.2s linear;
}
.facility-slide.is-active>img { transform:scale(1.035); }
.network-photo .facility-slide>figcaption {
  position:relative; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:20px;
  padding:56px 30px 24px; color:#fff; background:linear-gradient(0deg,#12231ee8,transparent);
}
.facility-slide figcaption>span:first-child { font-size:1.12rem; font-weight:600; line-height:1.45; }
.facility-slide figcaption>.mono { font-size:.72rem; line-height:1.5; letter-spacing:.08em; text-align:right; }
.facility-controls {
  display:flex; align-items:center; gap:12px; min-height:68px; padding:10px 20px;
  background:#26342d; color:#f8f9f5;
}
.facility-arrow,.facility-toggle {
  display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px;
  padding:0; border:1px solid #78847a; border-radius:50%; color:inherit;
  background:transparent; cursor:pointer; transition:background .18s,border-color .18s,transform .18s;
}
.facility-arrow span { font-size:1.3rem; line-height:1; }
.facility-toggle { font-size:1rem; }
.facility-arrow:hover,.facility-toggle:hover { background:#415447; border-color:#d0ddcf; }
.facility-arrow:active,.facility-toggle:active { transform:scale(.94); }
.facility-play-icon { display:none; font-size:.8rem; }
.facility-toggle[aria-pressed=true] .facility-pause-icon { display:none; }
.facility-toggle[aria-pressed=true] .facility-play-icon { display:block; }
.facility-dots { display:flex; align-items:center; gap:4px; }
.facility-dots button {
  display:grid; place-items:center; width:34px; height:44px; padding:0; border:0;
  color:inherit; background:transparent; cursor:pointer;
}
.facility-dots button span { width:7px; height:7px; border-radius:99px; background:#8c9a8e; transition:width .2s,background .2s; }
.facility-dots button[aria-current=step] span { width:22px; background:#f0ed9d; }
.facility-progress { height:2px; flex:1; overflow:hidden; background:#536157; }
.facility-progress>span { display:block; width:100%; height:100%; transform:scaleX(0); transform-origin:left; background:#f0ed9d; }
.facility-carousel.is-counting .facility-progress>span { animation:facility-countdown 5.2s linear both; }
.facility-carousel.is-hovered .facility-progress>span { animation-play-state:paused; }
@keyframes facility-countdown { to { transform:scaleX(1); } }
.network-photo .facility-slides img { filter:none; }
@media (max-width:700px) {
  .network-photo { border-radius:10px; }
  .facility-slides { height:clamp(230px,66vw,350px); }
  .network-photo .facility-slide>figcaption { align-items:start; flex-direction:column; gap:5px; padding:44px 18px 17px; }
  .facility-slide figcaption>span:first-child { font-size:1rem; }
  .facility-slide figcaption>.mono { font-size:.66rem; text-align:left; }
  .facility-controls { gap:7px; min-height:58px; padding:7px 10px; }
  .facility-arrow,.facility-toggle { flex-basis:40px; width:40px; height:40px; }
  .facility-dots { gap:0; }
  .facility-dots button { width:30px; height:40px; }
  .facility-progress { min-width:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .facility-slide,.facility-slide.is-active,.network-photo .facility-slide>img,.facility-arrow,.facility-toggle,.facility-dots button span { transition:none; }
  .facility-slide.is-active>img { transform:none; }
  .facility-progress { display:none; }
}
