/* TRESUN confirmed nav — extracted from tresun-homepage-final-v218.html (approved) */
.ts-nav-root{--navy:#071c2b;--navy2:#0d3043;--teal:#315f59;--green:#16984f;--green2:#2ab766;--ink:#0b1f2a;--muted:#657681;--line:#e3e9ec;--soft:#f5f8f9;--white:#fff;--max:1320px;--shadow:0 18px 52px rgba(8,31,45,.09);--radius:22px}
.ts-nav-root .site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(226,233,236,.94)}
.ts-nav-root .nav-shell{min-height:86px;display:flex;align-items:center;gap:20px}
.ts-nav-root .brand{flex:0 0 auto}
.ts-nav-root .brand img{height:72px;width:auto;object-fit:contain}
.ts-nav-root .primary-menu{display:flex;align-items:center;gap:18px;margin-left:12px;font-size:13px;font-weight:800;color:#233946;white-space:nowrap}
.ts-nav-root .primary-menu>a, .ts-nav-root .top-product-toggle{padding:31px 0;border:0;background:none;color:inherit;cursor:pointer}
.ts-nav-root .primary-menu>a:hover, .ts-nav-root .primary-menu .active, .ts-nav-root .top-product-toggle:hover, .ts-nav-root .top-product-toggle[aria-expanded="true"]{color:var(--green)}
.ts-nav-root .top-product-toggle span{font-size:11px;margin-left:3px}
.ts-nav-root .nav-right{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:11px;font-weight:800;color:#263d49}
.ts-nav-root .contact-mini{display:grid;gap:3px}
.ts-nav-root .divider{height:34px;width:1px;background:#d8e1e5}
.ts-nav-root .quote{background:var(--green);color:#fff;padding:12px 17px;border-radius:10px;white-space:nowrap}
.ts-nav-root .mobile-toggle{display:none;border:0;background:#eef4f1;color:#0b1f2a;width:42px;height:42px;border-radius:11px;font-size:21px;cursor:pointer}
.ts-nav-root .products-nav{position:relative}
.ts-nav-root .product-panel{position:absolute;left:-28px;top:76px;width:560px;padding:15px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(8,31,45,.18);opacity:0;visibility:hidden;transform:translateY(9px);pointer-events:none;transition:.2s}
.ts-nav-root .products-nav.is-open .product-panel{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.ts-nav-root .product-panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 13px 16px;border-bottom:1px solid var(--line)}
.ts-nav-root .product-panel-head span{display:block;color:var(--green);font-size:10px;letter-spacing:1.2px;text-transform:uppercase}
.ts-nav-root .product-panel-head b{display:block;font-size:15px;margin-top:3px}
.ts-nav-root .product-panel-head>a{color:var(--green);font-size:11px;font-weight:900}
.ts-nav-root .pnav-groups{padding-top:7px}
.ts-nav-root .pnav-group{border-bottom:1px solid #edf1f3}
.ts-nav-root .pnav-group:last-child{border-bottom:0}
.ts-nav-root .pnav-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;border:0;background:#fff;padding:12px 13px;text-align:left;color:#18313e;cursor:pointer;border-radius:10px}
.ts-nav-root .pnav-row:hover, .ts-nav-root .pnav-row[aria-expanded="true"]{background:#f2f7f4;color:var(--green)}
.ts-nav-root .pnav-row span{display:grid;gap:2px}
.ts-nav-root .pnav-row b{font-size:13px}
.ts-nav-root .pnav-row small{font-size:10px;font-weight:650;color:#71838c}
.ts-nav-root .pnav-row i{font-size:19px;font-style:normal;transition:transform .2s}
.ts-nav-root .pnav-row[aria-expanded="true"] i{transform:rotate(90deg)}
.ts-nav-root .pnav-panel{display:none;padding:0 8px 9px 23px}
.ts-nav-root .pnav-group.is-open>.pnav-panel{display:block}
.ts-nav-root .pnav-group.nested{border:0}
.ts-nav-root .pnav-group.nested>.pnav-row{padding:10px 11px}
.ts-nav-root .model-list{grid-template-columns:1fr;gap:5px;padding-top:3px}
.ts-nav-root .pnav-group.is-open>.model-list{display:grid}
.ts-nav-root .model-list.two-col{grid-template-columns:1fr 1fr}
.ts-nav-root .model-list a{display:block;padding:8px 10px;border-radius:8px;background:#f7f9fa;color:#435966;font-size:10.5px;font-weight:700;white-space:normal}
.ts-nav-root .model-list a:hover{background:#eaf5ee;color:var(--green)}
.ts-nav-root .hero-slide.active{display:block}
.ts-nav-root .dot.active{background:#72df99;box-shadow:0 0 0 5px rgba(114,223,153,.15)}
.ts-nav-root .brand-logo-row{display:flex;align-items:center;justify-content:flex-end;gap:32px;flex-wrap:wrap}
.ts-nav-root .brand-logo-row img{display:block;object-fit:contain}
.ts-nav-root .brand-logo-row img:nth-child(1){width:158px;height:38px}
.ts-nav-root .brand-logo-row img:nth-child(2){width:110px;height:46px}
.ts-nav-root .brand-logo-row img:nth-child(3){width:118px;height:46px}
@media(max-width:1180px){
.ts-nav-root .primary-menu{gap:13px;font-size:12px}
.ts-nav-root .contact-mini{display:none}
.ts-nav-root .nav-right .divider{display:none}
}
@media(max-width:1000px){
.ts-nav-root .mobile-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.ts-nav-root .primary-menu{display:none;position:absolute;top:78px;left:18px;right:18px;max-height:calc(100vh - 96px);overflow:auto;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:10px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(8,31,45,.15)}
.ts-nav-root .primary-menu.open{display:flex}
.ts-nav-root .primary-menu>a, .ts-nav-root .top-product-toggle{padding:12px 14px;text-align:left;width:100%}
.ts-nav-root .products-nav{width:100%}
.ts-nav-root .product-panel{position:static;width:auto;margin:0 7px 8px;box-shadow:none;border-radius:13px;display:none;opacity:1;visibility:visible;transform:none;pointer-events:auto}
.ts-nav-root .products-nav.is-open .product-panel{display:block}
.ts-nav-root .product-panel-head{display:none}
.ts-nav-root .nav-right{margin-left:0}
}
@media(max-width:620px){
.ts-nav-root .wrap{width:min(var(--max),calc(100% - 28px))}
.ts-nav-root .brand img{height:54px}
.ts-nav-root .nav-shell{min-height:72px}
.ts-nav-root .nav-right .quote{font-size:10px;padding:10px 11px}
.ts-nav-root .primary-menu{top:67px;left:10px;right:10px}
.ts-nav-root .product-panel{padding:9px}
.ts-nav-root .model-list.two-col{grid-template-columns:1fr}
.ts-nav-root .brand-logo-row{justify-content:flex-start;gap:21px;margin-top:18px}
.ts-nav-root .brand-logo-row img:nth-child(1){width:120px;height:31px}
.ts-nav-root .brand-logo-row img:nth-child(2){width:84px;height:36px}
.ts-nav-root .brand-logo-row img:nth-child(3){width:92px;height:37px}
}
/* 2026-09-14 · REMOVED duplicated DESKTOP Header block (nav-shell 82px / brand 64px / menu 13.5px /
   link padding 29px / quote 12px 18px): it overrode the earlier desktop declaration and made the
   inner-page Header differ from the approved homepage. */
@media(max-width:1180px) and (min-width:1001px){
.ts-nav-root .primary-menu{gap:13px;font-size:12px}
}
@media(max-width:1000px){
.ts-nav-root .nav-shell{min-height:78px}
.ts-nav-root .brand img{height:60px}
.ts-nav-root .primary-menu>a, .ts-nav-root .top-product-toggle{padding:12px 14px}
}
@media(max-width:620px){
.ts-nav-root .nav-shell{min-height:70px}
.ts-nav-root .brand img{height:52px}
}
.ts-nav-root /* V2.4 visible structural refinement */
.site-header{box-shadow:0 7px 24px rgba(8,31,45,.055)}
/* 2026-09-14 · REMOVED duplicated DESKTOP Header sizes (nav-shell 78px / menu 14px / link padding 26px /
   quote 11px 17px) — merged into the single desktop Header definition appended at EOF.
   The .brand line below is kept: it is the pre-existing non-header (footer) .brand sizing. */
.ts-nav-root .brand img{height:58px}
@media(max-width:1180px) and (min-width:1001px){
.ts-nav-root .primary-menu{gap:13px;font-size:12px}
.ts-nav-root .nav-shell{min-height:78px}
}
@media(max-width:1000px){
.ts-nav-root .nav-shell{min-height:76px}
.ts-nav-root .brand img{height:58px}
.ts-nav-root .primary-menu>a, .ts-nav-root .top-product-toggle{padding:12px 14px}
}
@media(max-width:620px){
.ts-nav-root .nav-shell{min-height:70px}
.ts-nav-root .brand img{height:52px}
}
@media(max-width:1180px) and (min-width:1001px){
.ts-nav-root .nav-shell{grid-template-columns:minmax(72px,1fr) auto minmax(130px,1fr);gap:18px}
.ts-nav-root .primary-menu{gap:16px;font-size:12.5px}
}
@media(max-width:1000px){
.ts-nav-root .nav-shell{display:flex;min-height:76px}
.ts-nav-root .primary-menu{margin:0}
.ts-nav-root .nav-right{margin-left:0}
}
@media(max-width:620px){
.ts-nav-root .nav-shell{min-height:70px}
}
.ts-nav-root .quote, .ts-nav-root .btn, .ts-nav-root .brand-logo-row a, .ts-nav-root .case-grid article{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.ts-nav-root .quote:hover, .ts-nav-root .btn:hover{transform:translateY(-2px)}
.ts-nav-root .quote:hover{background:#288846;box-shadow:0 12px 25px rgba(22,152,79,.24)}
.ts-nav-root .site-header a:focus-visible, .ts-nav-root .site-header button:focus-visible, .ts-nav-root .btn:focus-visible, .ts-nav-root .brand-logo-row a:focus-visible, .ts-nav-root .category-product-card:focus-visible, .ts-nav-root .case-grid article:focus-within{outline:3px solid rgba(69,181,114,.5);outline-offset:4px}
.ts-nav-root .brand-logo-row{display:grid;grid-template-columns:repeat(6,minmax(86px,1fr));gap:18px;width:100%}
.ts-nav-root .brand-logo-row a{display:flex;align-items:center;justify-content:center;min-height:58px;padding:8px;border-radius:11px}
.ts-nav-root .brand-logo-row a:hover{background:#eef6f1;transform:translateY(-2px)}
.ts-nav-root .brand-logo-row img, .ts-nav-root .brand-logo-row img:nth-child(n){width:100%;max-width:135px;height:42px;object-fit:contain}
@media(max-width:1360px) and (min-width:1181px){
.ts-nav-root .nav-shell{width:min(1320px,calc(100% - 36px));display:grid;grid-template-columns:100px minmax(0,1fr) 250px;gap:22px;align-items:center}
.ts-nav-root .brand img{height:68px}
.ts-nav-root .primary-menu{font-size:13.5px;width:100%}
.ts-nav-root .contact-mini{font-size:10.5px}
.ts-nav-root .quote{padding:13px 16px;font-size:11px}
.ts-nav-root .brand-logo-row{gap:12px}
}
@media(max-width:1180px) and (min-width:1001px){
.ts-nav-root .nav-shell{width:calc(100% - 30px);display:grid;grid-template-columns:94px minmax(0,1fr) 112px;gap:18px;min-height:86px;align-items:center}
.ts-nav-root .brand img{height:66px}
.ts-nav-root .primary-menu{justify-content:space-between;width:100%;gap:0;font-size:12.5px}
.ts-nav-root .primary-menu>a, .ts-nav-root .top-product-toggle{padding:30px 0}
.ts-nav-root .primary-menu>a:after, .ts-nav-root .top-product-toggle:after{bottom:21px}
.ts-nav-root .nav-right{gap:0}
.ts-nav-root .brand-logo-row{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1000px){
.ts-nav-root .brand img{height:64px}
.ts-nav-root .brand-logo-row{grid-template-columns:repeat(3,1fr);margin-top:0}
}
@media(max-width:620px){
.ts-nav-root .brand img{height:56px}
.ts-nav-root .brand-logo-row{grid-template-columns:repeat(2,1fr);gap:10px}
.ts-nav-root .brand-logo-row a{min-height:54px;padding:7px}
.ts-nav-root .brand-logo-row img, .ts-nav-root .brand-logo-row img:nth-child(n){height:36px;max-width:120px}
}
@media(max-width:1000px){
.ts-nav-root #news .wrap, .ts-nav-root #contact .wrap{width:calc(100% - 36px)}
}
@media(max-width:620px){
.ts-nav-root #news .wrap, .ts-nav-root #contact .wrap{width:calc(100% - 28px)}
}
.ts-nav-root .btn, .ts-nav-root .quote{border-radius:8px}
.ts-nav-root .brand-logo-row{gap:28px}
.ts-nav-root .brand-logo-row a{min-height:50px;padding:5px;border-radius:5px}
@media(max-width:1000px){
.ts-nav-root .product-solutions-section>.wrap:before, .ts-nav-root .category-showcase:before{display:none}
}
.ts-nav-root .btn, .ts-nav-root .quote{font-weight:750}
.ts-nav-root /* V2.18 — final audit corrections: legibility, .ts-nav-root source-image cleanup and responsive clearance */
.nav-shell{position:relative}
.ts-nav-root .model-list a{font-size:12px;line-height:1.45}
.ts-nav-root .pnav-row small{font-size:11.5px;line-height:1.35}
.ts-nav-root .brand-logo-row a{display:grid;place-items:center;min-width:128px;min-height:58px;padding:7px 12px;border:1px solid #e4e9e8;border-radius:8px;background:#fff}
.ts-nav-root .brand-logo-row img, .ts-nav-root .brand-logo-row img:nth-child(n){width:auto;height:34px;max-width:118px;object-fit:contain;background:transparent}
@media(max-width:1000px){
.ts-nav-root .primary-menu{z-index:120}
.ts-nav-root .brand-logo-row a{min-width:0}
}
@media(max-width:620px){
.ts-nav-root .model-list a{font-size:12.5px}
.ts-nav-root .pnav-row small{font-size:12px}
.ts-nav-root .brand-logo-row a{min-height:58px;padding:8px}
.ts-nav-root .brand-logo-row img, .ts-nav-root .brand-logo-row img:nth-child(n){height:32px;max-width:108px}
}

/* ==========================================================================
   2026-09-14 · RESPONSIVE HEADER PARITY — the same values the approved homepage
   header computes at each breakpoint (1024 / 768 / 390). Restores the mobile
   menu size/weight and Header spacing that the removed duplicate blocks used to
   supply, so clicking from the homepage into an inner page changes nothing.
   ========================================================================== */
@media(max-width:1180px){
.ts-nav-root :where(.site-header) .primary-menu{font-weight:760}
.ts-nav-root :where(.site-header) .nav-right{font-size:11.5px}
.ts-nav-root :where(.site-header) .contact-mini{font-size:11.5px}
.ts-nav-root :where(.site-header) .quote{padding:14px 20px;font-size:12px}
}
@media(max-width:1000px){
.ts-nav-root :where(.site-header) .nav-shell{gap:22px}
.ts-nav-root :where(.site-header) .primary-menu{font-size:14px;font-weight:750}
.ts-nav-root :where(.site-header) .nav-right{font-size:11.5px}
.ts-nav-root :where(.site-header) .contact-mini{font-size:11px}
.ts-nav-root :where(.site-header) .quote{padding:11px 17px;font-size:11.5px}
}
@media(max-width:620px){
.ts-nav-root :where(.site-header) .nav-shell{gap:22px}
.ts-nav-root :where(.site-header) .primary-menu{font-size:14px;font-weight:750}
.ts-nav-root :where(.site-header) .nav-right{font-size:11.5px}
.ts-nav-root :where(.site-header) .contact-mini{font-size:11px}
.ts-nav-root :where(.site-header) .quote{padding:10px 11px;font-size:10px}
}

/* 2026-09-14 · the Products toggle is a <button>: unlike the <a> items it does NOT inherit the
   menu typography by default (inner pages were rendering it at the UA default 13.33px/400/Arial,
   which also made the mega panel sit 5px lower than on the homepage). Inherit the menu font. */
.ts-nav-root :where(.site-header) .top-product-toggle{font:inherit;line-height:inherit}

/* ==========================================================================
   2026-09-14 · SINGLE DESKTOP HEADER DEFINITION (>=1361px) — Header size parity
   Master = the approved homepage header: 94px content row (+1px hairline = 95px),
   74px logo, 15px/760 menu, #233946 text with #16984f active, 34px link padding.
   Appended at EOF and scoped to .site-header so that (a) it is the only desktop
   Header definition left in this file, (b) nothing below 1361px changes, and
   (c) non-header .brand images (footer) keep their cascade untouched.
   ========================================================================== */
@media(min-width:1361px){
.ts-nav-root :where(.site-header) .nav-shell{width:min(1680px,calc(100% - 48px));margin:0 auto;min-height:94px;display:grid;grid-template-columns:110px minmax(0,1fr) 300px;align-items:center;gap:28px}
.ts-nav-root :where(.site-header) .brand{justify-self:start}
.ts-nav-root .site-header .brand img{height:74px;width:auto;object-fit:contain}
.ts-nav-root :where(.site-header) .primary-menu{justify-content:space-between;justify-self:center;width:min(100%,980px);gap:0;margin-left:0;font-size:15px;font-weight:760;letter-spacing:-.1px}
.ts-nav-root :where(.site-header) .primary-menu>a, .ts-nav-root :where(.site-header) .top-product-toggle{position:relative;padding:34px 0}
.ts-nav-root :where(.site-header) .primary-menu>a:after, .ts-nav-root :where(.site-header) .top-product-toggle:after{content:"";position:absolute;left:0;right:0;bottom:24px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left center;transition:transform .2s ease}
.ts-nav-root :where(.site-header) .primary-menu>a:hover:after, .ts-nav-root :where(.site-header) .primary-menu .active:after, .ts-nav-root :where(.site-header) .top-product-toggle:hover:after, .ts-nav-root :where(.site-header) .top-product-toggle[aria-expanded="true"]:after{transform:scaleX(1)}
.ts-nav-root :where(.site-header) .nav-right{justify-self:end;gap:14px;font-size:11.5px;line-height:1.35}
.ts-nav-root :where(.site-header) .contact-mini{font-size:11.5px;line-height:1.35}
.ts-nav-root :where(.site-header) .quote{padding:14px 20px;font-size:12px;box-shadow:0 8px 20px rgba(22,152,79,.16)}
.ts-nav-root :where(.site-header) .product-panel{top:86px}
}
