/* Shared by the landing page, /products/ and /services/ */
  :root{
    --purple:#7D39C6; --purple-dark:#5A2A91; --plum:#2A1245; --plum-2:#38195C;
    --paper:#FBFAFD; --lilac:#F3EDFA; --ink:#1D1627; --soft:#6B647A; --line:#E4DCEF;
    --blue:#2563EB; --blue-dark:#1E3FA8; --navy:#0F2152; --blue-tint:#EAF1FF;
    --amber:#F4B942; --green:#37C98B;
    --max:1120px;
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; scroll-padding-top:84px; }
  body{ margin:0; background:var(--paper); color:var(--ink); font-family:'Lato',sans-serif; font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; }
  h1,h2,h3{ font-family:'Oswald',sans-serif; font-weight:600; line-height:1.12; margin:0; letter-spacing:.1px; }
  p{ margin:0; }
  a{ color:inherit; text-decoration:none; }
  svg{ display:block; }
  .wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }
  :focus-visible{ outline:3px solid var(--amber); outline-offset:3px; border-radius:6px; }
  .sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

  .btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:10px; padding:12px 24px; font-family:'Lato',sans-serif; font-weight:700; font-size:15px; border:2px solid transparent; cursor:pointer; transition:transform .15s ease, background .15s ease, border-color .15s ease; }
  .btn:hover{ transform:translateY(-1px); }
  .btn-purple{ background:var(--purple); color:#fff; }
  .btn-purple:hover{ background:var(--purple-dark); }
  .btn-line{ border-color:var(--ink); color:var(--ink); background:transparent; }
  .btn-line:hover{ background:var(--ink); color:#fff; }
  .btn-light{ background:#fff; color:var(--plum); }
  .btn-blue{ background:var(--blue); color:#fff; }

  /* nav */
  header{ position:sticky; top:0; z-index:50; background:rgba(251,250,253,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
  .nav{ display:flex; align-items:center; justify-content:space-between; height:68px; gap:20px; }
  .nav img{ height:26px; width:auto; }
  .nav-links{ display:flex; align-items:center; gap:28px; font-weight:700; font-size:15px; color:var(--soft); }
  .nav-links a:hover{ color:var(--ink); }
  .nav .btn{ padding:8px 18px; font-size:14px; }
  .menu-btn{ display:none; background:none; border:0; padding:8px; color:var(--ink); cursor:pointer; }


  /* sections */
  .section{ padding:84px 0; }
  .section h2{ font-size:clamp(30px,3.6vw,42px); max-width:16em; }
  .section .sub{ margin-top:14px; color:var(--soft); max-width:36em; font-size:18px; }

  /* closing */
  .closing{ background:var(--purple); color:#fff; padding:76px 0; }
  .closing .wrap{ display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
  .closing h2{ font-size:clamp(30px,3.6vw,42px); max-width:14em; }
  .closing p{ margin-top:10px; color:rgba(255,255,255,.82); }
  .closing .ctas{ display:flex; gap:12px; flex-wrap:wrap; }
  .closing .btn-ghost{ border-color:rgba(255,255,255,.7); color:#fff; }
  .closing .btn-ghost:hover{ background:#fff; color:var(--purple-dark); }

  footer{ padding:30px 0; font-size:14px; color:var(--soft); }
  footer .wrap{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center; }
  footer img{ height:20px; width:auto; }


  .section.tint{ background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .page-hero{ padding:64px 0 28px; }
  .page-hero h1{ font-size:clamp(36px,4.6vw,54px); font-weight:700; max-width:15em; }
  .page-hero .lede{ margin-top:18px; font-size:18px; color:var(--soft); max-width:34em; }
  .crumb{ font-size:14px; color:var(--soft); margin-bottom:18px; }
  .crumb a:hover{ color:var(--ink); text-decoration:underline; }
  .nav-links a[aria-current="page"]{ color:var(--ink); }
  .js-contact[hidden]{ display:none !important; }
  @media (max-width:900px){
    .section{ padding:64px 0; }
    .nav-links{ display:none; position:absolute; top:68px; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; padding:8px 24px 16px; }
    .nav-links.open{ display:flex; }
    .nav-links a{ padding:12px 0; }
    .nav > .btn{ display:none; }
    .menu-btn{ display:block; }
  }
  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; } *{ animation:none !important; transition:none !important; }
  }
  .modules a:hover span{ border-color:var(--purple); color:var(--purple-dark); }
