/* 8-22-4c responsive and accessibility layer. Desktop product geometry is unchanged. */
html,body{overflow-x:clip}
img,video,canvas{max-width:100%}
button,a,input,select,textarea{letter-spacing:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid rgba(42,173,235,.48);outline-offset:3px}
.mobile-menu-toggle,.nav-backdrop{display:none}
.nav-drawer{display:contents}

@media(max-width:900px){
  body{font-size:16px;line-height:1.7}
  body.site-nav-open{overflow:hidden}
  header{display:flex!important;z-index:90!important;width:100%;height:64px!important;min-height:64px!important;padding:7px 12px!important;gap:10px!important;align-items:center!important;justify-content:space-between!important;overflow:visible!important}
  header .brand{position:relative!important;z-index:92!important;display:flex!important;min-width:0!important;width:min(238px,calc(100vw - 76px))!important;height:50px!important;margin:0!important;transform:none!important;align-items:center!important;overflow:hidden!important}
  header .brand .brand-full-logo{display:block!important;width:100%!important;max-width:238px!important;height:50px!important;max-height:50px!important;margin:0!important;transform:none!important;object-fit:contain!important;object-position:left center!important}
  .mobile-menu-toggle{position:relative;z-index:92;display:grid;flex:0 0 44px;width:44px;height:44px;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:6px;background:rgba(4,30,58,.82);color:#fff;font-size:24px;line-height:1}
  .nav-drawer{position:fixed;z-index:91;inset:0 0 0 auto;display:flex;width:min(330px,88vw);height:100dvh;flex-direction:column;padding:82px 20px max(22px,env(safe-area-inset-bottom));background:#073662;box-shadow:-18px 0 50px rgba(0,0,0,.3);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s;overflow-y:auto}
  body.site-nav-open .nav-drawer{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}
  .nav-backdrop{position:fixed;z-index:89;inset:0;width:100%;height:100%;border:0;background:rgba(3,18,34,.58)}
  body.site-nav-open .nav-backdrop{display:block}
  header .navbox{display:block!important;width:100%!important;margin:0!important;transform:none!important}
  header .navbox>button{display:none!important}
  header nav{display:grid!important;width:100%!important;max-width:none!important;gap:2px!important;overflow:visible!important}
  header nav a{display:flex!important;width:100%!important;min-height:48px!important;padding:0 12px!important;align-items:center!important;border-bottom:1px solid rgba(255,255,255,.13);color:#dfeefa!important;font-size:15px!important;font-weight:700!important;white-space:normal!important}
  header nav a.active,header nav a[aria-current="page"]{background:rgba(255,255,255,.1);color:#fff!important}
  header .langs{display:grid!important;grid-template-columns:1fr 1fr;width:100%!important;margin-top:18px!important;gap:8px!important}
  header .langs button{width:100%!important;min-width:0!important;height:44px!important;border:1px solid rgba(255,255,255,.32)!important;border-radius:6px!important;color:#fff!important}
  header .langs{position:relative;display:block!important;width:44px!important;margin:18px 0 0 auto!important}
  header .langs .language-trigger{width:44px!important;min-width:44px!important;height:44px!important;border:1px solid rgba(255,255,255,.32)!important;background:rgba(4,30,58,.34)!important;color:#fff!important}
  header .langs .language-menu{top:52px;right:0;min-width:148px;padding:5px}
  header .langs .language-menu button{width:100%!important;height:44px!important;padding:0 12px;border:0!important;border-radius:4px!important;color:#eaf4ff!important}
  header .langs .language-menu button.active{background:#7fc0ff!important;color:#0e3d7d!important}
  .page:not(#home){padding-top:84px!important}
  .wrap,#contact .wrap{width:calc(100% - 28px)!important;max-width:100%!important}
  h1{max-width:100%;font-size:36px!important;line-height:1.08!important;letter-spacing:0!important}
  .heading h2,.testing-title{font-size:28px!important;line-height:1.2!important;letter-spacing:0!important}
  .lead,.heading p,.about-copy p,.testing-center p,.resource-copy p,.story-summary p{font-size:16px;line-height:1.7}
  .actions button,.contact-rfq button,.footer-top{min-width:44px;min-height:44px}
  .carousel-arrow{width:44px!important;height:54px!important}
  .carousel-dots{gap:0!important}
  .carousel-dots button{position:relative;width:44px!important;height:44px!important;min-width:44px!important;border:0!important;background:transparent!important}
  .carousel-dots button::after{position:absolute;top:50%;left:8px;width:28px;height:2px;background:rgba(255,255,255,.48);content:""}
  .carousel-dots button.active::after{background:#42b8ef}
  .carousel-pause{width:44px!important;height:44px!important;min-width:44px!important}
  .slide-content{top:27%;width:100%!important;padding:0 18px!important}
  .slide-content h2{max-width:100%;font-size:28px!important;line-height:1.2!important}
  .home-icons-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .home-icon-item{min-width:0}
  .home-icon-item img{max-width:100%;height:auto}
  .about-hero,.testing-center>.testing-original,.testing-center>.wrap{grid-template-columns:minmax(0,1fr)!important;width:calc(100% - 28px)!important;column-gap:0!important}
  .about-hero>* ,.testing-original>* ,.testing-intro,.testing-copy,.hqpp-list,.hqpp-body,.testing-gallery{min-width:0!important;max-width:100%!important}
  .about-head h2,.testing-title{white-space:normal!important;overflow-wrap:anywhere}
  .ws-arrow,.story-nav button{width:44px!important;min-width:44px!important;height:44px!important}
  .ws-label{right:10px!important;left:148px!important;width:auto!important;max-width:none!important;white-space:normal!important;font-size:13px!important;line-height:1.3!important}
  .hqpp-list article{display:flex!important;gap:10px!important}
  .hqpp-list article i{flex:0 0 64px!important;width:64px!important;justify-content:center!important}
  .hqpp-list article i img{width:auto!important;max-width:none!important;height:64px!important;transform:translateY(-8px)!important}
  .testing-gallery.cg-mounted,.circular-gallery,.circular-gallery canvas{width:100%!important;max-width:100%!important}
  .testing-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .testing-equipment{min-width:0}
  .testing-scope{padding:16px!important}
  .testing-scope li{grid-template-columns:1fr!important}
  body.product-page-mode{overflow:auto!important}
  body.product-page-mode main{height:auto!important;overflow:visible!important}
  body.product-page-mode #products{height:auto!important;min-height:100vh!important;padding:84px 0 28px!important;overflow:visible!important}
  body.product-page-mode #products .wrap{height:auto!important;overflow:visible!important}
  .gallery-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;height:auto!important;overflow:visible!important}
  .category-nav{position:static!important;top:auto!important;width:100%!important;max-width:100%!important;padding:2px 0 8px!important;overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-inline:contain;scrollbar-width:none;touch-action:pan-y;cursor:grab;-webkit-overflow-scrolling:touch}
  .category-nav.is-dragging{cursor:grabbing;scroll-behavior:auto!important}
  .category-nav::-webkit-scrollbar{display:none}
  .category-nav .line-sidebar__list{display:flex!important;width:max-content!important;min-width:100%!important;flex-flow:row nowrap!important;gap:6px!important;padding:0 2px!important}
  .category-nav .line-sidebar__item{display:flex!important;flex:0 0 auto!important;min-height:44px!important;padding:0 12px!important;align-items:center!important;border:1px solid #d6e0e9!important;border-radius:6px!important;background:#fff!important;transform:none!important}
  .category-nav .line-sidebar__item.active{border-color:#1269c7!important;background:#edf6ff!important}
  .category-nav .line-sidebar__marker{display:none!important}
  .category-nav .line-sidebar__label{display:flex!important;gap:6px!important;transform:none!important}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .gallery-item{min-width:0!important;aspect-ratio:3/2!important}
  .g-arrow{isolation:isolate;width:44px!important;height:44px!important;min-width:44px!important;background:transparent!important;font-size:15px!important}
  .g-arrow::before{position:absolute;top:50%;left:50%;z-index:-1;width:28px;height:34px;transform:translate(-50%,-50%);border-radius:6px;background:rgba(14,35,60,.42);content:""}
  .g-arrow:hover,.g-arrow:active{background:transparent!important}
  .g-arrow:hover::before,.g-arrow:active::before{background:rgba(18,86,201,.78)}
  .product-gallery{width:100%!important;max-width:100%!important;max-height:none!important;overflow:visible!important}
  .viewer-arrow{width:44px!important;height:60px!important}
  .viewer-tools button{min-width:44px!important;min-height:44px!important}
  .factory-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .factory-video-grid .factory-video-card{min-width:0!important;min-height:0!important;padding:0!important}
  .factory-video-grid h3{min-height:72px!important;margin:0!important;padding:10px 12px!important;font-size:16px!important;line-height:1.35!important;overflow-wrap:anywhere}
  .factory-video-grid video{max-width:100%;height:auto}
  .resource-articles,.story-timeline{min-width:0;max-width:100%}
  .resource-articles>button{width:100%;max-width:100%;min-width:0}
  #academy-more,.resource-pager button{display:inline-flex;min-height:44px;align-items:center}
  .story-timeline>div,.story-timeline article,.story-photos{width:100%;min-width:0;max-width:100%}
  .story-photos{overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;touch-action:pan-y;cursor:grab;-webkit-overflow-scrolling:touch}
  .story-photos.is-dragging{cursor:grabbing;scroll-behavior:auto!important;scroll-snap-type:none!important}
  .story-photo{scroll-snap-align:start}
  .contact-main{grid-template-columns:minmax(0,1fr)!important}
  .contact-card{grid-template-columns:44px minmax(0,1fr)!important;min-width:0}
  .contact-card b,.contact-card a{overflow-wrap:anywhere}
  .contact-card a{display:flex;min-height:44px;align-items:center}
  .contact-map{width:100%;max-width:100%;min-height:390px!important}
  .map-levels{top:0!important;right:8px!important;left:8px!important;justify-content:center!important;gap:4px!important}
  .map-levels button,.leaflet-control-zoom a{min-width:44px!important;min-height:44px!important}
  .leaflet-popup-content-wrapper{max-width:calc(100vw - 44px)!important}
  .leaflet-popup-close-button{display:grid!important;width:44px!important;height:44px!important;place-items:center!important;padding:0!important}
  .leaflet-popup-content{min-width:0!important;max-width:calc(100vw - 82px)!important;margin:14px!important}
  .contact-rfq input,.contact-rfq select,.contact-rfq textarea{min-height:44px}
  .company-footer,.footer-inner,.footer-company{max-width:100%;min-width:0}
  .footer-company-logo{width:100%;max-width:330px;height:auto}
  .footer-company address a{display:flex;min-height:44px;align-items:center}
}

@media(min-width:375px) and (max-width:900px){.factory-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:374px){.factory-video-grid{grid-template-columns:1fr!important}}

@media(max-width:520px){
  .carousel{min-height:500px!important;height:66vh!important}
  .slide-content{padding:0 18px!important}
  .slide-content h2{font-size:26px!important}
  .testing-gallery .testing-equipment>div{min-height:160px!important}
  .story-photo{flex-basis:min(82vw,310px)!important}
}

@media(max-width:560px){
  .testing-center{padding:32px 0 22px!important}
  .testing-gallery.cg-mounted{margin-top:0!important}
  .circular-gallery{height:300px!important}
}

@media(min-width:981px){body.product-page-mode #products .category-nav{overflow-x:hidden}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .nav-drawer{transition:none}
}
