/* The public-site masthead, shared by every campaign landing page. Keep this
   geometry in sync with index.html: it is the LeadSignal signal mark, not an
   approximation made separately for each page. */
.ls-brand{display:flex;align-items:center;text-decoration:none;color:inherit}
.ls-logostack{display:inline-flex;flex-direction:column;line-height:1.02}
.ls-logotop{display:inline-flex;align-items:center;gap:12px}
.ls-signalmark{position:relative;width:16px;height:16px;flex:none}
.ls-signalmark::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#7c3aed;box-shadow:0 0 8px #7c3aed}
.ls-signalmark i{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;border:1.5px solid #7c3aed;animation:ls-radiowave 2.8s ease-out infinite}
.ls-signalmark i:nth-child(2){animation-delay:1.4s}
.ls-logo{font:800 25px Figtree,sans-serif;letter-spacing:-.02em}
.ls-logo span{color:#7c3aed}
.ls-byline{font:700 9px Figtree,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#756b83;margin-top:3px;margin-left:28px}
.ls-brand--compact .ls-logo{font-size:16px}
.ls-brand--compact .ls-signalmark{transform:scale(.72);transform-origin:left center;margin-right:-4px}
.ls-brand--compact .ls-byline{display:none}
@keyframes ls-radiowave{0%{transform:scale(.4);opacity:.75}80%{opacity:0}100%{transform:scale(3.6);opacity:0}}
@media(prefers-reduced-motion:reduce){.ls-signalmark i{display:none}}

/* ---- Products menu ---------------------------------------------------------
   One dropdown, shared by every page's masthead, because the site now sells
   three separate things and a flat nav could only ever name one of them.
   The panel is deliberately opaque white on every page: the palette is the same
   light one site-wide, and a translucent menu over a hero animation is a menu
   nobody can read. Opens on hover for a mouse AND on click for touch and
   keyboard — hover alone is a dead end on a phone. */
.ls-navdrop{position:relative;display:inline-flex}
.ls-navdrop>button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;font-family:inherit;color:inherit}
.ls-navdrop>button svg{width:13px;height:13px;transition:transform .18s ease}
.ls-navdrop.on>button svg,.ls-navdrop:hover>button svg{transform:rotate(180deg)}
.ls-navmenu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:310px;background:#fff;border:1px solid #e8e2f3;border-radius:14px;padding:8px;
  box-shadow:0 26px 60px -22px #1b123055,0 4px 14px -6px #1b123022;
  opacity:0;visibility:hidden;transition:opacity .16s ease,transform .16s ease,visibility .16s;z-index:60}
.ls-navdrop:hover .ls-navmenu,.ls-navdrop.on .ls-navmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
/* The gap between button and panel would otherwise drop the hover on the way
   down and the menu would flicker shut under the cursor. */
.ls-navdrop::after{content:"";position:absolute;top:100%;left:0;right:0;height:12px}
.ls-navmenu a{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;border-radius:10px;text-decoration:none;color:#1b1230;transition:background .13s ease}
/* The icon column. LeadSignal DM wears the real signal mark, animated,
   because it IS the mark — the other two are line icons at a matching
   weight. Never emoji: house rule. */
.ls-navmi{flex:none;width:26px;height:26px;display:grid;place-items:center;color:#6d28d9;margin-top:1px}
.ls-navmi svg{width:19px;height:19px}
.ls-navmark{transform:scale(.92)}
.ls-navtext{min-width:0}
.ls-navmenu a:hover{background:#f4f0fb}
.ls-navmenu a b{display:block;font-size:15px;font-weight:700;letter-spacing:-.01em}
.ls-navmenu a span{display:block;font-size:12.5px;line-height:1.45;color:#6c6386;margin-top:2px}
.ls-navmenu a[aria-current]{background:#6d28d90d;box-shadow:inset 2px 0 0 #6d28d9}
/* Phones get the same three products as plain rows — a dropdown inside a
   slide-out menu is a drawer inside a drawer. */
.mobnav .ls-mobhead{font:700 10px Figtree,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6c6386;padding:14px 0 2px}
@media(prefers-reduced-motion:reduce){.ls-navmenu{transition:none}}
