/* Shared visual system. Loaded last on every page.
   Keep common dimensions here; legacy page files own composition and artwork. */
:root,body.home-page{
  --max:1280px;--reading:860px;--gutter:clamp(20px,3vw,40px);
  --navy:#061427;--ink:#10243b;--orange:#ff5b00;--muted:#5e7185;
  --line:#dce4eb;--paper:#f3f6f8;--radius:8px;
  --section-space:clamp(40px,5vw,72px);--layout-gap:clamp(24px,4vw,56px);
  --title:clamp(2rem,1.5rem + 1.5vw,3rem);
  --heading:clamp(1.75rem,1.4rem + 1vw,2.375rem);
  --card-title:clamp(1.25rem,1.1rem + .4vw,1.5rem);
}
body{font-size:16px;line-height:1.7}
body .container,body.home-page .container,body.home-page #home-faq>.container{
  width:min(var(--max),calc(100% - var(--gutter)*2));max-width:var(--max);margin-inline:auto;
}
body h1,body h2,body h3{overflow-wrap:break-word;letter-spacing:-.025em}
body h1{font-size:var(--title);line-height:1.18}
body h2{font-size:var(--heading);line-height:1.25}
body h3{font-size:var(--card-title);line-height:1.35}
body .section,body .about-page .section,body.home-page .home-section,
body.home-page #home-faq,body.home-page #home-contact{padding-block:var(--section-space)}
body .section-heading,body.home-page .home-heading{margin-bottom:32px;gap:24px}
body .section-intro,body .lead,body.home-page .home-heading p,body.home-page .factory-intro p{font-size:18px;line-height:1.7}
body .eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:16px;line-height:1.5}
body .split-layout,body .about-page .split-layout,body .contact-layout,
body.home-page #home-contact .contact-layout{gap:var(--layout-gap);grid-template-columns:repeat(2,minmax(0,1fr))}
body :is(.split-layout,.contact-layout,.product-grid,.article-grid,.footer-grid)>*{min-width:0}
body p,body li,body .footer-email{overflow-wrap:break-word}
/* One navigation geometry, including the homepage. */
body .site-header .header-inner{height:auto;min-height:80px;gap:24px}
body .site-header .brand,body.home-page .header-inner .brand{width:132px}
body .site-header .brand img{height:44px}
body .site-header #site-nav{gap:24px;height:80px}
body .site-header #site-nav a,body.home-page #site-nav a{font-size:14px}
body .site-header .header-cta{font-size:14px;min-height:44px;padding:10px 18px;border-radius:var(--radius)}
body .button,body.home-page .landing-hero-copy .button,body.home-page #home-contact .button{
 min-height:48px;padding:12px 22px;gap:18px;font-size:15px;line-height:1.5;border-radius:var(--radius);white-space:normal;
}
body .button:hover{transform:none}
body .button.primary,body.home-page .button.primary{background:var(--orange);color:#061427}
body .button.primary:hover{background:#ff7a30}
body .text-link{font-size:14px;line-height:1.5}
/* Common compact internal banners; height grows with copy. */
body :is(.guide-hero-inner,.knowledge-blueprint-inner,.contact-hero-inner){min-height:240px;height:auto}
body .news-factory-hero{min-height:240px}
body :is(.guide-hero-inner,.news-factory-copy){padding-block:36px}
body :is(.knowledge-blueprint-copy h1,.news-factory-copy h1,.contact-hero-copy h1,.guide-banner-title,.catalog-intro-copy h1){font-size:var(--title);line-height:1.18}
body :is(.knowledge-blueprint-copy p,.news-factory-copy>p:not(.eyebrow),.contact-hero-copy p,.guide-hero p){font-size:16px;line-height:1.7}
body .about-hero h1,body .page-hero h1{font-size:var(--title)}
/* Match the temporary Arial heading width to Plex while the font downloads.
   Without this, the mobile About headline briefly wraps onto two extra lines. */
@font-face{font-family:BivoAboutFallback;src:local('Arial Bold');font-weight:600 900;size-adjust:97.5%}
body .about-hero h1{font-family:Plex,BivoAboutFallback,Arial,sans-serif}
body .about-hero-copy,body .page-hero{padding-block:48px}
/* Reuse the supplied factory panorama; crop its printed copy and white margins.
   About text stays in HTML and the photo retains its natural proportions. */
body .about-factory-hero{background:#031c35}
body .about-factory-hero:after{display:none}
body .about-factory-hero .news-factory-visual img{width:auto;min-width:154%;aspect-ratio:3/1;object-fit:cover;object-position:right center}
body .about-factory-hero .news-factory-visual:after{background:linear-gradient(90deg,#031c35 0%,#031c35d9 18%,#031c3533 55%,transparent 75%)}
@media(max-width:700px){
 body .about-factory-hero .news-factory-visual{width:100%;opacity:.3}
 body .about-factory-hero .news-factory-visual img{min-width:154%}
 body .about-factory-hero .news-factory-visual:after{background:linear-gradient(90deg,#031c35 0%,#031c3580 45%,transparent 100%)}
}
body .knowledge-blueprint-visual{height:240px;flex-basis:40%}
body .contact-hero-visual{height:auto;min-height:240px;flex-basis:30%}
/* Homepage retains its display-led composition without extra-large-screen jumps. */
body.home-page .home-landing-hero{min-height:640px}
body.home-page .landing-hero-copy{width:48%;padding-block:44px}
body.home-page .landing-hero-copy h1{font-size:clamp(2.25rem,1.6rem + 2.3vw,3.5rem);line-height:1.1}
body.home-page .landing-intro{font-size:18px;line-height:1.65}
body.home-page .landing-specs strong{font-size:14px}
body.home-page .landing-specs small{font-size:12px}
body.home-page .landing-specs img{width:40px;height:40px}
body.home-page .landing-benefits img{width:44px;height:44px}
body.home-page .landing-benefits span{font-size:13px}
body.home-page .landing-hero-copy .button-row{gap:12px}
body.home-page :is(.home-heading h2,.factory-intro h2,.home-faq-intro h2),
body.home-page #home-factory .home-heading h2,body.home-page #home-contact .contact-info h2,
body:not(.home-page) .contact-info h2,body .about-page h2{font-size:var(--heading);line-height:1.25}
body.home-page :is(.home-product-body h3,.home-report-copy h3){font-size:var(--card-title)}
body.home-page :is(.home-product-body p,.home-faq-intro p){font-size:16px;line-height:1.75}
body.home-page .factory-capabilities article{padding:20px;gap:14px}
body.home-page .factory-capabilities article>img{width:46px;height:56px}
body.home-page .factory-capabilities h3{font-size:18px}
body.home-page .factory-capabilities p{font-size:14px}
body.home-page .profile-tag{font-size:12px;white-space:normal}
body.home-page #home-faq .faq-list details p{font-size:15px}
body.home-page #home-products{padding-bottom:32px}
body.home-page #home-specifications{padding-top:32px}
/* Products use the same image frame, copy rhythm and actions. */
body .product-detail h1{font-size:var(--title)}
body .product-detail .split-layout{gap:var(--layout-gap)}
body .detail-image{position:static;min-height:0}
body .detail-image>img{height:auto;aspect-ratio:1/1;object-fit:contain;padding:24px}
body .product-image{height:auto;aspect-ratio:4/3}
body .product-image img{height:100%;object-fit:contain}
body .product-card-body,body.home-page .home-product-body{padding:24px 24px 0}
body .product-card p{min-height:0;font-size:15px}
body .product-card{display:flex;flex-direction:column}
body .product-card-body{display:flex;flex-direction:column;flex:1}
body .card-foot{margin-top:auto}
body.home-page .home-product-body{padding-bottom:24px}
body :is(.product-grid,.article-grid,.about-range,.about-service-grid){gap:24px}
body :is(.article-body h3,.news-row h2,.latest-news-card h3){font-size:var(--card-title);line-height:1.35}
body :is(.article-image,.latest-news-card img){height:auto;aspect-ratio:16/10}
body .article-image img{height:100%}
body .latest-news-card img{object-fit:contain}
/* Reading surfaces share a narrower, comfortable measure. */
body :is(.guide-reading-layout,.news-body,.article-heading.container,.prose-narrow){max-width:var(--reading)}
body .guide-reading-layout{padding-block:40px 56px}
body .guide-article-heading h1,body .article-heading h1{font-size:var(--title);line-height:1.22}
body .article-heading{padding-block:40px 24px}
body .guide-article-heading{padding-bottom:24px;margin-bottom:28px}
body :is(.article-content p,.article-content li,.news-body p,.news-body li){font-size:17px;line-height:1.8}
body :is(.article-content .guide-answer h2,.article-content .guide-solution h2,.news-body h2){font-size:26px;line-height:1.3}
body .guide-intro .guide-intro-image img{height:auto;aspect-ratio:16/9;object-fit:contain}
body .guide-intro .guide-poster img,body .short-guide-poster img{aspect-ratio:auto;height:auto}
body :is(.short-guide-poster,.guide-intro .guide-intro-image.guide-poster,.news-poster){max-width:720px;margin-inline:auto}
body .article-end{padding:32px;border-radius:var(--radius);margin-top:36px}
body .article-end h2,body .guide-reading-layout .article-end h2{font-size:26px;line-height:1.3;margin:0 0 16px}
body .article-end p{margin-bottom:24px}
/* Forms and footer use readable controls and flexible columns. */
body .contact-form-wrap,body.home-page #home-contact .contact-form-wrap{padding:32px;border-radius:var(--radius)}
body .contact-form-wrap>h2,body.home-page #home-contact .contact-form-wrap>h2{font-size:28px;line-height:1.25}
body .form-grid{gap:20px}
body .form-grid :is(input,select,textarea){font-size:16px;width:100%;min-width:0}
body .form-grid :is(input,select){min-height:48px}
body .form-grid textarea{min-height:120px}
body .contact-info>p:not(.eyebrow),body:not(.home-page) .contact-info>p:not(.eyebrow),body.home-page #home-contact .contact-info>p:not(.eyebrow){font-size:16px;line-height:1.75}
body .contact-support-image{max-width:none}
body .contact-support-image img{height:auto;aspect-ratio:16/9;object-fit:contain}
body .footer-grid{gap:32px;grid-template-columns:1.3fr 1fr 1fr 1fr}
body .footer-grid>div>a:not(.brand),body .footer-grid p{font-size:14px}
body .footer-grid h3{font-size:16px}
@media(max-width:1100px){
 body .site-header .header-inner{min-height:72px;gap:16px}
 body .site-header .menu-toggle{display:block;margin-left:auto;min-width:44px;min-height:44px}
 body .site-header #site-nav{display:none;position:absolute;left:0;right:0;top:100%;height:auto;background:white;padding:16px var(--gutter);margin:0;box-shadow:0 12px 20px #06142714}
 body.menu-open .site-header #site-nav{display:flex;flex-direction:column;align-items:stretch;gap:0}
 body .site-header #site-nav a{height:auto;min-height:48px;padding:12px 0;white-space:normal;border-bottom:1px solid var(--line)}
 body .site-header #site-nav a[aria-current]:after{display:none}
 body .site-header .header-cta{display:flex}
 body .product-grid,body .about-range{grid-template-columns:repeat(2,minmax(0,1fr))}
 body .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.home-page .home-faq-layout{grid-template-columns:1fr;gap:32px}
 body.home-page .home-faq-intro{max-width:680px}
 body.home-page .home-faq-intro>img{max-width:440px}
 body .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 body .split-layout,body .about-page .split-layout,body .contact-layout,body.home-page #home-contact .contact-layout,body .product-detail .split-layout{grid-template-columns:1fr;gap:32px}
 body .detail-image{max-width:560px;width:100%;margin-inline:auto}
 body .knowledge-blueprint-visual{flex-basis:34%}
 body.home-page .home-landing-hero{display:block;min-height:0;padding-bottom:clamp(180px,38vw,330px)}
 body.home-page .landing-background{inset:auto 0 0;width:100%;height:auto;object-fit:contain;object-position:center bottom}
 body.home-page .home-landing-hero:after{background:linear-gradient(180deg,#02051b 0%,#02051b 60%,transparent 85%)}
 body.home-page .landing-hero-copy{width:100%;max-width:640px;padding-block:36px 20px}
 body.home-page .home-product-grid{grid-template-columns:1fr}
 body.home-page .home-product-card{display:grid;grid-template-columns:42% 1fr}
 body.home-page .home-product-card>a>img{height:100%;object-fit:contain}
 body .about-facts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 body .cta-inner,body .custom-strip{flex-wrap:wrap}
}
@media(max-width:600px){
 body .site-header .header-inner{min-height:68px;gap:10px}
 body .site-header .brand,body.home-page .header-inner .brand{width:108px}
 body .site-header .header-cta{font-size:12px;padding:9px 12px;gap:8px}
 body .section-heading{align-items:flex-start;flex-direction:column;gap:16px}
 body :is(.product-grid,.article-grid,.about-range,.about-service-grid,.application-grid){grid-template-columns:1fr}
 body.home-page .home-product-card{display:flex}
 body :is(.guide-hero-inner,.knowledge-blueprint-inner,.contact-hero-inner){min-height:200px}
 body .news-factory-hero{min-height:200px}
 body :is(.guide-hero-inner,.news-factory-copy){padding-block:28px}
 body .knowledge-blueprint-visual{flex-basis:26%;height:200px}
 body .contact-hero-visual{flex-basis:20%;min-height:200px}
 body .knowledge-blueprint-copy p,body .contact-hero-copy p{font-size:15px}
 body :is(.article-content p,.article-content li,.news-body p,.news-body li){font-size:16px}
 body .guide-reading-layout{padding-block:28px 40px}
 body .article-end,body .contact-form-wrap,body.home-page #home-contact .contact-form-wrap{padding:24px}
 body .article-end .button{width:100%}
 body .form-grid{grid-template-columns:1fr}
 body .form-grid .full{grid-column:auto}
 body .about-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.home-page .landing-hero-copy .button-row{grid-template-columns:1fr}
 body.home-page .landing-specs{grid-template-columns:1fr;gap:10px}
 body.home-page .landing-specs>div{border:0;padding:0;gap:12px}
 body.home-page .landing-benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 body.home-page .landing-benefits>div{border:0}
 body .footer-grid{gap:28px 20px}
 body .footer-bottom{flex-wrap:wrap;gap:12px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

body.home-page .home-why .home-heading h2{font-size:var(--heading);line-height:1.25}
body .cta-inner h2{font-size:var(--heading);line-height:1.25}

/* Keep the hero artwork and its copy on the same centered stage, even at 25% zoom. */
@media(min-width:901px){
 body.home-page .landing-background{width:min(100%,1600px);left:50%;right:auto;transform:translateX(-50%);object-position:center}
 body.home-page .home-landing-hero{background:#02051b}
}
/* Only show the rightmost, text-free frame portion of the source poster. */
body .contact-hero-visual img{height:100%;width:auto;min-width:241.51%;max-width:none;object-fit:cover;object-position:right center;right:0;top:0}
/* Compact desktop hero: prioritize the title, product facts and actions within the first viewport. */
@media(min-width:901px){
 body.home-page .home-landing-hero{min-height:0}
 body.home-page .landing-hero-copy{padding-block:28px}
 body.home-page .landing-hero-copy h1{font-size:clamp(32px,3.3vw,48px);line-height:1.08;margin-bottom:16px}
 body.home-page .landing-intro{font-size:16px;line-height:1.55;margin-bottom:14px}
 body.home-page .landing-rule{margin-bottom:18px;width:48px}
 body.home-page .landing-specs{margin-bottom:16px}
 body.home-page .landing-specs>div{padding-block:2px;padding-inline:10px;gap:8px}
 body.home-page .landing-specs>div:first-child{padding-left:0}
 body.home-page .landing-specs img{width:32px;height:32px}
 body.home-page .landing-specs strong{font-size:13px}
 body.home-page .landing-specs small{font-size:11px;margin-top:2px}
 body.home-page .landing-benefits{padding-top:14px;margin-bottom:18px}
 body.home-page .landing-benefits>div{gap:6px;padding-inline:6px}
 body.home-page .landing-benefits img{width:32px;height:32px}
 body.home-page .landing-benefits span{font-size:12px;line-height:1.4}
 body.home-page .landing-hero-copy .button{min-height:44px;padding:10px 16px;font-size:14px}
 body.home-page .landing-sample-note{margin-top:8px;font-size:11px}
}
@media(min-width:901px) and (max-height:740px){
 body.home-page .landing-hero-copy{padding-block:20px}
 body.home-page .landing-hero-copy h1{font-size:clamp(30px,3vw,40px);margin-bottom:12px}
 body.home-page .landing-intro{font-size:15px;margin-bottom:12px}
 body.home-page .landing-rule{margin-bottom:12px}
 body.home-page .landing-benefits{padding-top:10px;margin-bottom:12px}
 body.home-page .landing-benefits img{width:26px;height:26px}
}
@media(max-width:900px){
 body.home-page .landing-hero-copy{display:flex;flex-direction:column;padding-top:28px}
 body.home-page .landing-hero-copy h1{font-size:clamp(30px,5vw,40px);line-height:1.12;margin-bottom:16px}
 body.home-page .landing-intro{font-size:16px;margin-bottom:16px}
 body.home-page .landing-rule{margin-bottom:20px}
 body.home-page .landing-hero-copy .button-row{order:1;margin-bottom:20px}
 body.home-page .landing-specs{order:2}
 body.home-page .landing-benefits{order:3}
 body.home-page .landing-sample-note{order:4}
}

/* The visual stage is independent of copy height. Contain keeps all artwork visible. */
@media(min-width:901px){
 body.home-page .home-landing-hero{min-height:clamp(520px,calc(100svh - 80px),760px)}
 body.home-page .landing-background{object-fit:contain;object-position:center;width:min(100%,1600px);height:100%}
}
/* Product navigation: hover on desktop, explicit disclosure on touch screens. */
.products-nav{position:relative;display:flex;align-items:center;align-self:stretch;gap:3px}
.products-nav-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:36px;background:none;border:0;color:inherit;cursor:pointer;border-radius:4px}
.products-nav-toggle:hover{background:#edf4ff}
.products-nav-toggle:focus-visible{outline:2px solid #185ac0;outline-offset:2px}
.products-nav-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.products-submenu{position:absolute;left:-14px;top:100%;width:260px;padding:8px;background:#fff;border:1px solid #dce4ed;border-radius:0 0 10px 10px;box-shadow:0 14px 30px #10243b20;z-index:50}
.products-submenu[hidden]{display:none}
body .site-header #site-nav .products-submenu a{display:flex;min-height:44px;height:auto;padding:11px 14px;border:0;border-radius:5px;font-size:14px;line-height:1.5;white-space:normal}
body .site-header #site-nav .products-submenu a:hover,body .site-header #site-nav .products-submenu a[aria-current]{background:#edf4ff;color:#1459ba}
body .site-header #site-nav .products-submenu a:after{display:none}
@media(max-width:1100px){.products-nav{display:block;width:100%}.products-nav-toggle{position:absolute;right:0;top:2px;min-width:44px;height:44px}.products-nav>a{padding-right:50px!important}.products-submenu{position:static;width:100%;padding:4px 8px;margin:0 0 8px;background:#f5f8fc;border:0;border-radius:6px;box-shadow:none}}
