/* Shared responsive behavior for all public Novifort pages. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:100px; }
body { min-width:0; }
.wrap { width:100%; }
.wrap > *, .form > *, .cta-grid > *, .foot-grid > *, .process-flow li > div,
.benefits-layout > *, .industry-watch > *, .contact-layout > *, .fam > *, .dir > * { min-width:0; }
img,svg,video { max-width:100%; }
a[href^="mailto:"], .footer-email, .contact-line .v { overflow-wrap:anywhere; }
.field input,.field select,.field textarea,.media-card input[type=text] { font-size:16px; min-width:0; max-width:100%; }
input[type=file] { max-width:100%; }
button,.btn,.menu-btn { touch-action:manipulation; }
.brand-marquee { min-width:0; max-width:100%; contain:inline-size; }
.table-wrap { min-width:0; max-width:100%; -webkit-overflow-scrolling:touch; }
.brand-showcase .sec-head.row > .stack { min-width:0; }
.site-head .brand { flex-shrink:1; }
@media(max-width:1200px) {
 .site-head .wrap { position:relative; min-height:72px; }
 .menu-btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:68px; flex-shrink:0; }
 .nav { display:none; position:absolute; inset:100% 0 auto; flex-direction:column; align-items:stretch; gap:0; background:var(--surface); border:1px solid var(--line); padding:10px 20px 18px; max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px); overflow-y:auto; overscroll-behavior:contain; box-shadow:0 12px 24px #10243b1a; }
 .nav.open { display:flex; }
 .nav a { min-height:46px; display:flex; align-items:center; padding:12px; border-bottom:1px solid var(--line); }
 .nav a[aria-current="page"] { box-shadow:inset 3px 0 0 var(--brand-yellow); }
 .nav .btn { margin:12px 0 0; justify-content:center; border-bottom:0; }
 .supply-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
 .supply-copy h1 { max-width:22ch; font-size:clamp(36px,6.5vw,60px); }
 .supply-visual.portfolio-art { width:100%; max-width:600px; height:380px; max-height:none; aspect-ratio:auto; justify-self:center; }
 .supply-visual.portfolio-art img { object-fit:contain; }
}
@media(min-width:601px) and (max-width:900px) {
 .catalog-open .catalog-grid { grid-template-columns:minmax(0,1fr); }
 .catalog-open .catalog-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px 30px; padding:30px 20px; }
 .catalog-open .catalog-card + .catalog-card { border-left:0; border-top:1px solid #dce3e9; }
 .catalog-open .catalog-card h3 { grid-column:1; min-height:0; font-size:32px; }
 .catalog-open .catalog-image { grid-column:2; grid-row:1 / span 2; margin:0; height:250px; width:100%; }
 .catalog-open .catalog-copy { grid-column:1; }
 .catalog-open .catalog-copy p { min-height:0; }
 .industry-showcase-grid { grid-template-columns:minmax(0,1fr); }
 .industry-showcase-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
 .industry-showcase-image { height:100%; min-height:250px; border-bottom:0; border-right:4px solid var(--brand-yellow); }
 .industry-showcase-copy h3 { min-height:0; }
}
@media(max-width:900px) {
 .benefits-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
 .benefits-heading h2 { max-width:none; }
 .benefits-intro { max-width:65ch; }
 .catalog-topline { flex-direction:column; align-items:flex-start; gap:20px; }
 .catalog-open .catalog-heading { max-width:100%; }
 .sec-head.row { align-items:flex-start; }
 .brand-showcase .sec-head { align-items:flex-start; }
 .process-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .brand-col ul { overflow-wrap:anywhere; }
}
@media(max-width:600px) {
 .wrap { padding-inline:max(18px,env(safe-area-inset-left)); padding-right:max(18px,env(safe-area-inset-right)); }
 .util .wrap { flex-wrap:wrap; gap:4px 12px; padding-block:7px; }
 .util-group { min-width:0; gap:8px; }
 .util { font-size:12px; }
 .util .wa-link { width:30px; height:30px; flex-basis:30px; padding:4px; }
 .site-head .wrap { min-height:68px; padding-block:10px; gap:12px; }
 .brand-name { font-size:21px; }
 .brand-tag { font-size:9px; letter-spacing:.025em; }
 .supply-layout { padding-block:30px 36px; }
 .supply-copy h1 { font-size:clamp(32px,8.8vw,44px); line-height:1.12; max-width:none; overflow-wrap:normal; }
 .supply-description { font-size:16px; margin-top:20px; }
 .supply-sectors { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
 .supply-sectors a { min-height:46px; display:flex; align-items:center; justify-content:center; padding:11px 14px; }
 .supply-visual.portfolio-art { height:300px; max-height:80vw; }
 .sec { padding-block:48px; }
 .sec-head { margin-bottom:28px; }
 .page-hero .wrap { padding-block:36px; }
 .page-hero h1 { font-size:clamp(32px,8.5vw,44px); overflow-wrap:anywhere; }
 .catalog-open .catalog-grid,.industry-showcase-grid { grid-template-columns:minmax(0,1fr); }
 .catalog-open .catalog-card { display:flex; padding:26px 0; }
 .catalog-open .catalog-card h3 { font-size:clamp(27px,7.6vw,34px); min-height:0; }
 .catalog-open .catalog-image { height:235px; margin-block:20px; max-width:100%; }
 .catalog-open .catalog-copy p { min-height:0; }
 .catalog-open .catalog-copy ul { gap:8px 12px; }
 .catalog-directory { white-space:normal; min-height:36px; }
 .industry-showcase-card { display:flex; }
 .industry-showcase-image { min-height:0; height:210px; border-right:0; border-bottom:4px solid var(--brand-yellow); }
 .industry-showcase-copy { padding:24px; }
 .industry-showcase-copy h3 { min-height:0; font-size:29px; }
 .industry-watch { grid-template-columns:minmax(0,1fr); padding:24px; gap:16px; }
 .industry-watch-action { grid-column:auto; justify-self:start; white-space:normal; }
 .process-flow { grid-template-columns:minmax(0,1fr); gap:24px; }
 .process-flow li { display:flex; gap:16px; }
 .process-number { flex:0 0 42px; width:42px; height:42px; margin:0; }
 .process-flow h3 { font-size:20px; }
 .form,.rfq-guide-items,.contact-route-grid { grid-template-columns:minmax(0,1fr); }
 .cta-panel,.quote-section .cta-panel,.contact-route-card { padding:24px 18px; }
 .contact-route-email { font-size:clamp(18px,5.2vw,22px); }
 .drop { flex-wrap:wrap; overflow-wrap:anywhere; }
 .foot-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
 .foot-grid > :first-child { grid-column:auto; }
 .footer-bottom { flex-direction:column; align-items:flex-start; }
 .foot a { display:inline-block; padding-block:5px; }
 .footer-bottom nav { gap:10px 20px; }
 .brand-col ul { columns:1; }
 .jump { gap:8px; }
 .jump a { white-space:normal; }
 .media-editor { max-height:85vh; overflow-y:auto; }
}
@media(max-width:360px) { .util .wrap { justify-content:center; } .util-group { justify-content:center; } }

/* v120: slightly larger hero image at each layout size. */
@media(min-width:1101px) {
 .supply-layout { grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:30px; }
 .supply-visual.portfolio-art { max-height:580px; }
}
@media(min-width:601px) and (max-width:1100px) {
 .supply-visual.portfolio-art { height:425px; max-width:660px; }
}
@media(max-width:600px) {
 .supply-visual.portfolio-art { height:340px; max-height:92vw; }
}

/* v121: aligned footer columns and a single, compact legal row. */
.foot > .wrap { padding-block:52px 25px; }
.foot .foot-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.15fr); grid-template-areas:"brand explore company contact"; gap:38px; align-items:start; padding-bottom:38px; }
.foot-grid > :nth-child(1) { grid-area:brand; }
.foot-grid > :nth-child(2) { grid-area:explore; }
.foot-grid > :nth-child(3) { grid-area:company; }
.foot-grid > :nth-child(4) { grid-area:contact; }
.foot h4 { font-family:var(--body); font-size:14px; line-height:1.4; font-weight:600; letter-spacing:.04em; margin:0 0 18px; }
.foot .brand { padding:0; }
.foot .brand-name { font-size:23px; }
.foot .brand-tag { margin-top:7px; font-size:10px; line-height:1.5; }
.foot .foot-grid > div:first-child > p { margin-top:19px; font-size:15px; line-height:1.7; max-width:29ch; }
.foot .foot-grid > div:first-child > .footer-location { margin-top:20px; font-size:14px; line-height:1.65; }
.foot ul { gap:10px; }
.foot li { line-height:1.55; }
.foot li a { font-size:15px; padding-block:2px; }
.foot .footer-email { margin:0 0 12px; }
.foot .footer-email-label { font-size:13px; line-height:1.5; margin:0 0 3px; }
.foot .foot-legal { margin-top:0; padding-top:21px; border-top:1px solid #ffffff26; gap:0; }
.foot .footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px 30px; margin:0; padding:0; border:0; font-size:13px; line-height:1.6; }
.foot .footer-bottom nav { display:flex; flex-wrap:wrap; gap:14px 26px; }
.foot .footer-bottom a { padding-block:5px; }
@media(max-width:960px) {
 .foot .foot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"brand contact" "explore company"; gap:34px 45px; }
 .foot .foot-grid > :first-child { grid-area:brand; }
}
@media(max-width:600px) {
 .foot > .wrap { padding-block:38px 22px; }
 .foot .foot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"brand brand" "explore company" "contact contact"; gap:28px 22px; padding-bottom:28px; }
 .foot .foot-grid > div:first-child > p { max-width:36ch; }
 .foot h4 { margin-bottom:12px; }
 .foot li a { padding-block:5px; }
 .foot ul { gap:4px; }
 .foot .footer-bottom { flex-direction:column; align-items:flex-start; gap:10px; }
 .foot .footer-bottom nav { gap:8px 22px; }
 .foot .footer-email { margin-bottom:12px; }
}

/* v122: the yellow hero line scales with its text column. */
.supply-copy { container-type:inline-size; }
.supply-copy h1 em { display:block; white-space:nowrap; font-size:clamp(18px,4.8vw,40px); line-height:1.2; letter-spacing:-.025em; font-stretch:75%; font-variation-settings:"wdth" 75; }
@supports(font-size:1cqw) { .supply-copy h1 em { font-size:clamp(18px,7cqw,42px); } }

/* v123: a clear ampersand without changing the heading typeface. */
.type-amp { font-family:"IBM Plex Sans",Arial,sans-serif; font-stretch:normal; font-variation-settings:normal; font-size:.9em; letter-spacing:0; }
.catalog-open .catalog-card h3 span.type-amp { display:inline; }

/* v155: consistent small-screen sizing after page-specific styles. */
.pic > img { position:absolute; inset:0; }
.guide-card-photo { position:relative; }
.guide-card-photo > img { position:absolute; inset:0; }
.fam-lists > *, .photo-guide-layout > *, .guide-steps > *,
.ep-feature > *, .ep-support > *, .ep-doc > *, .about-intro-layout > *,
.purpose-statements > *, .about-priorities > * { min-width:0; }
@media(max-width:1200px) {
 .site-head .nav { max-height:var(--nav-available-height,calc(100dvh - 90px)); padding-bottom:max(18px,env(safe-area-inset-bottom)); }
}
@media(max-width:900px) {
 .fam { gap:28px; }
 .fam-side .pic { width:100%; max-width:640px; aspect-ratio:16 / 10; }
 .ind-sec { gap:28px; }
 .about-intro-layout { grid-template-columns:minmax(0,1fr); }
 .about-city { max-width:520px; }
}
@media(max-width:600px) {
 .site-head .brand > span { min-width:0; }
 .site-head .brand-name { font-size:21px; }
 .site-head .brand-tag { font-size:10px; line-height:1.45; letter-spacing:.02em; }
 .site-head .nav a { font-size:16px; }
 .page-hero h1,.policies-hero h1 { font-size:clamp(30px,8.3vw,44px); line-height:1.12; }
 h1,h2,h3,h4,.eyebrow { overflow-wrap:anywhere; }
 .page-hero .hero-copy { gap:18px; }
 .page-hero .lede { font-size:16px; line-height:1.65; }
 .jump { align-items:stretch; }
 .jump a { display:block; max-width:100%; min-height:44px; padding:11px 12px; line-height:1.45; }
 .supply-catalog.catalog-open,.buyer-benefits,.industry-showcase,.quote-section { padding-block:40px; }
 .catalog-heading h2,.benefits-heading h2,.industry-showcase-heading h2 { font-size:clamp(30px,8.5vw,38px); }
 .catalog-topline,.industry-showcase-heading { margin-bottom:26px; }
 .catalog-open .catalog-card,.industry-showcase-card { flex-direction:column; }
 .catalog-open .catalog-card h3 { font-size:clamp(26px,7.4vw,34px); }
 .catalog-open .catalog-image { flex:none; height:auto; aspect-ratio:4 / 3; width:100%; max-width:360px; }
 .catalog-open .catalog-image img { min-height:0; }
 .industry-showcase-image { flex:none; width:100%; }
 .fam-side h2,.about-intro-copy h2 { font-size:clamp(29px,8vw,36px); line-height:1.14; }
 .fam-lists { gap:26px; }
 .fam-lists h4 { font-size:20px; line-height:1.3; }
 .fam-lists li { font-size:16px; }
 .products-page #assemblies .project-assembly-photo { height:auto; min-height:0; aspect-ratio:4 / 3; }
 .products-page #assemblies .project-assembly-photo img { position:absolute; inset:0; }
 #directory .dir-col h3 { font-size:25px; }
 #directory .dir-col dl { gap:0 16px; }
 #directory .directory-brand-name,#directory .dir-col dd { overflow-wrap:anywhere; }
 #directory .directory-logo-frame { padding:8px; height:68px; margin-bottom:10px; }
 #europower .ep-feature h2 { font-size:34px; }
 #library .ep-doc { grid-template-columns:40px minmax(0,1fr); gap:8px 14px; }
 #library .ep-download { grid-column:2; justify-self:start; }
 #library .ep-doc strong { font-size:18px; overflow-wrap:anywhere; }
 #guides .guide-photo-card { display:flex; flex-direction:column; }
 #guides .guide-card-photo { flex:none; width:100%; aspect-ratio:3 / 2; min-height:0; }
 #guides .guide-card-copy { border-left:0; border-top:3px solid var(--brand-yellow); padding:22px; }
 .photo-guide-heading h2 { font-size:30px; }
 .photo-guide .guide-steps { grid-template-columns:minmax(0,1fr); }
 .purpose-statement { padding:24px 20px; }
 .btn { max-width:100%; min-height:44px; white-space:normal; line-height:1.35; text-align:center; }
 .field label,.field .lbl { font-size:14px; line-height:1.4; }
 .drop input[type=file] { width:100%; height:100%; min-width:0; }
 .check input { flex:none; width:18px; height:18px; }
 .footer-bottom nav a { min-height:44px; display:flex; align-items:center; }
}

/* v156: supplied brand identity and layouts from small phones to laptops. */
.site-head .brand-logo { flex:0 1 210px; display:block; line-height:0; }
.brand-logo img { display:block; width:100%; height:auto; aspect-ratio:2.15 / 1; object-fit:cover; object-position:center; }
.site-head .wrap { padding-block:4px; }
.foot .brand-logo { display:block; width:220px; max-width:100%; padding:0; background:#fff; border-radius:3px; overflow:hidden; }
.supply-copy h1 > span { display:block; text-wrap:balance; }
@media(min-width:901px) and (max-width:1200px) {
 .catalog-open .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .catalog-open .catalog-card { padding-inline:18px; }
 .catalog-open .catalog-card h3 { font-size:28px; }
 .catalog-open .catalog-image { height:210px; }
 .industry-showcase-copy h3 { font-size:27px; }
}
@media(max-width:1200px) {
 .site-head .nav { z-index:40; }
 .supply-copy h1 { max-width:23ch; }
}
@media(min-width:601px) and (max-width:900px) {
 .fam-lists { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .fam-lists > :last-child { grid-column:1 / -1; }
 .fam-lists li { font-size:16px; }
}
@media(max-width:600px) {
 .site-head .brand-logo { flex-basis:170px; max-width:calc(100% - 82px); }
 .site-head .wrap { padding-block:3px; }
 .site-head .menu-btn { min-width:66px; }
 .supply-copy h1 { max-width:none; font-size:clamp(30px,8.2vw,44px); line-height:1.12; }
 .supply-copy h1 > span { overflow-wrap:normal; }
 .supply-copy h1 em { font-size:clamp(17px,5.2vw,30px); letter-spacing:-.03em; }
 .supply-visual.portfolio-art { height:auto; aspect-ratio:1.25; max-height:none; }
 .supply-sectors a { font-size:16px; }
 .fam-lists { grid-template-columns:minmax(0,1fr); }
 .catalog-open .catalog-card h3 { overflow-wrap:normal; }
 .foot .brand-logo { width:200px; }
 .foot .footer-bottom { align-items:flex-start; }
}

/* v157: transparent vector logos; no raster crop or background panel. */
.site-head .brand-logo { flex-basis:235px; }
.brand-logo picture { display:block; }
.brand-logo img { width:100%; height:auto; aspect-ratio:640 / 180; object-fit:contain; }
.site-head .wrap { min-height:86px; padding-block:9px; }
.foot .brand-logo { width:250px; background:transparent; border-radius:0; overflow:visible; }
@media(max-width:600px) {
 .site-head .brand-logo { flex-basis:196px; }
 .site-head .wrap { min-height:74px; padding-block:9px; }
 .foot .brand-logo { width:220px; }
}

/* v158: original supplied artwork, with LLC masked out. */
.brand-logo img { aspect-ratio:845 / 405; }
.site-head .brand-logo { flex-basis:210px; }
.site-head .wrap { padding-block:2px; }
.foot .brand-logo { width:245px; }
@media(max-width:600px) { .site-head .brand-logo { flex-basis:175px; } .site-head .wrap { padding-block:2px; } .foot .brand-logo { width:215px; } }

/* v159: a quiet text-only footer identity. */
.foot .footer-wordmark { display:inline-block; color:#fff; font-family:var(--body); font-size:27px; font-weight:700; letter-spacing:.12em; line-height:1.2; text-decoration:none; padding:0; }
.foot .footer-wordmark:hover { color:var(--brand-yellow); }
@media(max-width:600px) { .foot .footer-wordmark { font-size:25px; } }

/* v161: restored four-column footer with slogan and yellow link hover. */
.foot .footer-motto { display:block; margin-top:13px; color:var(--brand-yellow); font-size:12px; font-weight:500; letter-spacing:.08em; line-height:1.6; text-transform:uppercase; }
.foot a { transition:color .18s ease; }
.foot a:hover, .foot a:focus-visible { color:var(--brand-yellow); }
.foot .foot-grid > div:first-child > p { margin-top:14px; }

/* v162: compact, opt-in WhatsApp contact panel. */
.nf-help { position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:calc(24px + env(safe-area-inset-bottom)); z-index:45; font-family:var(--body); }
.nf-help-toggle { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:12px 19px; border:1px solid var(--brand-yellow); border-radius:28px; background:#0d1d31; color:#fff; box-shadow:0 5px 20px #0d1d3126; font:600 14px/1.4 var(--body); cursor:pointer; }
.nf-help-toggle:hover { color:var(--brand-yellow); }
.nf-help-panel { position:absolute; bottom:66px; right:0; width:320px; max-width:calc(100vw - 32px); padding:28px 24px 24px; background:#fff; color:#0d1d31; border:1px solid #dce2e9; border-top:3px solid var(--brand-yellow); border-radius:12px; box-shadow:0 12px 45px #0d1d312e; max-height:calc(100dvh - 130px); overflow-y:auto; }
.nf-help-panel[hidden] { display:none; }
.nf-help-eyebrow { display:block; font-size:12px; letter-spacing:.14em; font-weight:700; margin-bottom:15px; }
.nf-help-panel h2 { font-size:28px; line-height:1.2; margin:0 0 12px; }
.nf-help-panel p { font-size:16px; line-height:1.6; margin:0 0 22px; color:#465466; }
.nf-help-close { position:absolute; top:7px; right:7px; display:grid; place-items:center; width:44px; height:44px; background:transparent; color:#465466; border:0; font:26px/1 sans-serif; cursor:pointer; }
.nf-help-chat { display:flex; align-items:center; justify-content:center; min-height:48px; padding:12px 14px; border-radius:5px; background:var(--brand-yellow); color:#0d1d31; text-decoration:none; font-size:15px; font-weight:600; }
.nf-help-chat:hover { background:#0d1d31; color:#fff; }
.nf-help :focus-visible { outline:3px solid var(--brand-yellow); outline-offset:4px; }
@media(max-width:600px) { .nf-help { right:max(16px,env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); } .nf-help-toggle { width:52px; height:52px; padding:0; } .nf-help-toggle span { display:none; } }
@media print { .nf-help { display:none; } }

/* v163: keep original mobile artwork legible without cropping remnants. */
@media(max-width:600px) { .site-head .brand-logo { flex-basis:190px; } }

/* v165: full original logo and slogan on mobile. */
@media(max-width:600px) { .site-head .brand-logo { flex-basis:235px; max-width:calc(100% - 82px); } .site-head .brand-logo img { object-fit:contain; height:auto; } .site-head .wrap { padding-block:6px; } }
