/* Folium top navigation: shared by every page, including the older ones
   that keep their own inline styles for everything else. */
.megabtn{cursor:pointer;color:var(--fo-muted);font-size:13px;background:none;border:none;font-family:inherit;display:inline-flex;align-items:center;gap:6px;padding:0;line-height:inherit}
.megabtn::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}
.megabtn:hover,.megabtn.on{color:var(--fo-night)}
.megabtn.on::after{transform:rotate(225deg) translateY(-2px)}
.mega{display:none;border-top:1px solid rgba(16,16,20,.08);background:var(--fo-paper);box-shadow:0 34px 60px -40px rgba(20,30,80,.5)}
.mega.open{display:block}
/* three columns held to a readable measure and left-aligned under the wordmark, then one
   quiet line across the foot. No promo card: the menu is a menu. */
.mega-grid{display:grid;grid-template-columns:repeat(4,minmax(0,320px));justify-content:start;gap:30px 52px;padding:34px 32px 30px;max-width:1520px;margin:0 auto}
.mega h6{font-family:var(--fo-serif);font-size:15px;letter-spacing:-.01em;text-transform:none;color:var(--fo-night);font-weight:600;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--fo-edge-soft)}
.mbig{display:block;text-decoration:none;color:var(--fo-night);padding:9px 0;border-bottom:1px solid var(--fo-edge-soft)}
.mbig:last-child{border-bottom:0}
.mbig b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}
.mbig span{display:block;font-size:12.5px;color:var(--fo-muted);margin-top:3px;line-height:1.55}
.mbig:hover b{color:var(--fo-brand)}
.mega-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-top:8px;padding-top:20px;border-top:1px solid var(--fo-edge-soft)}
.mega-foot span{font-size:13.5px;color:var(--fo-muted);line-height:1.55}
.mega-foot a{font-size:13.5px;font-weight:600;color:var(--fo-brand);text-decoration:none}
.mega-foot a:hover{text-decoration:underline}
/* two ragged grid columns leave a hole under the short group, so pack the panel with
   real columns at this width instead */
@media (max-width:1180px){
  .mega-grid{display:block;column-count:2;column-gap:48px;padding:30px 32px 26px}
  .mega-grid>div{break-inside:avoid;margin-bottom:28px}
  .mega-foot{column-span:all;margin-top:0}
}
@media (max-width:700px){
  .mega{max-height:74vh;overflow-y:auto}
  .mega-grid{grid-template-columns:1fr;gap:20px;padding:22px 20px 28px}
}

/* contact band at the foot of every solutions page */
/* The closing band. It carries real material: a mosaic of covers, plates and works,
   dissolved from the right into the night ground, so the copy always wins the left. */
.cta{position:relative;isolation:isolate;overflow:hidden;background:var(--fo-night,#101014);color:var(--fo-paper,#fff);margin-top:118px;padding:112px 0 116px;width:100vw;margin-left:calc(50% - 50vw)}
.cta::before{content:'';position:absolute;inset:-4% -2%;z-index:0;background:url(cta-wall.jpg) right center/cover;opacity:.66;
  -webkit-mask-image:linear-gradient(90deg,transparent 26%,rgba(0,0,0,.18) 40%,#000 80%,#000 94%,rgba(0,0,0,.7) 100%);mask-image:linear-gradient(90deg,transparent 26%,rgba(0,0,0,.18) 40%,#000 80%,#000 94%,rgba(0,0,0,.7) 100%)}
.cta::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,var(--fo-night,#101014) 0,var(--fo-night,#101014) 30%,rgba(16,16,20,.92) 47%,rgba(16,16,20,.6) 72%,rgba(16,16,20,.42) 100%),
             linear-gradient(0deg,rgba(16,16,20,.92),transparent 30%,transparent 72%,rgba(16,16,20,.78))}
.cta .wrap{position:relative;z-index:2;max-width:1520px;margin:0 auto;padding:0 32px}
.cta .wrap::before{content:'';display:block;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.22),rgba(255,255,255,0) 58%);margin-bottom:48px}
.cta .k{display:inline-block;position:relative;background:none;padding:0 0 0 15px;margin-bottom:22px;color:rgba(255,255,255,.72);font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.cta .k::before{content:'';position:absolute;left:0;top:.1em;bottom:.1em;width:3px;background:var(--fo-brand,#2742c9)}
.cta h2{font-size:clamp(34px,4.8vw,62px);font-weight:700;letter-spacing:-.042em;max-width:14ch;line-height:1.01;color:#fff;margin:0;text-wrap:balance}
.cta p{color:rgba(255,255,255,.74);font-size:17px;max-width:50ch;margin-top:20px;line-height:1.62}
.cta .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.cta .btn{display:inline-flex;align-items:center;gap:10px;padding:17px 28px;font-weight:600;font-size:15px;text-decoration:none;background:var(--fo-brand,#2742c9);color:#fff;border:1px solid transparent;transition:background .2s ease}
.cta .btn:not(.ghost)::after{content:'';width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);transition:translate .25s ease}
.cta .btn:not(.ghost):hover{background:#1b2f96}
.cta .btn:not(.ghost):hover::after{translate:5px 0}
.cta .btn.ghost{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cta .btn.ghost:hover{background:rgba(255,255,255,.12)}
@media (max-width:900px){
  .cta{margin-top:72px;padding:66px 0 70px}
  .cta .wrap{padding:0 20px}
  .cta .wrap::before{margin-bottom:32px}
  .cta::before{inset:0;opacity:.3;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 62%);mask-image:linear-gradient(180deg,transparent 0,#000 62%)}
  .cta::after{background:linear-gradient(180deg,var(--fo-night,#101014) 0,rgba(16,16,20,.94) 44%,rgba(16,16,20,.86) 100%)}
}


