/* shared header + footer — markup is baked into each page so nothing shifts on load */
.topfix{display:contents}
.hdr{position:sticky;top:0;z-index:60;background:var(--white)}
.banner{background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 44px 0 15px;font-size:14px;position:relative;z-index:60}
.banner a{color:var(--white);text-decoration:underline}
.banner .bx{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--white);cursor:pointer;padding:8px;display:flex}
.banner.off{display:none}
.hdr{background:var(--white);border-bottom:1px solid var(--grey-2)}
.hdr .in{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:59px;padding:0 15px}
.brand{font-size:21px;font-weight:600;color:var(--ink);text-decoration:none;text-transform:lowercase}
.foot{background:var(--ink);color:var(--white);margin-top:32px}
.foot::before{content:"";display:block;height:36px;background:var(--white);border-radius:0 0 30px 30px}
.foot .fin{max-width:720px;margin:0 auto;padding:48px 15px calc(32px + env(safe-area-inset-bottom))}
.foot a{text-decoration:none}
.fgroup{border-bottom:.5px solid var(--white)}
.fgroup:first-child{border-top:.5px solid var(--white)}
.fhead{display:flex;align-items:center;justify-content:space-between;width:100%;height:56px;font-family:inherit;font-size:16px;font-weight:400;color:var(--white);background:none;border:0;cursor:pointer;padding:0}
.fgroup .fchev{flex:none;color:var(--white);transition:transform .25s ease}
.fgroup.open .fchev{transform:rotate(90deg)}
.fbody{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.2,.7,.3,1)}
.fgroup.open .fbody{grid-template-rows:1fr}
.fbody nav{overflow:hidden;min-height:0;display:flex;flex-direction:column}
.fbody nav a{color:var(--grey-4);font-size:15px;font-weight:500;padding:9px 0}
.fgroup.open .fbody nav{padding-bottom:14px}
.fbot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:36px;font-size:12px;font-weight:400;color:var(--grey-4);position:relative}
.fcta{padding-bottom:40px}
.fcta h3{font-size:23px;font-weight:400;line-height:1.3;color:var(--white)}
.fctabtns{display:flex;gap:10px;margin-top:22px}
.fctabtns a{display:flex;align-items:center;justify-content:center;height:45px;padding:0 22px;border-radius:4px;font-size:14px;font-weight:500;white-space:nowrap}
.fdemo2{background:var(--white);color:var(--ink);border:1px solid var(--grey-3)}
.fget2{background:var(--yellow);color:var(--ink)}
.fpol a{color:var(--grey-4);text-decoration:underline}
.fsoc{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:28px}
.fsoc a{color:var(--grey-4);font-size:12px;font-weight:400;text-decoration:underline}
.flegal{margin-top:24px;font-size:11px;font-weight:400;line-height:1.65;color:var(--grey-4);padding-bottom:8px}@media(min-width:720px){.fgroups{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.fgroup,.fgroup:first-child{border:0}
.fhead{pointer-events:none;height:auto;margin-bottom:6px}
.fgroup .fchev{display:none}
.fbody{grid-template-rows:1fr}}/* shared burger menu */
.burger{background:var(--grey-1);border:0;border-radius:4px;cursor:pointer;padding:9px 11px;display:flex;flex-direction:column;justify-content:center;gap:4px;width:42px;height:38px;color:var(--ink)}
.bb{display:block;width:20px;height:2px;background:var(--ink);transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .18s}
.burger.x .b1{transform:translateY(6px) rotate(45deg)}
.burger.x .b2{opacity:0;transform:scaleX(0)}
.burger.x .b3{transform:translateY(-6px) rotate(-45deg)}
.menu{position:fixed;inset:0;background:var(--white);z-index:40;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s;overflow:hidden}
.menu.open{opacity:1;visibility:visible;transition:opacity .22s ease}
.menu .in{max-width:720px;margin:0 auto;padding:120px 15px calc(16px + env(safe-area-inset-bottom));height:100%;display:flex;flex-direction:column;box-sizing:border-box}
.menu a{display:flex;align-items:center;justify-content:space-between;height:60px;font-size:17px;font-weight:500;color:var(--ink);padding:0;border-bottom:1px solid var(--grey-2);opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s cubic-bezier(.2,.7,.3,1)}
.menu a svg{color:var(--ink);flex:none}
.subpanel{position:absolute;inset:0;background:var(--white);transform:translate3d(100%,0,0);overflow:hidden;z-index:2;will-change:transform;backface-visibility:hidden}
.menu .in{transform:translate3d(0,0,0);will-change:transform}
.subpanel .in2{max-width:720px;margin:0 auto;padding:120px 15px 150px}
.subpanel a{display:flex;align-items:center;height:60px;font-size:17px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--grey-2)}
#sp-product a,#sp-industries a{flex-direction:column;align-items:flex-start;justify-content:center}
#sp-product a b,#sp-industries a b{font-size:15px;font-weight:600;line-height:1.25}
#sp-product a span,#sp-industries a span{display:block;width:100%;font-size:13px;font-weight:400;color:var(--grey-5);line-height:1.35;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand{transition:opacity .14s ease}
.hdr.suback .brand{opacity:0;pointer-events:none}
.backbtn{position:absolute;background:var(--grey-1);border:0;border-radius:4px;cursor:pointer;padding:9px 12px 9px 8px;align-items:center;gap:4px;font-family:inherit;font-size:15px;font-weight:600;opacity:0;transition:opacity .14s ease,visibility 0s linear .14s;color:var(--ink)}
.hdr .in{position:relative}
.backbtn{left:15px;top:11px;display:flex;visibility:hidden}
.hdr.suback .backbtn{visibility:visible;opacity:1;transition:opacity .14s ease}
.mcta{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));padding:0 15px;max-width:720px;margin:0 auto;box-sizing:border-box;display:flex;flex-direction:column;gap:10px;z-index:3}
.menu .mcta a{height:45px;border:0;border-radius:4px;justify-content:center;font-size:14px;font-weight:500}
.menu .mcta .mdemo{background:var(--ink);color:var(--white)}
.menu .mcta .mget{background:var(--yellow);color:var(--ink)}
.menu.open .mcta a{transition-delay:.35s}
.menu.open a{opacity:1;transform:none}
.menu.open a:nth-child(1){transition-delay:.05s}
.menu.open a:nth-child(2){transition-delay:.10s}
.menu.open a:nth-child(3){transition-delay:.15s}
.menu.open a:nth-child(4){transition-delay:.20s}
.menu.open a:nth-child(5){transition-delay:.25s}
.menu.open a:nth-child(6){transition-delay:.30s}
