/* Al Q Analytic: shared styles (design tokens, base, brand, buttons, footer, menu overlay) */
:root{
  --navy-ink:#062365; --royal-blue:#0B56DF; --electric-blue:#0076F8; --deep-cobalt:#01308F;
  --azure:#0293FE; --cyan-spark:#03B7FE; --ice-white:#F4F8FF; --mist-blue:#E3EDFB;
  --slate:#5B6B8C; --white:#FFFFFF; --signal-amber:#FFB020;
  --font-montserrat:'Montserrat',sans-serif; --font-nunito:'Nunito',sans-serif;
  --text-heading-1:400 32px/1.5 var(--font-montserrat);
  --text-heading-2:400 24px/1.5 var(--font-nunito);
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --gutter:clamp(20px,5vw,72px); --maxw:1200px;
}
body{margin:0}
*{box-sizing:border-box}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);position:relative}
.eyebrow{font-family:var(--font-montserrat);font-weight:600;font-size:13px;letter-spacing:.22em;text-transform:uppercase}
.pat{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;color:var(--cyan-spark);opacity:.08}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:var(--font-montserrat);font-weight:700;font-size:18px;color:var(--white)}
.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:var(--white);cursor:pointer;border-radius:50%;transition:background 180ms}
.icon-btn:hover{background:rgba(255,255,255,.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;font-family:var(--font-montserrat);font-weight:700;font-size:15px;letter-spacing:.03em;transition:transform 180ms ease,box-shadow 180ms ease,background 180ms,border-color 180ms}
.btn svg{flex:none}
.btn-amber{background:var(--signal-amber);color:var(--navy-ink)}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,176,32,.45)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.55);color:var(--white)}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:var(--white)}
.btn.sm{min-height:44px;padding:0 20px;font-size:14px}
.foot{background:var(--mist-blue);padding:44px 0;color:var(--navy-ink)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:center}
.foot .tag{margin-top:6px;font-family:var(--font-montserrat);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--royal-blue)}
.foot .right{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;font-size:15px}
.foot .right a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color 180ms}
.foot .right a:hover{text-decoration-color:var(--navy-ink)}
[hidden]{display:none!important}
button.icon-btn{padding:0;font:inherit}
.nav-r{display:flex;align-items:center;gap:8px}

/* slide-in container for the menu (contents styled below, from the Menu mockup) */
.mn-overlay{position:fixed;inset:0;z-index:1000;overflow-y:auto;overscroll-behavior:contain;background:var(--ice-white);transform:translateX(-100%);visibility:hidden;transition:transform .5s var(--ease-out),visibility 0s linear .5s}
.mn-overlay.is-open{transform:none;visibility:visible;transition:transform .5s var(--ease-out),visibility 0s}
html.mn-lock,html.mn-lock body{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .mn-overlay,.mn-overlay.is-open{transition:none}
}

/* ============ MENU OVERLAY ============ */
.mn{font-family:var(--font-nunito);color:var(--navy-ink);min-height:max(100vh,760px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--ice-white);-webkit-font-smoothing:antialiased;overflow-x:clip}
.mn a{color:inherit;text-decoration:none}
.mn ul{list-style:none;margin:0;padding:0}
.mn p{margin:0}
.mn a:focus-visible,.mn button:focus-visible{outline:3px solid var(--cyan-spark);outline-offset:4px;border-radius:8px}
.mn-pane-l{position:relative;display:flex;flex-direction:column;padding:40px clamp(24px,7vw,108px) 48px;border-right:1px solid rgba(6,35,101,.1);overflow:hidden}
.mn-logo{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-family:var(--font-montserrat);font-weight:700;font-size:18px;color:var(--navy-ink)}
.mn-primary{margin-top:clamp(56px,10vh,130px);display:flex;flex-direction:column;gap:clamp(10px,2.4vh,28px)}
.mn-pi{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:64px;padding:0;border:0;background:transparent;cursor:pointer;text-align:left;font-family:var(--font-montserrat);font-weight:300;font-size:clamp(34px,4vw,56px);line-height:1.1;letter-spacing:-0.015em;color:var(--slate);transition:color 220ms ease}
.mn-pi:hover{color:var(--navy-ink)}
.mn-pi .mn-lbl{position:relative;display:inline-flex;align-items:center;gap:18px}
.mn-pi .mn-lbl::before{content:"";width:0;height:12px;border-radius:3px;background:linear-gradient(180deg,var(--azure),var(--cyan-spark));transition:width 260ms var(--ease-out)}
.mn-pi.on{color:var(--navy-ink);font-weight:500}
.mn-pi.on .mn-lbl::before{width:12px}
.mn-pi .mn-chev{flex:none;color:var(--azure);transition:transform 220ms var(--ease-out),color 220ms}
.mn-pi.on .mn-chev{color:var(--royal-blue);transform:translateX(6px)}
.mn-socials{margin-top:auto;padding-top:48px;display:flex;flex-wrap:wrap;gap:14px}
.mn-soc{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(6,35,101,.14);background:var(--white);color:var(--navy-ink);transition:background 180ms,color 180ms,border-color 180ms}
.mn-soc:hover{background:var(--navy-ink);color:var(--white);border-color:var(--navy-ink)}
.mn-soc svg{width:22px;height:22px}
.mn-px{position:absolute;border-radius:3px;background:linear-gradient(180deg,var(--azure),var(--cyan-spark));opacity:.16;pointer-events:none}
.mn-pane-r{position:relative;display:flex;flex-direction:column;padding:40px clamp(24px,7vw,112px) 48px;background:var(--mist-blue);overflow:hidden}
.mn-pat{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;color:var(--royal-blue);opacity:.06}
.mn-close{position:relative;align-self:flex-end;width:56px;height:56px;border-radius:50%;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--navy-ink);cursor:pointer;transition:background 180ms,transform 220ms var(--ease-out)}
.mn-close:hover{background:rgba(6,35,101,.08);transform:rotate(90deg)}
.mn-sub{position:relative;margin-top:clamp(40px,8vh,110px)}
.mn-sub-k{font-family:var(--font-montserrat);font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--royal-blue)}
.mn-sub ul{margin-top:28px;display:flex;flex-direction:column;gap:6px}
.mn-si{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:10px 0;border-bottom:1px solid rgba(6,35,101,.1);font-family:var(--font-nunito);font-weight:600;font-size:clamp(20px,1.7vw,24px);line-height:1.3;color:var(--slate);opacity:0;transform:translateX(16px);animation:mn-slidein .5s var(--ease-out) forwards;transition:color 180ms}
.mn-si small{display:block;margin-top:2px;font-family:var(--font-montserrat);font-weight:600;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);opacity:.85}
.mn-si svg{flex:none;color:var(--royal-blue);opacity:0;transform:translateX(-6px);transition:opacity 180ms,transform 180ms}
.mn-si:hover{color:var(--navy-ink)}
.mn-si:hover svg{opacity:1;transform:translateX(0)}
@keyframes mn-slidein{to{opacity:1;transform:translateX(0)}}
.mn-contact{position:relative;margin-top:auto;padding-top:40px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.mn-contact p{font-size:15.5px;line-height:1.5;color:var(--slate)}
.mn-contact strong{display:block;font-weight:800;color:var(--navy-ink)}
.mn-cta{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;background:var(--signal-amber);color:var(--navy-ink);font-family:var(--font-montserrat);font-weight:700;font-size:15px;letter-spacing:.03em;transition:transform 180ms,box-shadow 180ms}
.mn-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,176,32,.45)}
@media (max-width:860px){
  .mn{grid-template-columns:minmax(0,1fr)}
  .mn-pane-l{border-right:0;border-bottom:1px solid rgba(6,35,101,.1);padding-bottom:36px}
  .mn-primary{margin-top:40px}
  .mn-socials{padding-top:32px}
  .mn-pane-r{padding-top:24px}
  .mn-close{position:absolute;top:-116px;right:16px}
  .mn-pane-r{overflow:visible}
  .mn-sub{margin-top:8px}
}
@media (prefers-reduced-motion:reduce){
  .mn-si{animation:none;opacity:1;transform:none}
}
