/* locus-pseo.css — programmatic SEO pages under /for/.
   Tokens read from computed styles on the live homepage, 31 Aug 2026, 1440px.
   Everything is scoped under .lps so this cannot leak into the rest of the theme. */
:root{
    --locus-maroon:#4A0E1A;
    --locus-maroon-mid:#83666C;
    --locus-maroon-light:#B94040;
    --locus-cream:#F5F0EB;
    --locus-cream-deep:#EDE6DC;
    --locus-cream-border:#D9D0C4;
    --locus-text-dark:#1A0808;
    --locus-text-mid:#4A2020;
    --locus-text-muted:#7A5C5C;
    --locus-body-text:#83666C;
    --locus-red:#FF6450;
    --locus-red-dark:#E0492F;
    --locus-border:#E8E0E0;
    --locus-off-white:#F7F7F7;
    --locus-white:#ffffff;
    --sec-white:#FFFFFF;
    --sec-warm:#FBFAF6;
    --font-heading:'Hanken Grotesk',sans-serif;
    --font-body:'Inter Display','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    --fw-heading:500; --fw-body:400;
    --fs-h1:60px; --fs-h2:48px; --fs-h3:24px; --fs-h4:28px; --fs-h6:18px;
    --lh-h1:1.2; --lh-h2:1.3; --lh-h3:1.4;
    --ls-h1:-2px; --ls-h2:-2px; --ls-h3:-0.3px; --ls-h4:-0.5px;
    --fs-lead:18px; --fs-body:18px; --fs-small:14px;
    --lh-body:25px; --ls-body:-0.41px;
    --sp-xs:8px; --sp-sm:16px; --sp-md:24px; --sp-lg:40px; --sp-xl:60px; --sp-2xl:80px; --sp-3xl:120px;
    --container-max:1200px; --container-text:780px; --container-pad:24px;
    --radius-cta:4px; --radius-pill:100px; --radius-sm:8px; --radius-md:16px; --radius-lg:24px;
    --transition-base:250ms ease;
    color-scheme:light;
  }
  body{margin:0;background:var(--sec-white);font-family:var(--font-body)}


  /* ── page, all scoped under .lps ── */
  .lps{font-family:var(--font-body);font-weight:var(--fw-body);color:var(--locus-body-text);
    font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
  .lps *{box-sizing:border-box}
  .lps .wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad)}
  .lps .narrow{max-width:var(--container-text)}
  .lps h1,.lps h2,.lps h3,.lps h4{font-family:var(--font-heading);font-weight:var(--fw-heading);
    color:var(--locus-maroon);margin:0;text-wrap:balance}
  .lps h1{font-size:clamp(34px,4.6vw,var(--fs-h1));line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}
  .lps h2{font-size:clamp(30px,3.6vw,var(--fs-h2));line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}
  .lps h3{font-size:var(--fs-h3);line-height:1.4;letter-spacing:var(--ls-h3)}
  .lps h4{font-size:20px;line-height:1.4;letter-spacing:var(--ls-h4)}
  .lps p,.lps li{letter-spacing:var(--ls-body)}
  .lps p{margin:0 0 var(--sp-sm);color:var(--locus-body-text);max-width:68ch}
  .lps .lead{font-size:var(--fs-lead);color:var(--locus-body-text)}
  .lps strong{color:var(--locus-text-dark);font-weight:600}
  .lps em{font-style:normal;color:var(--locus-red)}
  .lps a{color:var(--locus-maroon-light);text-underline-offset:3px}
  .lps section{padding:var(--sp-2xl) 0;background:var(--sec-white)}
  .lps section.warm{background:var(--sec-warm)}
  .lps .eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--locus-red);margin-bottom:14px}
  .lps .crumb{font-size:var(--fs-small);color:var(--locus-text-muted);margin-bottom:var(--sp-md);letter-spacing:0}
  .lps .crumb a{color:var(--locus-text-muted);text-decoration:none}
  .lps .crumb a:hover{color:var(--locus-red)}

  /* matches .btn.btn--primary.btn--lg on /request-a-demo/ */
  .lps .cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);
    font-size:16px;font-weight:600;letter-spacing:normal;padding:14px 28px;border-radius:var(--radius-pill);
    background:var(--locus-maroon);color:#FAF7F6;text-decoration:none;
    border:1.5px solid var(--locus-maroon);transition:var(--transition-base)}
  .lps .cta:hover{background:#38080F;border-color:#38080F}
  .lps .cta .arw{font-size:15px;line-height:1}
  .lps .cta-2{background:transparent;color:var(--locus-maroon);border-color:var(--locus-maroon)}
  .lps .cta-2:hover{background:var(--locus-cream)}
  .lps .cta:focus-visible{outline:2px solid var(--locus-red);outline-offset:3px}
  .lps .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--sp-lg)}
  .lps .textlink{font-size:14px;font-weight:600;color:var(--locus-red);text-decoration:none;letter-spacing:0}
  .lps .textlink:hover{color:var(--locus-red-dark);text-decoration:underline}

  .lps .measured{background:var(--sec-white);border:1px solid var(--locus-border);
    border-radius:var(--radius-md);padding:36px 40px;margin-top:var(--sp-xl)}
  section.warm .measured{background:var(--sec-white)}
  .lps .measured-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;
    flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--locus-border);margin-bottom:28px}
  .lps .measured-head h2{font-size:24px;line-height:1.4;letter-spacing:-0.5px}
  .lps .asof{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    color:var(--locus-text-muted);white-space:nowrap;display:flex;align-items:center;gap:8px}
  .lps .asof .next{font-weight:500;color:#A08888;text-transform:none;letter-spacing:0;font-size:12.5px}
  .lps .plain{background:var(--locus-cream);border-radius:var(--radius-sm);padding:18px 22px;
    margin:0 0 28px;font-size:16px;max-width:none;color:var(--locus-text-mid)}
  .lps .figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:30px;margin-bottom:32px}
  .lps .fig dt{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
    color:var(--locus-text-muted);margin-bottom:8px}
  .lps .fig dd{margin:0;font-family:var(--font-heading);font-size:44px;font-weight:500;
    color:var(--locus-maroon);letter-spacing:-2px;line-height:1}
  .lps .fig dd span{font-size:18px;color:var(--locus-body-text);letter-spacing:0}
  .lps .fig .sub{font-size:13.5px;line-height:1.5;color:var(--locus-text-muted);margin-top:10px;display:block;letter-spacing:var(--ls-body)}
  .lps .method{font-size:14px;line-height:1.65;color:var(--locus-text-muted);margin:26px 0 0;
    padding-top:20px;border-top:1px solid var(--locus-border);max-width:none;letter-spacing:0}
  .lps .method b{color:var(--locus-text-mid);font-weight:600}
  .lps figure{margin:0}
  .lps figcaption{font-size:13px;color:var(--locus-text-muted);margin-top:12px;letter-spacing:0}

  .lps .tblwrap{overflow-x:auto;border:1px solid var(--locus-border);border-radius:var(--radius-md);
    background:var(--sec-white);margin-top:var(--sp-lg)}
  .lps table{border-collapse:collapse;width:100%;font-size:15px;min-width:580px;letter-spacing:0}
  .lps th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    color:var(--locus-text-muted);padding:15px 20px;background:var(--locus-off-white);
    border-bottom:1px solid var(--locus-border);white-space:nowrap}
  .lps td{padding:15px 20px;border-bottom:1px solid var(--locus-border);color:var(--locus-body-text);vertical-align:top}
  .lps tbody tr:last-child td{border-bottom:none}
  .lps td strong{color:var(--locus-text-dark)}
  .lps td.num{font-variant-numeric:tabular-nums;white-space:nowrap}

  .lps details.faq{border-bottom:1px solid var(--locus-border);padding:24px 0}
  .lps details.faq:first-of-type{border-top:1px solid var(--locus-border)}
  .lps details.faq summary{font-family:var(--font-heading);font-size:20px;font-weight:500;
    color:var(--locus-maroon);cursor:pointer;list-style:none;display:flex;justify-content:space-between;
    gap:24px;letter-spacing:-0.5px}
  .lps details.faq summary::-webkit-details-marker{display:none}
  .lps details.faq summary::after{content:"+";font-size:26px;color:var(--locus-red);flex:none;line-height:1}
  .lps details.faq[open] summary::after{content:"–"}
  .lps details.faq p{margin:16px 0 0;font-size:16px}
  .lps details.faq summary:focus-visible{outline:2px solid var(--locus-red);outline-offset:4px;border-radius:4px}

  .lps .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--sp-md)}
  .lps .links a{font-size:14px;padding:10px 18px;border-radius:var(--radius-cta);background:var(--sec-white);
    border:1px solid var(--locus-border);color:var(--locus-maroon);text-decoration:none;
    transition:var(--transition-base);letter-spacing:0}
  .lps .links a:hover{border-color:var(--locus-red);color:var(--locus-red)}
  .lps .steps{display:grid;gap:2px;margin-top:var(--sp-lg);background:var(--locus-border);
    border:1px solid var(--locus-border);border-radius:var(--radius-md);overflow:hidden}
  .lps .step{background:var(--sec-white);padding:26px 30px}
  .lps .step h3{font-size:20px;line-height:1.4;letter-spacing:var(--ls-h4);margin-bottom:6px}
  .lps .step p{margin:0;font-size:16px}
  .lps .band{background:var(--locus-maroon);border-radius:var(--radius-md);padding:64px 48px;
    text-align:center;margin-top:var(--sp-xl)}
  .lps .band h2{color:#FFFFFF}
  .lps .band p{color:rgba(250,247,246,.72);margin:16px auto 0;max-width:56ch}
  .lps .band .cta-row{justify-content:center}
  .lps .band .cta{background:#FAF7F6;color:var(--locus-maroon);border-color:#FAF7F6}
  .lps .band .cta:hover{background:var(--locus-cream);border-color:var(--locus-cream)}
  .lps .band .cta-2{background:transparent;color:#FFFFFF;border-color:rgba(255,255,255,.32)}
  .lps .band .cta-2:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.32)}
  .lps .note{font-size:14px;color:var(--locus-text-muted);margin-top:var(--sp-md);letter-spacing:0}
  @media (max-width:860px){
    .lps section{padding:var(--sp-2xl) 0}
    .lps .measured{padding:24px 20px}
    .lps .band{padding:44px 24px}
    /* "Updated September 2026 - next update December" is deliberately one
       unbreakable line on desktop. At 375px it is 13px too wide and runs off
       the card, so let it wrap below 860. */
    .lps .asof{white-space:normal;flex-wrap:wrap}
  }
  @media (prefers-reduced-motion:reduce){.lps *{transition:none!important}}

  /* ── Clear the fixed chrome ──────────────────────────────────────────────
     WordPress core emits #global-styles-inline-css, which zeroes body padding
     with longhands and so cancels the body offset nav.css sets for the fixed
     hello bar and nav. Every other template compensates with its own top
     spacing; ours reserved 80px, which is less than the 108px of chrome, so
     the breadcrumb sat underneath it on all 883 pages.

     Read from nav.css's own variables rather than hard-coding 108px, so this
     follows the hello bar when a visitor dismisses it (the JS sets --ln-hb-h
     to 0) and still degrades sensibly if nav.css ever stops loading. */
  .lps > section:first-child{padding-top:calc(var(--ln-hb-h,0px) + var(--ln-nav-h,70px) + var(--sp-lg))}
  body.admin-bar .lps > section:first-child{padding-top:calc(32px + var(--ln-hb-h,0px) + var(--ln-nav-h,70px) + var(--sp-lg))}
