/* INVEMSAFE PPE — shared stylesheet (prototype)
   One file for every page. Design language: industrial B2B — square corners,
   1px rules, left aligned, data before decoration, no decorative icons. */

*,*::before,*::after{box-sizing:border-box}
:root{
  --navy:#0E1B2A;--navy2:#17293C;--steel:#33475B;
  --orange:#E35205;--orange-d:#C4460A;
  --brandgreen:#1E9E48;
  --ink:#111A23;--muted:#5C6B7A;--faint:#8B9AA8;
  --line:#D6DDE5;--line2:#E7ECF1;
  --soft:#F4F6F8;--white:#fff;
}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Inter","Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--white);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;line-height:1.22;letter-spacing:-.018em;font-weight:700}
p{margin:0}
a{color:inherit;text-decoration:none}
a.lnk{text-decoration:underline;text-underline-offset:3px}
.waico{vertical-align:-4px;margin-right:7px;flex:0 0 auto}
a.lnk.wa{display:inline-flex;align-items:center;text-decoration:none;font-weight:700;color:var(--navy)}
a.lnk.wa:hover .waico path{fill:#1DA851}
a.lnk.wa:hover{text-decoration:underline;text-underline-offset:3px}
a.fwa{display:inline-flex;align-items:center;gap:6px}
a.fwa:hover .waico path,a.lnk.wa:hover .waico path{fill:#1DA851}

/* ---------- floating WhatsApp button (every page) ---------- */
.wafloat{position:fixed;right:22px;bottom:22px;z-index:90;display:inline-flex;align-items:center;gap:9px;
  padding:12px 22px;border-radius:999px;background:#25D366;color:#fff;font-size:14.5px;font-weight:700;
  box-shadow:0 6px 18px rgba(14,27,42,.22);transition:background .15s,transform .15s,box-shadow .15s}
.wafloat .waico{margin:0;vertical-align:0}
.wafloat .waico path{fill:#fff}
.wafloat:hover{background:#1FBF5B;color:#fff;transform:translateY(-2px);box-shadow:0 9px 22px rgba(14,27,42,.28)}
@media(max-width:640px){.wafloat{right:14px;bottom:14px;padding:11px 18px;font-size:13.5px}}
@media print{.wafloat{display:none}}
ul{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.kicker{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
.lead{color:var(--muted);font-size:15.5px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border-radius:2px;font-weight:700;font-size:13px;letter-spacing:.05em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-d)}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-line:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.btn-quiet{background:#fff;color:var(--navy);border-color:var(--line)}
.btn-quiet:hover{border-color:var(--steel)}

/* ---------- preview bar ---------- */

/* ---------- header ---------- */
header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:32px;height:78px}
.logo{display:flex;align-items:center;gap:14px;font-weight:800;font-size:23px;letter-spacing:-.02em;color:var(--navy)}
.logo .mark{width:42px;height:42px;background:var(--navy);position:relative;flex:0 0 auto}
.logo .mark::after{content:"";position:absolute;inset:12px;background:var(--orange)}
.logo small{display:block;font-size:10px;font-weight:600;letter-spacing:.13em;color:var(--faint);margin-top:1px}
.logo span b{color:var(--brandgreen);font-weight:inherit}
.menu{display:flex;align-items:center;margin-left:auto}
.menu a{display:block;padding:27px 24px;font-size:15px;font-weight:600;color:#2B3B4C;border-bottom:2px solid transparent;letter-spacing:.01em;white-space:nowrap}
.menu a:hover,.menu a.on{color:var(--navy);border-bottom-color:var(--orange)}
.menu a.cta{background:var(--orange);color:#fff;padding:11px 20px;margin-left:12px;border-bottom-color:transparent}
.menu a.cta:hover{background:#C24403;color:#fff;border-bottom-color:transparent}
.menu a.cta.on{color:#fff;border-bottom-color:transparent}
.burger{display:none;background:none;border:1px solid var(--line);padding:0 13px;height:40px;font:inherit;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);cursor:pointer;align-items:center}

/* ---------- page head ---------- */
.phead{background:var(--soft);border-bottom:1px solid var(--line);padding:44px 0 40px}
.crumb{font-size:12.5px;color:var(--faint);letter-spacing:.02em}
.crumb a:hover{color:var(--orange)}
.phead h1{font-size:clamp(26px,3vw,36px);color:var(--navy);margin-top:14px}
.phead .lead{margin-top:14px;max-width:680px}
.phead.hasbanner{position:relative;background-color:var(--navy);background-size:cover;background-position:50% 38%;background-repeat:no-repeat;border-bottom:0;padding:76px 0 68px}
.phead.hasbanner::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,27,42,.80) 0%,rgba(14,27,42,.50) 46%,rgba(11,21,33,.14) 100%)}
.phead.hasbanner>.wrap{position:relative;z-index:1}
.phead.hasbanner .crumb{color:#8FA3B6}
.phead.hasbanner .crumb a{color:#B9C8D6}
.phead.hasbanner h1{color:#fff}
.phead.hasbanner .lead{color:#A9BBCB}
.pbody{padding:52px 0 76px}

/* ---------- home hero ---------- */
/* hero carousel */
.hcar{position:relative;background:#242A31;overflow:hidden}
.hslide{display:none;position:relative}
.hslide.on{display:block}
.hslide img{display:block;width:100%;object-fit:cover}
.hslide:nth-child(1) img{height:clamp(430px,37vw,560px);object-position:50% 62%}
.hslide:nth-child(2) img{height:clamp(360px,30vw,470px);object-position:50% 45%}
.hcap{background:var(--navy);border-top:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px 52px}
.hcap .ct{color:#C0CEDA;font-size:14px;margin-top:5px;max-width:640px}
.hcap .btn{flex:0 0 auto}
.hpanel{position:absolute;top:0;bottom:0;left:0;width:min(600px,52%);background:rgba(14,27,42,.96);border-right:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;justify-content:center;padding:48px 52px}
.hpanel h1{font-size:clamp(28px,3vw,40px);color:#fff;margin-top:14px}
.hpanel .lead{color:#A9BBCB;margin-top:16px;font-size:15.5px;max-width:460px}
.hpanel .cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.hnav{position:absolute;right:28px;bottom:24px;display:flex;gap:18px;z-index:5}
.hbar{background:none;border:0;padding:0;cursor:pointer;text-align:right;font:inherit}
.hbar .t{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8B9AA8;margin-bottom:6px}
.hbar.on .t{color:#fff}
.hbar .ln{display:block;width:110px;height:2px;background:rgba(255,255,255,.28);position:relative;overflow:hidden}
.hbar .ln i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--orange);display:block}
.hbar.on .ln i{animation:hfill 6.5s linear forwards}
@keyframes hfill{from{width:0}to{width:100%}}
@media (prefers-reduced-motion:reduce){.hbar.on .ln i{animation:none;width:100%}}

/* facts band under the hero */
.factsband{background:#F3F5F7;border-bottom:1px solid var(--line)}
.factsband .fbgrid{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 0}
.factsband .r{display:flex;align-items:baseline;gap:14px;padding:4px 26px;border-left:1px solid var(--line)}
.factsband .r:first-child{border-left:0;padding-left:0}
.factsband .r b{font-size:17px;font-weight:700;color:var(--navy);flex:0 0 84px;letter-spacing:-.02em}
.factsband .r span{font-size:12.5px;color:var(--muted);line-height:1.5}

/* ---------- sections ---------- */
section{padding:72px 0}
.shead{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:0}
.shead h2{font-size:clamp(22px,2.4vw,30px);margin-top:10px}
.shead p{margin-top:10px;max-width:640px}
.block-h{display:flex;align-items:baseline;gap:14px;padding:38px 0 12px;border-bottom:2px solid var(--navy)}
.block-h:first-child{padding-top:0}
.block-h .n{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.12em}
.block-h h2{font-size:17px;color:var(--navy)}
.block-h .m{margin-left:auto;font-size:12px;color:var(--faint);letter-spacing:.03em}

/* ---------- home category index ---------- */
.cats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cat{display:block;padding:24px 22px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:background .15s}
.cat:hover{background:var(--soft)}
.cat .n{font-size:11px;font-weight:700;color:var(--faint);letter-spacing:.12em}
.cat .im{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;margin:14px 0 2px}
.cat h3{font-size:15px;margin-top:12px;color:var(--navy)}
.cat p{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}
.cat .go{font-size:11.5px;font-weight:700;color:var(--orange);letter-spacing:.06em;text-transform:uppercase;margin-top:14px;display:block}
.tag2{margin-top:14px;display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);padding:3px 8px}

/* ---------- tables ---------- */
.tscroll{overflow-x:auto;border:1px solid var(--line);margin-top:30px}
thead th{background:var(--soft);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody td{padding:15px 16px;border-bottom:1px solid var(--line2);font-size:14px;vertical-align:top}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#FAFBFC}
td.code{font-weight:700;color:var(--navy);white-space:nowrap;font-size:13.5px}
td.timg{width:64px;padding:10px 12px 10px 14px;vertical-align:middle}
td.timg img{display:block;width:48px;height:48px;object-fit:contain}
td.name{font-weight:600;color:#22303D}
td.spec{color:var(--muted);font-size:13.5px;white-space:nowrap}
tbody td strong{color:var(--navy)}
tbody tr.sum td{background:var(--soft);border-bottom:1px solid var(--line)}
.nm{white-space:nowrap}
tbody td a{color:#33475B;border-bottom:1px solid var(--line2)}
tbody td a:hover{color:var(--orange);border-bottom-color:var(--orange)}
[id]{scroll-margin-top:96px}

/* ---------- products page: index + catalogue ---------- */
.layout{display:grid;grid-template-columns:246px 1fr;gap:46px;padding-top:52px;padding-bottom:76px;align-items:start}
.railbody{min-width:0}
.idx{position:sticky;top:100px}
.idx h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);padding-bottom:16px;border-bottom:1px solid var(--line)}
.idx a{display:flex;gap:14px;align-items:baseline;padding:15px 0 15px 14px;border-bottom:1px solid var(--line2);font-size:14px;font-weight:600;color:#33475B}
.idx a:hover{color:var(--orange)}
.idx a.on{color:var(--navy);box-shadow:inset 3px 0 0 var(--orange)}
.idx a.on .n{color:var(--orange)}
.idx a .n{font-size:11px;font-weight:700;color:var(--faint);flex:0 0 24px}
.idx a .cn{margin-left:auto;font-size:11px;font-weight:600;color:var(--faint);flex:0 0 auto;padding-right:2px}
.idx .sub a{padding:12px 0 12px 46px;font-size:12.5px;font-weight:500;color:#41556B;border-bottom:0;border-top:1px solid var(--line2);align-items:baseline}
.idx .sub a.on{color:var(--navy);font-weight:700}
.idx .sub a .tt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.idx .sub a:last-child{border-bottom:1px solid var(--line2)}
.idx .back{margin-top:18px;font-size:12.5px}
.idx .back a{color:var(--muted)}
.idx .note b{color:var(--navy)}
.idx a .p2{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);border:1px solid var(--line);padding:2px 6px}
.idx .note{margin-top:22px;font-size:12px;color:var(--muted);line-height:1.6}
.idx .railcard{margin-top:30px;border:1px solid var(--line);background:#fff}
.idx .railcard img{display:block;width:100%;height:auto;border-bottom:1px solid var(--line)}
.idx .railcard p{margin:0 15px}
.idx .railcard .rc-t{margin-top:15px;font-size:13px;font-weight:700;color:var(--navy);letter-spacing:-.01em}
.idx .railcard .rc-p{margin-top:7px;font-size:12px;color:var(--muted);line-height:1.55}
.idx .railcard .rc-a{display:block;margin:13px 15px 15px;padding-top:12px;border-top:1px solid var(--line2);font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--orange)}
.idx .railcard .rc-a:hover{color:var(--navy)}

/* ---------- inline section figure ---------- */
.inset{margin-top:30px}
.inset img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.inset figcaption{margin-top:11px;font-size:12.5px;color:var(--faint);line-height:1.6;letter-spacing:.01em}

/* ---------- full-width band image ---------- */
.bandimg{margin:0;line-height:0;border-top:1px solid var(--line)}
.bandimg img{display:block;width:100%;height:clamp(220px,26vw,420px);object-fit:cover;object-position:50% 55%}
.cat-h{display:flex;align-items:baseline;gap:14px;padding:34px 0 12px;border-bottom:2px solid var(--navy)}
.cat-h:first-child{padding-top:0}
.cat-h .n{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.12em}
.cat-h h2{font-size:17px;color:var(--navy)}
.cat-h .m{margin-left:auto;font-size:12px;color:var(--faint);letter-spacing:.03em}
.phase2{padding:18px 0 4px;font-size:13.5px;color:var(--muted);border-bottom:1px solid var(--line2)}
.phase2 b{color:var(--navy)}
.footnote{margin-top:26px;font-size:12.5px;color:var(--faint);line-height:1.7;max-width:820px}

/* ---------- two column text ---------- */
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.cols2 h3{font-size:15px;color:var(--navy);margin-bottom:12px;letter-spacing:.01em}

/* ---------- numbered explanation lists ---------- */
.why .r{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid #DDE4EB}
.why .r:first-child{padding-top:0}
.why .r:last-child{border-bottom:0;padding-bottom:0}
.why .n{font-size:12px;font-weight:800;color:var(--orange);letter-spacing:.08em;flex:0 0 26px;padding-top:3px}
.why h3{font-size:15.5px;color:var(--navy)}
.why p{font-size:13.5px;color:var(--muted);margin-top:5px}

/* ---------- home about band ---------- */
.about{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about .grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:64px;align-items:start}
.about h2{font-size:clamp(21px,2.3vw,28px);margin-top:10px;color:var(--navy)}
.about .lead{margin-top:16px;font-size:15px}
.about .quote{margin-top:22px;font-size:14.5px;color:#22303D;border-left:2px solid var(--orange);padding-left:16px}

/* ---------- plain bullet block ---------- */
ul.plain{margin-top:16px;display:grid;gap:11px}
ul.plain li{font-size:13.5px;color:var(--muted);display:flex;gap:12px;line-height:1.6}
ul.plain li::before{content:"";flex:0 0 auto;width:6px;height:6px;background:var(--orange);margin-top:9px}
ul.plain.no li::before{background:var(--faint)}
ul.plain strong{color:var(--navy)}

/* ---------- industries cards + trade band ---------- */
/* home industries photo cards */
.inds{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:28px}
.inds a{display:block;background:#fff;padding-bottom:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .15s}
.inds a:hover{background:var(--soft)}
.inds .im{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.inds h3{font-size:15px;margin:14px 20px 0;color:var(--navy)}
.inds p{font-size:12.5px;color:var(--muted);margin:6px 20px 0;line-height:1.5}
.trade{background:#fff;border-top:1px solid var(--line);padding:0}
.trade .grid{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--line);margin:36px 0 0}
.trade .c{padding:20px;border-right:1px solid var(--line);border-top:1px solid var(--line)}
.trade .c h4{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.trade .c p{font-size:13.5px;color:var(--navy);margin-top:8px;font-weight:600}

/* ---------- supply chain row ---------- */
.chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;margin-top:30px;border:1px solid var(--line)}
.chain .c{padding:22px 20px}
.chain .c h4{font-size:13.5px;color:var(--navy)}
.chain .c p{font-size:12.5px;color:var(--muted);margin-top:7px;line-height:1.6}
.chain .ar{display:flex;align-items:center;padding:0 16px;color:var(--faint);font-size:13px;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--soft)}
.chain .c.us{background:var(--navy)}
.chain .c.us h4{color:#fff}
.chain .c.us p{color:#A9BBCB}

/* ---------- callout ---------- */
.callout{border:1px solid var(--line);border-left:3px solid var(--orange);background:var(--soft);padding:20px 24px;margin-top:30px}
.callout h3{font-size:14px;color:var(--navy)}
.callout p{font-size:13.5px;color:var(--muted);margin-top:8px}
.tgh{font-size:14px;font-weight:700;color:var(--navy);letter-spacing:.02em;margin:34px 0 0;padding-left:12px;border-left:3px solid var(--orange);line-height:1.3}
.tgh + .grid3{margin-top:16px}

/* ---------- news list ---------- */
.newslist{border-top:1px solid var(--line);margin-top:34px}
.nitem{display:grid;grid-template-columns:264px 1fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--line2)}
.nthumb{display:block;align-self:start;border:1px solid var(--line)}
.nthumb img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.nitem .meta{font-size:12px;color:var(--faint);line-height:1.7}
.nitem .meta b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.nitem h3{font-size:17px;color:var(--navy)}
.nitem h3 a:hover{color:var(--orange)}
.nitem p{font-size:13.5px;color:var(--muted);margin-top:8px;max-width:760px}
.nitem .more{font-size:11.5px;font-weight:700;color:var(--orange);letter-spacing:.06em;text-transform:uppercase;margin-top:12px;display:inline-block}
.nitem:hover{background:#FBFCFD}

/* ---------- article / prose ---------- */
.article{max-width:760px}
.article .ameta{font-size:12.5px;color:var(--faint);margin-top:16px;letter-spacing:.02em}
.nlead{margin:30px 0 0;border:1px solid var(--line)}
.nlead img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.nlead figcaption{font-size:12px;color:var(--faint);padding:10px 14px;border-top:1px solid var(--line2)}
.prose{margin-top:30px}
.prose p{font-size:15px;color:#243240;margin-top:18px;line-height:1.75}
.prose h2{font-size:19px;color:var(--navy);margin-top:38px;padding-top:22px;border-top:1px solid var(--line)}
.prose h3{font-size:15.5px;color:var(--navy);margin-top:26px}
.prose ul{margin-top:16px;display:grid;gap:10px}
.prose ul li{font-size:14.5px;color:#243240;display:flex;gap:12px;line-height:1.7}
.prose ul li::before{content:"";flex:0 0 auto;width:6px;height:6px;background:var(--orange);margin-top:11px}
.prose .callout p{font-size:13.5px}
.prose table{margin-top:24px}
.prose table td,.prose table th{font-size:13.5px}

/* ---------- forms ---------- */
form{background:#fff;border:1px solid var(--line);padding:26px}
form.on-dark{border:0}
form .fr{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form label{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
form input,form select,form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:2px;font:inherit;font-size:14px;color:var(--ink);background:#fff}
form input::placeholder,form textarea::placeholder{color:#B6C0CA;opacity:1}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--orange)}
form .fg{margin-bottom:16px}
form textarea{resize:vertical;min-height:92px}
form button{width:100%;justify-content:center}
form .fine{margin-top:14px;font-size:12px;color:var(--faint);text-align:center;border-top:1px solid var(--line2);padding-top:14px}
.rfq{background:var(--navy);color:#fff}
.rfq .grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.rfq h2{font-size:clamp(22px,2.5vw,30px);color:#fff;margin-top:10px}
.rfq .lead{color:#A9BBCB;margin-top:16px;font-size:15px}
.rfq ul.mk{margin-top:26px;display:grid;gap:12px}
.rfq ul.mk li{display:flex;gap:12px;font-size:13.5px;color:#BCCBD8}
.rfq ul.mk li::before{content:"";flex:0 0 auto;width:6px;height:6px;background:var(--orange);margin-top:9px}
.form-note{font-size:12.5px;color:var(--faint);margin-top:14px;line-height:1.7}
.form-note a{color:var(--steel);text-decoration:underline;text-underline-offset:3px}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.cblock{border:1px solid var(--line);padding:22px}
.cblock h3{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:700}
.cblock .v{font-size:15px;color:var(--navy);font-weight:600;margin-top:10px}
.cblock .v small{display:block;font-size:12px;color:var(--faint);font-weight:400;margin-top:4px}
.cblock+.cblock{margin-top:-1px}

/* ---------- closing band ---------- */
.close{background:var(--navy);color:#fff;padding:52px 0}
.close .row{display:flex;justify-content:space-between;align-items:center;gap:36px;flex-wrap:wrap}
.close h2{font-size:clamp(20px,2.2vw,26px);color:#fff}
.close p{margin-top:12px;color:#A9BBCB;font-size:14.5px;max-width:620px}

/* ---------- footer ---------- */
footer{background:#0B141E;color:#8B9AA8;padding:56px 0 0;font-size:13.5px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.1)}
footer .logo{color:#fff}
footer .logo .mark{background:var(--steel)}
footer .logo small{color:#6C8098}
footer p.blurb{margin-top:16px;font-size:13px;line-height:1.7;max-width:340px}
.fcol h4{color:#fff;font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;margin-bottom:14px}
.fcol a{display:block;padding:5px 0;font-size:13px;color:#8B9AA8}
.fcol a:hover{color:var(--orange)}
.fbot{display:flex;justify-content:space-between;gap:20px;padding:20px 0;font-size:12px;flex-wrap:wrap;color:#5F7285}
.fbot a:hover{color:var(--orange)}

/* ---------- product tile grid (category listing) ---------- */
.catbar{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-bottom:0;margin-bottom:0}
.catbar a{flex:1 1 auto;text-align:center;padding:14px 16px;font-size:12.5px;font-weight:600;color:#22303D;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;transition:background .15s,color .15s}
.catbar a:last-child{border-right:0}
.catbar a:hover{background:var(--soft);color:var(--navy)}
.catbar a.on{background:var(--navy);color:#fff}
.catbar a .p2{margin-left:7px;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);border:1px solid currentColor;padding:1px 5px;vertical-align:1px}
.catbar a.on .p2{color:#8FA5BB}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:0}
.ptile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:background .15s,border-color .15s}
.ptile:hover{background:#FAFBFC;border-color:#C9D3DC}
.ptile .ptop{display:block;padding:0;flex:1}
.ptile .pimg{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1}
.ptile .pimg img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.ptile .pcode{display:block;font-size:11px;font-weight:700;letter-spacing:.11em;color:var(--orange);margin:20px 16px 0}
.ptile .pname{display:block;font-size:14.5px;font-weight:700;color:var(--navy);margin:7px 16px 0;line-height:1.35}
.ptile .pspec{display:block;font-size:12.5px;color:var(--muted);margin:9px 16px 0;line-height:1.55}
.ptile .pf{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:13px 16px;margin-top:18px;border-top:1px solid var(--line2)}
.ptile .pcat{font-size:11.5px;color:var(--muted);white-space:nowrap}
.ptile .pmore{display:inline-flex;align-items:center;color:var(--orange);transition:transform .15s}
.ptile:hover .pmore{transform:translateX(3px)}
.catblurb{padding:20px 0 0;font-size:14px;color:var(--muted);max-width:720px;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
#main > .catblurb:first-child{margin-top:-30px;padding-top:0}
.catblurb .cnt{font-size:12px;color:var(--faint);white-space:nowrap;letter-spacing:.03em}
/* category view only: give the blurb its own zone, drop the grid down a notch */
.catblurb + .pgrid,.catblurb + .grpchips + .pgrid{margin-top:26px}
.catblurb{flex-wrap:wrap}
.catblurb .more-link{font-size:13px;font-weight:700;color:var(--orange);white-space:nowrap}
.cat-h .more-link{color:var(--orange);font-weight:700;white-space:nowrap}
.cat-h .more-link:hover,.catblurb .more-link:hover{text-decoration:underline}
.grpchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.grpchips a{display:inline-block;padding:7px 14px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;color:#2B3B4C;transition:background .15s,color .15s,border-color .15s}
.grpchips a i{font-style:normal;font-weight:400;color:var(--faint);margin-left:2px}
.grpchips a:hover{border-color:var(--navy);color:var(--navy)}
.grpchips a.on{background:var(--navy);border-color:var(--navy);color:#fff}
.grpchips a.on i{color:rgba(255,255,255,.65)}
.emptybox{border:1px solid var(--line);border-left:3px solid var(--orange);background:var(--soft);padding:22px 26px;margin-top:26px}
.emptybox h3{font-size:15px;color:var(--navy)}
.emptybox p{font-size:13.5px;color:var(--muted);margin-top:9px;max-width:660px}

/* ---------- product detail ---------- */
.dhead{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.dhead .dimg{border:1px solid var(--line);background:#fff;padding:30px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.dhead .dimg img{max-width:100%;max-height:100%;object-fit:contain}
.dcode{font-size:11.5px;font-weight:700;letter-spacing:.15em;color:var(--orange)}
.dhead h1{font-size:clamp(23px,2.6vw,31px);color:var(--navy);margin-top:12px}
.dhead .intro{font-size:15px;color:var(--muted);margin-top:16px;line-height:1.75}
.ktbl{border-top:2px solid var(--navy);margin-top:26px}
.ktbl .r{display:grid;grid-template-columns:158px 1fr;gap:18px;padding:11px 0;border-bottom:1px solid var(--line2)}
.ktbl .r b{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding-top:2px}
.ktbl .r span{font-size:13.5px;color:#22303D}
.dact{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;align-items:center}
.dnote{margin-top:16px;font-size:12.5px;color:var(--faint);line-height:1.7}
.dsel{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--muted);cursor:pointer;user-select:none}
.dsel:hover{color:var(--navy)}
.dsec{padding-top:56px}
.sh{border-bottom:2px solid var(--navy);padding-bottom:12px;display:flex;align-items:baseline;gap:14px}
.sh h2{font-size:18px;color:var(--navy)}
.sh .m{margin-left:auto;font-size:12px;color:var(--faint);letter-spacing:.03em}
.rel{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:26px}
.rel a{display:block;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .15s}
.rel a:hover{background:var(--soft)}
.rel .pimg{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;max-height:150px}
.rel .pimg img{max-width:100%;max-height:150px;object-fit:contain}
.rel .pcode{display:block;font-size:10.5px;font-weight:700;letter-spacing:.11em;color:var(--orange);margin-top:14px}
.rel .pname{display:block;font-size:13px;font-weight:600;color:var(--navy);margin-top:6px;line-height:1.4}

/* ---------- generic content grids ---------- */
.grid3,.grid4{display:grid;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:28px}
.grid3{grid-template-columns:repeat(3,1fr)}
.grid4{grid-template-columns:repeat(4,1fr)}
.grid3 .c,.grid4 .c{padding:24px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.grid3 h3,.grid4 h3{font-size:14.5px;color:var(--navy)}
.grid3 p,.grid4 p{font-size:13px;color:var(--muted);margin-top:9px;line-height:1.6}
.grid3 .n,.grid4 .n{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.11em}
.grid4 h3{margin-top:12px}
.numrow{display:flex;gap:16px;align-items:baseline}
.numrow .n{font-size:11px;font-weight:800;color:var(--orange);letter-spacing:.08em;flex:0 0 auto}
.steplist{border-top:1px solid var(--line);margin-top:28px}
.steplist .r{display:grid;grid-template-columns:52px 210px 1fr;gap:22px;padding:20px 0;border-bottom:1px solid var(--line2);align-items:baseline}
.steplist .n{font-size:12px;font-weight:800;color:var(--orange);letter-spacing:.06em}
.steplist h3{font-size:14.5px;color:var(--navy)}
.steplist p{font-size:13.5px;color:var(--muted);line-height:1.65}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);margin-top:28px}
.duo .c{padding:24px 26px;border-right:1px solid var(--line)}
.duo .c:last-child{border-right:0}
.duo h3{font-size:13.5px;color:var(--navy);display:flex;align-items:center;gap:9px}
.duo h3::before{content:"";width:7px;height:7px;background:var(--orange);flex:0 0 auto}
.duo .c.no h3::before{background:var(--faint)}
.duo ul{margin-top:14px;display:grid;gap:10px}
.duo li{font-size:13.5px;color:var(--muted);line-height:1.6;padding-left:16px;position:relative}
.duo li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;background:var(--line);}
.duo .c.no li::before{background:var(--line)}

/* ---------- responsive ---------- */
@media(max-width:1240px){
  .menu a{padding:27px 12px;font-size:13.5px}
  .menu a.cta{padding:10px 14px;margin-left:8px}
  .nav{gap:26px}
}
@media(max-width:1100px){
  .pgrid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:1024px){
  .nav{position:relative}
  .menu{display:none}
  .menu.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;left:-28px;right:-28px;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:6px 0;z-index:60}
  .menu.open a{padding:14px 28px;border-bottom:1px solid var(--line2)}
  .menu.open a.cta{margin:10px 28px;padding:12px 20px;border-bottom:0;text-align:center}
  .burger{display:flex}
  .about .grid,.rfq .grid,.contact-grid,.dhead{grid-template-columns:1fr;gap:38px}
  .hpanel{width:68%;padding:34px 32px}
  .factsband .fbgrid{grid-template-columns:1fr 1fr;row-gap:16px}
  .factsband .r:nth-child(odd){border-left:0;padding-left:0}
  .cats{grid-template-columns:repeat(2,1fr)}
  .trade .grid{grid-template-columns:repeat(2,1fr)}
  .inds{grid-template-columns:repeat(2,1fr)}
  .layout{grid-template-columns:1fr;gap:26px}
  .idx{position:static;display:flex;flex-wrap:wrap;gap:8px;padding-bottom:22px;border-bottom:1px solid var(--line)}
  .idx .railcard{display:none}
  .idx h4,.idx .note{display:none}
  .idx a{border:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 11px;font-size:12.5px;gap:8px}
  .idx a.on{border-color:var(--navy);background:var(--soft)}
  .idx .sub{display:flex;flex-wrap:wrap;gap:8px}
  .idx .sub a{padding:7px 11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .idx .sub a .tt{-webkit-line-clamp:1}
  .idx .back{display:none}
  .fgrid{grid-template-columns:1fr 1fr;gap:32px}
  .chain{grid-template-columns:1fr}
  .chain .ar{padding:10px 20px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cols2{grid-template-columns:1fr;gap:34px}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .grid3,.grid4{grid-template-columns:repeat(2,1fr)}
  .rel{grid-template-columns:repeat(3,1fr)}
  .duo{grid-template-columns:1fr}
  .duo .c{border-right:0;border-bottom:1px solid var(--line)}
  .duo .c:last-child{border-bottom:0}
  .steplist .r{grid-template-columns:44px 1fr;gap:12px 18px}
  .steplist .r p{grid-column:2}
  .dhead .dimg{max-width:520px}
}
@media(max-width:640px){
  section{padding:52px 0}
  .hslide:nth-child(1) img{height:430px;object-position:72% 60%}
  .hslide:nth-child(2) img{height:300px;object-position:30% 50%}
  .hcap{flex-direction:column;align-items:flex-start;gap:14px;padding:18px 22px 22px}
  .hpanel{position:static;width:auto;background:var(--navy);border-right:0;border-top:1px solid rgba(255,255,255,.14);padding:28px 22px 32px}
  .hpanel h1{font-size:26px}
  .hnav{right:18px;bottom:16px}
  .hbar .ln{width:84px}
  .factsband .fbgrid{grid-template-columns:1fr}
  .factsband .r{border-left:0;padding-left:0}
  .cats{grid-template-columns:1fr}
  .trade .grid{grid-template-columns:1fr}
  .inds{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  form .fr{grid-template-columns:1fr}
  .wrap{padding:0 18px}
  .phead{padding:32px 0}
  .phead.hasbanner{padding:48px 0 44px;background-position:50% 30%}
  .pbody{padding:34px 0 52px}
  .layout{padding-top:34px;padding-bottom:52px}
  td.spec,.nm{white-space:normal}
  td.timg{display:none}
  .nitem{grid-template-columns:1fr;gap:10px}
  .nthumb img{aspect-ratio:16/9}
  .block-h{flex-wrap:wrap}
  .block-h .m{margin-left:0;width:100%}
  .pgrid,.rel,.grid3,.grid4{grid-template-columns:1fr}
  .catbar{flex-direction:column}
  .catbar a{text-align:left;border-right:0}
  .catbar a:last-child{border-right:0}
  .catblurb{flex-direction:column;gap:6px}
  .ktbl .r{grid-template-columns:1fr;gap:3px}
  .steplist .r{grid-template-columns:1fr;gap:6px}
  .steplist .r p{grid-column:1}
  .dhead .dimg{padding:18px}
}
