/* Visual Quality Pass. Presentation only; page responsibilities and content stay intact. */
.hero{background:#eef5fb;isolation:isolate}
.hero:before{inset:0;background:linear-gradient(90deg,rgba(248,252,255,.96) 0%,rgba(247,251,255,.92) 34%,rgba(242,249,255,.32) 64%,rgba(223,239,252,.06)),url('/assets/visual-pass/precision-hall.png') center 48%/cover;opacity:1;z-index:-2}
.hero:after{right:6%;top:-60%;width:20%;height:220%;transform:rotate(32deg);background:#ffffff38;border-left:1px solid #ffffffb3;border-right:1px solid #ffffff6b;z-index:-1}
.hero-inner,.model-hero-inner{z-index:1}
.hero-description{color:#385573;text-wrap:pretty}
.hero-picture{position:relative}
.hero-picture:before{content:'';position:absolute;bottom:2%;left:8%;right:8%;height:20%;border-radius:50%;background:radial-gradient(ellipse,#9db5c13d,transparent 65%);z-index:-1}
.hero-picture img{filter:drop-shadow(0 16px 17px #1b45632a)}
.home-hero .hero-picture img{max-width:440px;max-height:355px}
.home-hero .hero-inner{min-height:448px}
.hero .engineering-pattern{visibility:hidden}
[data-visual=technical] .hero:before{background:linear-gradient(90deg,#f8fcfff7 0%,#f7fbfff0 36%,#f5faff26 78%),url('/assets/visual-pass/engineering-desk.png') center 53%/cover}
[data-visual=technical] .hero:after{background:#ffffff26;right:12%}
[data-visual=company] .hero:before,[data-visual=experience] .hero:before,[data-visual=motion] .hero:before{background:linear-gradient(90deg,#f8fcfffa 0%,#f7fbffe8 38%,#f0f8ff15 80%),url('/assets/visual-pass/precision-hall.png') center 39%/cover}
[data-visual=network] .hero:before{background:linear-gradient(90deg,#f7fbfffa 0%,#f6fbfff0 42%,#e0eff94d 77%),url('/assets/visual-pass/asia-regional.svg') right 40%/70% auto no-repeat,#e7f3fc}
[data-visual=network] .hero:after{background:#ffffff40}
.model-hero:before{background:linear-gradient(90deg,#eef6fbcc,#f7fbfff2 51%,#f8fcfffa),url('/assets/visual-pass/precision-hall.png') center 58%/cover}
.model-hero:after{right:auto;left:32%;opacity:.7}
.model-picture{position:relative;background:radial-gradient(ellipse at 50% 88%,#91aac71e,transparent 58%)}
.model-picture img{filter:drop-shadow(0 14px 15px #102d481a)}
.key-values{border-top:1px solid #adc4d74d;padding-top:18px}
.cta{position:relative;isolation:isolate;background:#061f3d url('/assets/visual-pass/precision-steel-cta.png') right 49%/cover;padding:32px 0;border-top:1px solid #3b668b}
.cta:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#041c32a6,#05243e66 55%,#05243e35);z-index:-1;pointer-events:none}
.cta h2{font-weight:650;text-wrap:balance}.cta p{color:#d5e4f1}.cta .white{box-shadow:0 6px 22px #00132622}
.category-grid>a{background:linear-gradient(160deg,#f0f7fd 0%,#fff 75%);border-color:#dbe7f0;box-shadow:0 5px 20px #1b446c06}
.category-grid img,.equipment-groups img{transition:transform .22s ease}
.category-grid>a:hover img,.equipment-groups>a:hover img{transform:translateY(-3px)}
.series-grid>a,.equipment-groups>a,.resource{box-shadow:0 4px 16px #17395b04;border-color:#dce7f0}
.series-grid img{background:radial-gradient(ellipse at 50% 65%,#edf5fb,transparent 73%)}
.owner-cutout{mix-blend-mode:normal!important;filter:drop-shadow(0 9px 9px #0e355320)}
.story-visual{background:linear-gradient(120deg,#f2f8fcdd,#f3f9ffd0),url('/assets/visual-pass/engineering-desk.png') center/cover;border:1px solid #dbe8f1;position:relative;min-height:310px;border-radius:6px}
.story-visual img{max-height:300px;padding:12px;filter:drop-shadow(0 14px 12px #07355922)}
.compact-about>div:last-child{background:linear-gradient(110deg,#fff 0%,#ffffffed 60%,#ffffffe0),url('/assets/visual-pass/engineering-desk.png') right center/cover}
.download-strip{position:relative}.capabilities{border-top:1px solid #cfdfed;border-bottom:1px solid #cfdfed;padding:26px 0}
.certificate{background:linear-gradient(145deg,#fff,#f7fbff);box-shadow:0 5px 18px #203f5a05}
.certificate img{box-shadow:0 3px 12px #18375112;background:white}
.featured-video{box-shadow:0 9px 32px #103c6110;border:1px solid #d8e6f1}
.featured-video>div:last-child{background:linear-gradient(125deg,#f5faff,#eaf4fd)}

[data-visual=quiet] .hero:before{background:linear-gradient(110deg,#eff6fb,#fbfdff)}
[data-visual=quiet] .hero:after{display:none}
[data-visual=quiet] .hero-inner{min-height:200px;padding-top:28px;padding-bottom:28px}
[data-visual=quiet] .engineering-pattern{height:120px}
/* Regional map plus a genuine-scale Taiwan inset, with separate point callouts. */
.map-layout{grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr);align-items:stretch;gap:22px}
.map-surface{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(205px,1fr);aspect-ratio:auto;overflow:hidden;background:#eef7fd;border:1px solid #d1e3f0;box-shadow:0 7px 24px #13375508}
.regional-map{position:relative;align-self:center;min-width:0;aspect-ratio:640/520}
.regional-map>img{width:100%;height:100%;object-fit:fill}
.map-pins button>span{width:25px;height:25px;line-height:21px;background:#0575e4;box-shadow:0 2px 8px #13447735}
.map-pins button[aria-pressed=true]>span{background:#0059b7;outline:5px solid #0075ef24}
.map-caption{bottom:7px;left:8px;background:#ffffffba;color:#537697;font-size:9px;letter-spacing:.14em;padding:5px 8px}
.taiwan-inset{min-width:0;align-self:stretch;background:#f6fbff;border-left:1px solid #cadeed;padding-top:16px;position:relative}
.taiwan-inset h2{font-size:18px;padding-left:20px;line-height:1.5;color:#073b70}
.taiwan-inset h2 small{display:block;font-size:9px;letter-spacing:.22em;font-weight:500;color:#658baa}
.taiwan-canvas{position:relative;aspect-ratio:320/460;width:100%}
.taiwan-canvas>img{width:100%;height:100%}
.taiwan-pins{position:absolute;inset:0}
.taiwan-pins>svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#1676c3;stroke-width:1.4}
.taiwan-pins>svg circle{fill:#0075ef;stroke:white;stroke-width:1.5}
.taiwan-pins button{position:absolute;left:67%;width:33%;padding:0 3px 0 0;transform:translateY(-50%);min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;background:transparent;border:0;text-align:left;z-index:1}
.taiwan-pins button>span{width:23px;height:23px;display:grid;place-items:center;border:2px solid white;border-radius:50%;background:#197dd7;color:white;font-size:11px;box-shadow:0 2px 8px #17476f25}
.taiwan-pins button>b{font-size:11px;font-weight:550;line-height:1.5;color:#225b8a;white-space:normal}
.taiwan-pins button[aria-pressed=true]>span{background:#034c94;outline:4px solid #0879df20}
.taiwan-pins button[aria-pressed=true]>b{color:#004e9f;font-weight:750}
.location-detail{background:linear-gradient(150deg,#f0f7fd,#fff);border-top:3px solid #0075ef;padding:24px;gap:13px}
.location-detail h2{font-size:23px}.location-detail p,.location-detail a{font-size:15px}
@media(max-width:1150px){.home-hero .hero-picture img{max-width:100%}.map-layout{grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr)}.map-surface{grid-template-columns:minmax(0,1.5fr) minmax(170px,1fr)}.taiwan-inset{padding-top:14px}.taiwan-inset h2{padding-left:14px}.taiwan-pins button>b{font-size:10px}.location-detail{padding:20px}.location-detail h2{font-size:21px}}
@media(max-width:900px){.home-hero .hero-inner{min-height:370px}.map-layout{display:flex;flex-direction:column}.map-surface{grid-template-columns:minmax(0,1.8fr) minmax(210px,1fr)}.taiwan-pins button>b{font-size:12px}.location-detail{min-height:0}.story-visual{min-height:260px}.story-visual img{max-height:250px}}
@media(max-width:600px){
 .hero:before{background:linear-gradient(90deg,#f5fafff2 0%,#f5faffcc 60%,#eef7ff85),url('/assets/visual-pass/precision-hall.png') 65% center/auto 100%;opacity:1}
 .hero:after{right:-35%;width:58%;background:#ffffff26}
 .home-hero .hero-inner{min-height:0;padding-top:30px;padding-bottom:30px}
 .home-hero .hero-picture img{max-height:125px;filter:drop-shadow(0 9px 8px #133a5d2b)}
 [data-visual=technical] .hero:before{background:linear-gradient(90deg,#f7fbfff5,#f7fbffe3 70%,#f3f9ff99),url('/assets/visual-pass/engineering-desk.png') 75% center/auto 100%}
 [data-visual=company] .hero:before,[data-visual=experience] .hero:before,[data-visual=motion] .hero:before{background:linear-gradient(90deg,#f7fbfff2,#f5faffd9 70%,#eef7ff9c),url('/assets/visual-pass/precision-hall.png') 75% center/auto 100%}
 [data-visual=network] .hero:before{background:linear-gradient(90deg,#f5fafff5,#f5faffcc),url('/assets/visual-pass/asia-regional.svg') right center/auto 150%}
 .model-hero:before{background:linear-gradient(180deg,#f3f9fff5,#f3f9ffb3 45%,#f8fcfff5 78%),url('/assets/visual-pass/precision-hall.png') 66% center/auto 100%}
 .model-picture img{filter:drop-shadow(0 10px 11px #102d481c)}.key-values{padding-top:13px}
 .cta{padding:29px 0;background-position:62% center;background-size:auto 165%}.cta:before{background:#041e38b8}.cta h2{font-size:22px}
 .story-visual{min-height:240px}.story-visual img{max-height:230px}.capabilities{padding:22px 0}
 .map-surface{display:flex;flex-direction:column;aspect-ratio:auto;width:100%}
 .regional-map{width:100%;aspect-ratio:640/520}
 .map-caption{font-size:9px;bottom:6px}
 .taiwan-inset{width:100%;border-left:0;border-top:1px solid #cbdfea;padding:16px 0 0;display:grid;grid-template-columns:85px minmax(0,1fr);align-items:start}
 .taiwan-inset h2{padding-left:18px;padding-top:5px;font-size:20px}
 .taiwan-canvas{max-width:290px;justify-self:end}
 .taiwan-pins button>b{font-size:12px}.taiwan-pins button{min-height:46px}.taiwan-pins button>span{width:25px;height:25px;font-size:12px}
 .location-detail{padding:22px}.location-detail h2{font-size:23px}.location-detail p,.location-detail a{font-size:14px}
 [data-visual=quiet] .hero-inner{min-height:0}
}
@media(prefers-reduced-motion:reduce){.category-grid img,.equipment-groups img{transition:none}}
@media print{.hero:before,.hero:after{display:none}.hero{background:white}.map-surface{break-inside:avoid}}
/* Approved correction: common banners contain background + copy, no floating product art. */
.hero-inner{grid-template-columns:minmax(0,1fr)}
.hero-copy{max-width:700px}
.home-hero .hero-inner{min-height:420px}
@media(max-width:900px){.home-hero .hero-inner{min-height:350px}}
@media(max-width:600px){
 .home-hero .hero-inner{display:block;min-height:0;padding-top:30px;padding-bottom:30px}
 .home-hero .hero-copy{display:block}
 .home-hero .hero-description{padding-right:0;margin-top:14px;max-width:100%}
 .home-hero .actions{display:flex;margin-top:22px}
 .hero-copy{width:100%}
}
/* Nine major page directions share assets across locales and model entities. */
[data-visual=flagship]{--hero-art:url('/assets/visual-pass/precision-hall.png')}
[data-visual=selection]{--hero-art:url('/assets/visual-pass/selection-hero.png')}
[data-visual=series]{--hero-art:url('/assets/visual-pass/series-hero.png')}
[data-visual=product]{--hero-art:url('/assets/visual-pass/model-hero.png')}
[data-visual=technical]{--hero-art:url('/assets/visual-pass/engineering-desk.png')}
[data-visual=contact]{--hero-art:url('/assets/visual-pass/contact-hero.png')}
[data-visual=company]{--hero-art:url('/assets/visual-pass/company-hero.png')}
[data-visual=motion]{--hero-art:url('/assets/visual-pass/motion-hero.png')}
body:not([data-visual=quiet]):not([data-visual=network]) .hero:before{background:linear-gradient(90deg,#f8fcfff5 0%,#f7fbffe8 35%,#f5faff1a 74%),var(--hero-art) center 52%/cover}
body[data-visual=product] .model-hero:before{background:linear-gradient(90deg,#eef6fb33,#f7fbff80 48%,#f8fcffb3),var(--hero-art) center/cover}
.social-rail{position:fixed;z-index:35;right:12px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:9px}
.social-button{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff70;border-radius:50%;color:white;box-shadow:0 3px 12px #0b345326;cursor:pointer;padding:10px;transition:transform .18s ease}
.social-button.youtube{background:#f00}.social-button.facebook{background:#1877f2}.social-button.line{background:#06c755}
.social-button svg{display:block;width:25px;height:25px}
.social-button.line svg{width:29px;height:29px}
.social-button:hover{transform:translateX(-3px)}
.social-button:focus-visible{outline:3px solid #092e55;outline-offset:3px}
.social-button>span{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#0b3054;color:white;font-size:12px;padding:6px 10px;border-radius:4px;opacity:0;visibility:hidden;pointer-events:none;white-space:nowrap}
.social-button:hover>span,.social-button:focus-visible>span{opacity:1;visibility:visible}
.social-dialog{border:0;border-radius:12px;padding:32px;width:min(400px,calc(100vw - 32px));max-height:calc(100dvh - 36px);color:#103555;box-shadow:0 20px 80px #02183055;text-align:center;overflow:auto}
.social-dialog::backdrop{background:#052341b3;backdrop-filter:blur(3px)}
.social-dialog h2{font-size:24px;margin:9px 0 12px}.social-dialog p{font-size:14px;line-height:1.8;margin:0 0 15px}.social-dialog img{width:260px;max-width:100%;height:auto;margin:auto}.social-dialog strong{display:block;font-size:18px;margin-top:8px}
.line-close{position:absolute;right:8px;top:8px;background:transparent;border:0;color:#173b5b;font-size:30px;width:44px;height:44px;cursor:pointer}
.social-toggle{display:none}
@media(max-width:600px){
 body:not([data-visual=quiet]):not([data-visual=network]) .hero:before{background:linear-gradient(90deg,#f7fbfff2,#f5faffd1 70%,#eef7ff99),var(--hero-art) 72% center/auto 100%}
 body[data-visual=product] .model-hero:before{background:linear-gradient(180deg,#f3f9ff99,#f3f9ffb3 45%,#f8fcfff5 78%),var(--hero-art) left center/auto 100%}
 .social-rail{right:0;gap:7px;align-items:flex-end}
 .social-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:36px;height:52px;padding:5px 0;border:1px solid #d9e5ef;border-right:0;border-radius:8px 0 0 8px;background:#ffffffed;color:#0d4778;box-shadow:0 3px 12px #0b345312;font-size:10px;cursor:pointer}
 .social-toggle svg{width:17px;height:17px}
 .social-rail .social-button{display:none;width:44px;height:44px;margin-right:4px}
 .social-rail.is-open .social-button{display:grid}
 .social-rail.is-open{padding:7px 0 7px 7px;background:#ffffffec;border-radius:12px 0 0 12px;box-shadow:0 4px 22px #10325122}
 .social-button>span{display:none}
 body:has(.main-nav.open) .social-rail{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){.social-button{transition:none}}
@media print{.social-rail,.social-dialog{display:none!important}}
/* Client revision: explicit downloads and four-language flags. */
/* Complete legacy specification matrix; the first column remains visible on narrow screens. */
.full-spec-table{width:100%;overflow-x:auto;border:1px solid #d5e3ef;border-radius:5px;isolation:isolate}
.full-spec-table:focus-visible{outline:2px solid #0075ef;outline-offset:3px}
.full-spec-table .model-table{min-width:860px;table-layout:fixed}
html[lang=en] .full-spec-table .model-table{min-width:1200px}
.full-spec-table col.model-column{width:126px}
.full-spec-table .model-table th,.full-spec-table .model-table td{padding:9px 10px;text-align:center;font-size:14px;white-space:nowrap;width:auto;border-bottom:1px solid #e2ebf3}
.full-spec-table .model-table thead th{background:#e5eff8;color:#12385a;font-weight:600}
.full-spec-table .model-table thead small{display:block;font-size:12px;font-weight:400;margin-top:2px}
.full-spec-table .model-table thead th[colspan]{border-bottom:1px solid #c7d9e8}
.full-spec-table .model-table tbody tr{background:#fff}
.full-spec-table .model-table tbody tr:nth-child(even){background:#f1f6fb}
.full-spec-table .model-table tbody th{background:inherit}
.full-spec-table .model-table tr>:first-child[scope=row],.full-spec-table .model-table th[rowspan]:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 #d5e3ef}
.full-spec-table .model-table th a{min-height:27px;text-decoration:underline;text-underline-offset:3px}
.full-spec-table .model-table tbody tr:hover{background:#e6f2ff}
.table-scroll-hint{display:none}.table-spec-note{font-size:14px;margin-top:12px;color:#53728c}
@media(max-width:1000px){.table-scroll-hint{display:block;font-size:13px;color:#53728c;margin:0 0 10px}.full-spec-table .model-table th a{min-height:34px}.full-spec-table .model-table th,.full-spec-table .model-table td{padding:7px 9px;font-size:14px}}
.download-icon{display:inline-block;width:20px;height:20px;flex:none;vertical-align:middle;margin-left:7px}
.resource-format>.download-icon{width:28px;height:28px;margin:7px 0 0}
.language-flag{display:inline-block;width:28px;height:19px;flex:none;border:1px solid #d9e1e9;border-radius:2px;vertical-align:middle;overflow:hidden}
.language-menu summary{display:flex;align-items:center;gap:7px;min-height:44px;padding:4px 7px}
.language-menu>div a{display:flex;align-items:center;gap:10px;min-height:44px;white-space:nowrap}
.language-menu>div{min-width:166px}
.story-visual{overflow:hidden;padding:0;min-height:0;background:#eef4f9;aspect-ratio:3/2}
.story-visual img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;padding:0;filter:none}
.customer-featured .customer-tsmc strong,.customer-list .customer-tsmc h3{color:#c60016}
.customer-list .customer-tsmc{border-left:3px solid #c60016}
.product-video{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;align-items:center;margin-top:24px;padding:22px 0;border-top:1px solid #dce7ef}
.product-video h2{font-size:22px;margin-bottom:10px}.product-video p{font-size:15px;margin:7px 0 14px}.product-video .video-host{aspect-ratio:16/9;border-radius:5px}
@media(max-width:600px){.product-video{grid-template-columns:1fr;gap:14px}.product-video>div:first-child{max-width:320px;width:100%;justify-self:center}.product-video h2{font-size:21px}}
html[lang=ja] body{font-family:'Yu Gothic','Meiryo','Noto Sans TC',sans-serif}
html[lang=ja] .hero-copy h1{font-size:clamp(32px,3.7vw,52px);line-height:1.4}
html[lang=ja] .hero-description{font-size:16px;line-height:1.9}
html[lang=ja] .model-copy h2{font-size:26px}
@media(max-width:600px){
 .language-menu summary{padding:4px;gap:4px}.language-flag{width:25px;height:18px}
 .story-visual{min-height:0;max-height:none}.story-visual img{max-height:none}
 html[lang=ja] .hero-copy h1{font-size:30px}html[lang=ja] .hero-description{font-size:14px}
 html[lang=ja] .home-hero .actions{flex-direction:column;align-items:stretch}
 html[lang=ja] .model-copy h2{font-size:21px}
}
