/* pp-masthead.css — shared masthead component (ppm-*). v1.
   Stamped statically by tools/masthead/stamp_masthead.mjs; namespaced so legacy per-page
   .masthead/.nav rules can never restyle it. Design tokens match firm-intel.css. */
.ppm-masthead{--ppm-ink:#0a0a0a;--ppm-ink2:#1a1a18;--ppm-paper:#f4f1ea;--ppm-accent:#ff5722;--ppm-accent-dark:#d63f0e;
  background:var(--ppm-ink);color:var(--ppm-paper);padding:11px 0;border-bottom:3px solid var(--ppm-accent);
  font-family:'Inter',-apple-system,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;
  position:static;margin:0;box-shadow:none}
.ppm-masthead *{box-sizing:border-box}
.ppm-wrap{max-width:1100px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:24px}
.ppm-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ppm-paper);flex-shrink:0}
.ppm-mark{width:24px;height:24px;background:var(--ppm-accent);position:relative;flex-shrink:0;display:block}
.ppm-mark::before{content:"";position:absolute;inset:5px;border-left:2px solid var(--ppm-ink);border-top:2px solid var(--ppm-ink)}
.ppm-name{font-weight:900;font-size:15px;letter-spacing:-0.015em;text-transform:uppercase;white-space:nowrap}
.ppm-name em{font-style:normal;color:var(--ppm-accent);font-weight:900}
/* Defensive declarations: many legacy pages carry GENERIC element rules (e.g. the articles'
   `nav { position:sticky; background:white; padding:14px; border-bottom:... }`). Class
   selectors outrank them, but only for properties we actually declare — so declare them. */
.ppm-nav{display:flex;gap:22px;margin-left:6px;min-width:0;position:static;background:transparent;border:0;padding:0;margin-top:0;margin-bottom:0;backdrop-filter:none;box-shadow:none}
.ppm-nav a{color:#cfcabb;font-size:13.5px;font-weight:600;text-decoration:none;white-space:nowrap;padding:2px 0;background:none;border:0;margin:0}
.ppm-nav a:hover{color:#fff}
.ppm-nav a.ppm-on{color:#fff;box-shadow:0 2px 0 var(--ppm-accent)}
.ppm-nav a:focus-visible,.ppm-right a:focus-visible,.ppm-menubtn:focus-visible,.ppm-mobnav a:focus-visible{outline:2px solid var(--ppm-accent);outline-offset:2px;border-radius:2px}
.ppm-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
/* Reserved widths: signed-in swap ("Sign in"->"Account", trial->"Open projects") must not
   shift layout (Nav_Implementation_Plan_v2.0 amendment 6). */
.ppm-signin{font-size:13px;font-weight:600;color:var(--ppm-paper);text-decoration:none;white-space:nowrap;
  border:1px solid #3d3d3a;padding:7px 14px;border-radius:8px;min-width:96px;text-align:center}
.ppm-signin:hover{border-color:var(--ppm-accent);color:var(--ppm-accent)}
.ppm-trial{background:var(--ppm-accent);color:#fff;font-weight:800;font-size:13px;letter-spacing:.02em;
  text-transform:uppercase;padding:9px 16px;border-radius:8px;text-decoration:none;white-space:nowrap;
  min-width:196px;text-align:center;display:inline-block}
.ppm-trial:hover{background:var(--ppm-accent-dark)}
.ppm-trial-short{display:none}
/* ---- mobile disclosure (native <details>: opens with zero JS) ---- */
.ppm-menu{display:none;position:relative}
.ppm-menubtn{list-style:none;cursor:pointer;border:1px solid #3d3d3a;border-radius:8px;padding:8px 10px;display:flex;align-items:center}
.ppm-menubtn::-webkit-details-marker{display:none}
.ppm-menuicon{display:block;width:16px;height:2px;background:var(--ppm-paper);position:relative}
.ppm-menuicon::before,.ppm-menuicon::after{content:"";position:absolute;left:0;width:16px;height:2px;background:var(--ppm-paper)}
.ppm-menuicon::before{top:-5px}.ppm-menuicon::after{top:5px}
.ppm-menu[open] .ppm-menubtn{border-color:var(--ppm-accent)}
.ppm-mobnav{position:absolute;right:0;top:calc(100% + 10px);z-index:200;min-width:220px;background:var(--ppm-ink2);
  border:1px solid #333;border-radius:10px;overflow:hidden;box-shadow:0 18px 44px rgba(10,10,10,.45);padding:4px 0;margin:0;backdrop-filter:none}
.ppm-mobnav a{display:block;color:#e8e4d8;font-size:14.5px;font-weight:600;text-decoration:none;padding:12px 18px;border-bottom:1px solid #2a2a27;background:none;margin:0}
.ppm-mobnav a:last-child{border-bottom:0}
.ppm-mobnav a.ppm-mob-on{color:#fff;border-left:3px solid var(--ppm-accent);padding-left:15px}
@media (max-width:860px){
  .ppm-nav{display:none}
  .ppm-signin{display:none}
  .ppm-menu{display:block}
  .ppm-wrap{gap:14px;padding:0 14px}
}
@media (max-width:560px){
  .ppm-trial{min-width:0;padding:8px 12px}
  .ppm-trial-long{display:none}
  .ppm-trial-short{display:inline}
}
/* ---- firm-intel sub-nav on mobile: one scrollable row instead of 3 wrapped rows,
   so two nav levels don't eat half the phone screen (plan v2.0 amendment 7). The
   firmnav itself lives in firm-intel.css; this narrow override rides with the masthead
   because firm pages now load this file. ---- */
@media (max-width:760px){
  .firmnav .wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .firmnav .wrap::-webkit-scrollbar{display:none}
  .firmnav a,.firmnav .mkt{flex-shrink:0}
}
/* ---- city proof strip (N2; sits directly under the masthead; the cron-maintained
   PP:*_HUB_MAST marker pair lives INSIDE .ppm-proofstrip-inner untouched) ---- */
.ppm-proofstrip{background:#ebe7dd;border-bottom:1px solid #d8d3c4;padding:8px 0;color:#3d3d3a}
.ppm-proofstrip-inner{max-width:1100px;margin:0 auto;padding:0 20px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.ppm-proofstrip b{color:#0a0a0a;font-weight:800}
