/* Global design tokens (Claude 2026-06-16) - make .ptnx-* card components render on any page (hubs, migrated pages), not just single notes */
:root{--ink:#0f1729;--line:#e7e8ec;--muted:#5b6472;--card:#fff;--up:#15803d;--down:#dc2626;--page:#f5f6f8}
html[data-theme="dark"]{--ink:#f2f3f5;--line:#2b2e36;--muted:#9aa0aa;--card:#1a1c21;--up:#34d399;--down:#f87171;--page:#0b0c0d}

/* Site-wide button coherence — loads on every front-end page.
   Unifies the "Load More" and brand-filter buttons with the widget's style. */

/* remove Uncode's custom cursor sitewide */
#uncode-custom-cursor, #uncode-custom-cursor-pilot { display: none !important; }

/* =========================================================================
   DARK MODE — html[data-theme="dark"]. Toggle + no-flash init ship via JS.
   Palette from the demos: bg #0a0b0d · card #1a1c21 · ink #f2f3f5 ·
   green #3ddc84 · red #ff6b6b. The homepage (.pth) and company widget (.ptc)
   are built on CSS vars, so we just remap those; the rest is explicit.
   ========================================================================= */
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="dark"] body,
html[data-theme="dark"] .box-wrapper,html[data-theme="dark"] .box-container,
html[data-theme="dark"] .main-container,html[data-theme="dark"] .main-wrapper,
html[data-theme="dark"] .sections-container,html[data-theme="dark"] .page-wrapper,
html[data-theme="dark"] .header-wrapper,
html[data-theme="dark"] .page-body,html[data-theme="dark"] .style-light-bg,
html[data-theme="dark"] .post-content,html[data-theme="dark"] .row-parent,
html[data-theme="dark"] .single-content{background:#0a0b0d!important}
/* the markRevamp() helper forces the theme's containers WHITE (so the light .ptnx
   note sits on white) — that override is more specific than the rule above, so in
   dark mode it would bleed white. Re-darken with matching specificity here. */
html[data-theme="dark"] .pt-revamp,
html[data-theme="dark"] .pt-revamp .box-wrapper,html[data-theme="dark"] .pt-revamp .box-container,
html[data-theme="dark"] .pt-revamp .main-container,html[data-theme="dark"] .pt-revamp .sections-container,
html[data-theme="dark"] .pt-revamp .header-wrapper{background:#0a0b0d!important}
/* the theme paints headings + content text on style-light-bg dark; flip to light */
html[data-theme="dark"] .pth h1,html[data-theme="dark"] .pth h2,html[data-theme="dark"] .pth h3,
html[data-theme="dark"] .pth-h1,html[data-theme="dark"] .pth-head h2,
html[data-theme="dark"] .page-body h1,html[data-theme="dark"] .page-body h2,html[data-theme="dark"] .page-body h3,
html[data-theme="dark"] .page-body .heading-text h1,html[data-theme="dark"] .page-body .heading-text h2{color:#f2f3f5!important}
/* About / Contact (WP pages, body.page): their WPBakery heading-text + text blocks
   hard-code BLACK text/links, which vanish on the dark bg. Force them light. Scoped
   to body.page so single notes (body.single, .ptnx) are untouched. */
html[data-theme="dark"] body.page .heading-text,
html[data-theme="dark"] body.page .heading-text *,
html[data-theme="dark"] body.page .el-text,
html[data-theme="dark"] body.page .wpb_text_column,
html[data-theme="dark"] body.page .post-content p,
html[data-theme="dark"] body.page .post-content li,
html[data-theme="dark"] body.page .post-content span{color:#dfe3e8!important}
html[data-theme="dark"] body.page .heading-text a,
html[data-theme="dark"] body.page .post-content a{color:#f2f3f5!important}
/* and keep the page containers/side-bands dark (no white bleed) */
html[data-theme="dark"] body.page .main-container,html[data-theme="dark"] body.page .sections-container,
html[data-theme="dark"] body.page .box-container,html[data-theme="dark"] body.page .box-wrapper,
html[data-theme="dark"] body.page .row-container,html[data-theme="dark"] body.page .row-parent,
html[data-theme="dark"] body.page .vc_row{background:#0a0b0d!important}
/* light info / disclaimer boxes (e.g. the company-page verbatim notice) → dark */
html[data-theme="dark"] .uncode-info-box,html[data-theme="dark"] blockquote,
html[data-theme="dark"] .page-body .style-light-bg.uncol{background:#121317!important;border-color:#2e3138!important}
html[data-theme="dark"] .uncode-info-box,html[data-theme="dark"] .uncode-info-box *{color:#c7ccd4!important}
/* footer */
html[data-theme="dark"] .site-footer,html[data-theme="dark"] footer.site-footer{background:#0a0b0d!important}
html[data-theme="dark"] .site-footer .heading-text,html[data-theme="dark"] .site-footer h1,
html[data-theme="dark"] .site-footer h2,html[data-theme="dark"] .site-footer h3,
html[data-theme="dark"] .site-footer h4,html[data-theme="dark"] .site-footer h5,
html[data-theme="dark"] .site-footer h6,html[data-theme="dark"] .site-footer a,
html[data-theme="dark"] .site-footer p,html[data-theme="dark"] .site-footer span{color:#c7ccd4!important}

/* homepage — remap the component variables */
html[data-theme="dark"] .pth{--ink:#f2f3f5;--muted:#9aa0aa;--hint:#6b7079;--line:#2b2e36;--line2:#2e3138;--card:#1a1c21;--surface:#121317;--green:#3ddc84;--red:#ff6b6b}
html[data-theme="dark"] .pth-delta.up{background:#10241a;color:#3ddc84}
html[data-theme="dark"] .pth-delta.dn{background:#2a1414;color:#ff6b6b}
html[data-theme="dark"] .pth-tabs button.on{color:#0a0b0d}
html[data-theme="dark"] .pth-search input{box-shadow:0 12px 36px -14px rgba(0,0,0,.7)}

/* company widget — remap variables + the hard-coded buttons/panels */
html[data-theme="dark"] .ptc{--ptc-ink:#f2f3f5;--ptc-muted:#9aa0aa;--ptc-line:#2b2e36;--ptc-card:#1a1c21}
html[data-theme="dark"] .ptc .ptc-btns button{background:#1a1c21;color:#9aa0aa;border-color:#2e3138}
html[data-theme="dark"] .ptc .ptc-btns button.on{background:#f2f3f5;color:#0a0b0d;border-color:#f2f3f5}
html[data-theme="dark"] .ptc .ptc-btns button:hover{border-color:#3a3f48}
html[data-theme="dark"] .ptc-panelbox,html[data-theme="dark"] .ptc-mix,html[data-theme="dark"] .ptc-news{background:#1a1c21;border-color:#2b2e36}
/* consensus metric cards + the verbatim disclaimer box ship hard-coded light/cream
   backgrounds — repaint them for dark mode so they don't glow on the dark page. */
html[data-theme="dark"] .ptc-metric{background:#1b1d22}
html[data-theme="dark"] .ptc-metric .v.up{color:#3ddc84}
html[data-theme="dark"] .ptc-metric .v.dn{color:#ff6b6b}
html[data-theme="dark"] .ptc-warn{background:#1b1d22;border-color:#2e3138;color:#c7ccd4}
html[data-theme="dark"] .ptc-warn b{color:#e6e9ee}

/* charts — light line/labels in dark (task 3 layers green/red on top) */
html[data-theme="dark"] .pt-chart .ptc2-line{stroke:#f2f3f5!important}
html[data-theme="dark"] .pt-chart .ptc2-area{fill:rgba(242,243,245,.07)!important}
html[data-theme="dark"] .pt-chart .ptc2-tgtl{fill:#f2f3f5!important}
html[data-theme="dark"] .pt-chart .ptc2-dot{fill:#f2f3f5!important;stroke:#0a0b0d!important}
html[data-theme="dark"] .pt-chart text{fill:#9aa0aa}

/* single note + search results templates */
html[data-theme="dark"] .ptn-head{border-bottom-color:#2b2e36}
html[data-theme="dark"] .ptn-title{color:#f2f3f5!important}
html[data-theme="dark"] .ptn-chip{color:#f2f3f5!important;border-color:#2e3138}
/* note data-table text + the verbatim body headings → light (green/red preserved below) */
html[data-theme="dark"] .ptn-body .heading-text h5,html[data-theme="dark"] .ptn-body .heading-inline h5,
html[data-theme="dark"] .ptn-body .uncoltable .heading-text{color:#dfe3e8}
/* Jetpack share buttons → dark chips */
html[data-theme="dark"] .sharedaddy .sd-content ul li,html[data-theme="dark"] .sharedaddy a.sharing-anchor,
html[data-theme="dark"] .sd-social-icon .sd-content ul li a{background:#1b1d22!important;color:#c7ccd4!important}
html[data-theme="dark"] .ptn-chip:hover{border-color:#f2f3f5}
html[data-theme="dark"] .ptn-title{color:#f2f3f5}
html[data-theme="dark"] .ptn-date,html[data-theme="dark"] .ptn-eyebrowtxt{color:#9aa0aa}
html[data-theme="dark"] .ptn-body{color:#c7ccd4}
html[data-theme="dark"] .ptn-body strong,html[data-theme="dark"] .ptn-body b,
html[data-theme="dark"] .ptn-body h1,html[data-theme="dark"] .ptn-body h2,
html[data-theme="dark"] .ptn-body h3,html[data-theme="dark"] .ptn-body h4,
html[data-theme="dark"] .ptn-body .heading-text h5,html[data-theme="dark"] .ptn-body .heading-inline span{color:#eef0f3}
html[data-theme="dark"] .ptn-cta{color:#f2f3f5;border-color:#2e3138}
html[data-theme="dark"] .ptn-cta:hover{border-color:#f2f3f5}
html[data-theme="dark"] .pts-empty p{color:#f2f3f5}html[data-theme="dark"] .pts-empty-sub{color:#9aa0aa!important}
/* keep green/red meaning in the note's data table */
html[data-theme="dark"] .ptn-body [style*="15803d"],html[data-theme="dark"] .ptn-body .ptc-buy{color:#3ddc84!important}
html[data-theme="dark"] .ptn-body [style*="c0392b"]{color:#ff6b6b!important}

/* dark mode for the REDESIGNED note prose (.ptnx-prose). The verbatim text lives
   in WPBakery "style-light" columns that force dark text on a light/black box —
   so in dark mode we (a) repaint the text light and (b) strip the column
   backgrounds so the prose sits flat on the page bg. */
html[data-theme="dark"] .ptnx-prose,
html[data-theme="dark"] .ptnx-prose p,html[data-theme="dark"] .ptnx-prose li,
html[data-theme="dark"] .ptnx-prose span,html[data-theme="dark"] .ptnx-prose div,
html[data-theme="dark"] .ptnx-prose .heading-text,html[data-theme="dark"] .ptnx-prose .heading-text *{color:var(--ink)!important}
html[data-theme="dark"] .ptnx-prose strong,html[data-theme="dark"] .ptnx-prose b,
html[data-theme="dark"] .ptnx-prose h1,html[data-theme="dark"] .ptnx-prose h2,
html[data-theme="dark"] .ptnx-prose h3,html[data-theme="dark"] .ptnx-prose h4,
html[data-theme="dark"] .ptnx-prose h5,html[data-theme="dark"] .ptnx-prose h6{color:#f2f3f5!important}
html[data-theme="dark"] .ptnx-prose .vc_row,html[data-theme="dark"] .ptnx-prose .wpb_column,
html[data-theme="dark"] .ptnx-prose .uncol,html[data-theme="dark"] .ptnx-prose .style-light,
html[data-theme="dark"] .ptnx-prose .uncoltable,html[data-theme="dark"] .ptnx-prose .uncell,
html[data-theme="dark"] .ptnx-prose .uncont,html[data-theme="dark"] .ptnx-prose .wpb_wrapper,
html[data-theme="dark"] .ptnx-prose .row-background,html[data-theme="dark"] .ptnx-prose .block-bg-overlay,
html[data-theme="dark"] .ptnx-prose .background-inner,html[data-theme="dark"] .ptnx-prose .background-wrapper{background:transparent!important}
/* preserve green/red emphasis if the analyst's text carries inline colors */
html[data-theme="dark"] .ptnx-prose [style*="15803d"]{color:#3ddc84!important}
html[data-theme="dark"] .ptnx-prose [style*="c0392b"]{color:#ff6b6b!important}

/* archive (theme cards) */
html[data-theme="dark"] body.archive .vc_row.has-bg.need-focus .heading-text h1{color:#f2f3f5!important}
html[data-theme="dark"] body.archive .tmb-post .t-entry-title,
html[data-theme="dark"] body.archive .tmb-post .t-entry-title a{color:#f2f3f5!important}

/* divider lines on note/search */
html[data-theme="dark"] .ptn-head{border-bottom-color:#2b2e36}

/* ============ unified header: transparent over the dark top strip,
   solid white (dark logo) once you scroll. Replaces the theme menu on desktop. */
.ptnav{position:fixed;top:0;left:0;right:0;z-index:99990;background:#fff;border-bottom:1px solid #ececec;
  transition:box-shadow .3s ease;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.ptnav.ptnav-solid{box-shadow:0 4px 20px rgba(15,23,41,.06)}
.ptnav-inner{max-width:1200px;margin:0 auto;height:84px;padding:0 28px;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.ptnav-side{display:flex;align-items:center;gap:24px}
.ptnav-left{justify-content:flex-start}
.ptnav-right{justify-content:flex-end}
.ptnav-logo{justify-self:center;display:flex;align-items:center;line-height:0}
.ptnav-logo img{height:50px;width:auto;display:block;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.ptnav-logo:hover img{transform:scale(1.12)}
.ptnav-logo .ptnav-logo-light{display:none}
.ptnav-logo .ptnav-logo-dark{display:block}
.ptnav-top,.ptnav-trigger{color:#0f1729;font-size:14px;font-weight:500;text-decoration:none;letter-spacing:.01em;
  background:none;border:0;padding:0;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:color .2s ease}
.ptnav-top:hover,.ptnav-trigger:hover{color:#0f1729}
.ptnav-caret{font-size:9px;opacity:.7;transition:transform .2s ease}
.ptnav-item{position:relative}
.ptnav-item:hover .ptnav-caret,.ptnav-item.open .ptnav-caret{transform:rotate(180deg)}
.ptnav-drop{position:absolute;top:calc(100% + 16px);left:0;background:#fff;border:1px solid #ececec;border-radius:12px;
  box-shadow:0 16px 40px rgba(15,23,41,.16);padding:10px;min-width:210px;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:5}
.ptnav-item:hover .ptnav-drop,.ptnav-item.open .ptnav-drop{opacity:1;visibility:visible;transform:translateY(0)}
.ptnav-drop::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.ptnav-drop-wide{min-width:600px;max-height:64vh;overflow:auto}
.ptnav-grid{display:grid;grid-template-columns:1fr;gap:1px}
.ptnav-drop-wide .ptnav-grid{grid-template-columns:repeat(4,1fr);gap:1px 8px}
.ptnav-link{display:block;padding:8px 12px;border-radius:8px;color:#0f1729;font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap;line-height:1.25}
.ptnav-link:hover{background:#f3f4f6;color:#0f1729}
.ptnav-search{position:relative;display:flex;align-items:center}
.ptnav-search-btn{background:none;border:0;cursor:pointer;color:#0f1729;display:inline-flex;padding:4px;line-height:0;transition:color .2s ease}
.ptnav-search-btn:hover{color:#0f1729}
.ptnav-search-input{width:0;opacity:0;padding:0;border:1px solid transparent;border-radius:8px;
  font-size:13px;font-family:inherit;background:#fff;color:#0f1729;outline:none;
  transition:width .25s ease,opacity .2s ease,padding .25s ease,border-color .2s ease}
.ptnav-search.open .ptnav-search-input{width:180px;opacity:1;padding:7px 10px;border-color:#cfd4da;margin-left:6px}
body.admin-bar .ptnav{top:32px}
@media screen and (max-width:782px){body.admin-bar .ptnav{top:46px}}
/* desktop: our unified nav stands in for the theme's top menu (+ its sticky clone);
   reserve the bar's height so page content clears the fixed header */
@media(min-width:981px){#masthead,.navbar-clone{display:none!important}body{padding-top:85px}}
/* mobile: keep the theme header (hamburger + search), hide ours */
@media(max-width:980px){.ptnav{display:none}}

/* Load More (Uncode .btn-circle) -> consistent dark rounded button */
.loadmore-button .btn,
.isotope-footer .btn.btn-circle {
  background: #0f1729 !important;
  color: #fff !important;
  border: 1px solid #0f1729 !important;
  border-radius: 9px !important;
  padding: 12px 24px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
  min-width: 0 !important;
  width: auto !important;
}
.loadmore-button .btn:hover,
.isotope-footer .btn.btn-circle:hover { opacity: .92 !important; background: #0f1729 !important; }

/* brand/category filters -> consistent outlined pills */
.isotope-filters .isotope-nav-link {
  display: inline-block !important;
  border: 1px solid #cfd4da !important;
  border-radius: 8px !important;
  padding: 5px 12px !important;
  margin: 0 6px 8px 0 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #555 !important;
  background: #fff !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}
.isotope-filters .isotope-nav-link.active,
.isotope-filters .isotope-nav-link:hover {
  background: #0f1729 !important;
  color: #fff !important;
  border-color: #0f1729 !important;
}

/* ===== Phase 4 — theme browse ([pt_themes]) + per-theme lists ([pt_theme_notes]) ===== */
.pt-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:18px 0}
.pt-theme-card{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid #e6e9ef;border-radius:12px;background:#fff;text-decoration:none;transition:box-shadow .2s ease,transform .2s ease}
.pt-theme-card:hover{box-shadow:0 8px 24px rgba(15,23,41,.08);transform:translateY(-1px)}
.pt-theme-name{font-size:15px;font-weight:600;color:#0f1729}
.pt-theme-count{font-size:12px;color:#6b7385}
.pt-theme-list{list-style:none;margin:14px 0;padding:0}
.pt-theme-list li{padding:10px 0;border-top:1px solid #eef0f4;display:flex;flex-direction:column;gap:2px}
.pt-theme-list li:first-child{border-top:0}
.pt-theme-list a{font-size:15px;font-weight:500;color:#0f1729;text-decoration:none}
.pt-theme-list a:hover{color:#0f1729}
.pt-theme-meta{font-size:12px;color:#6b7385}

/* archive site — never show the post author byline / avatar on any page */
.t-entry-author,
.t-entry-meta.t-entry-author,
.single-author,.author-box,.author-bio,.post-author,.entry-author,.vcard.author,
a[href*="/author/"],
a[rel="author"]{display:none!important}

/* ===== sitewide coherence — clean archive headers (theme / category / tag / search),
   matching the monochrome homepage. Company & analyst pages are Pages, untouched. ===== */
/* this taxonomy template ships a near-black colour scheme (style-color-*-bg): the
   <body> AND every structural wrapper are dark, which shows as black side-bands
   beside the boxed header. Force the whole archive chrome light. */
html body.archive,
html body.archive .box-wrapper,
html body.archive .box-container,
html body.archive .main-container,
html body.archive .sections-container,
html body.archive .header-wrapper{background:#fff!important}
/* the full-height stock hero gets its height from the parent .row-container (theme JS) */
body.archive .row-container:has(> .vc_row.has-bg.need-focus){min-height:0!important;height:auto!important}
body.archive .vc_row.has-bg.need-focus,
body.archive .vc_row.has-bg.need-focus .row-inner,
body.archive .vc_row.has-bg.need-focus .row-background,
body.archive .vc_row.has-bg.need-focus .wpb_column,
body.archive .vc_row.has-bg.need-focus .wpb_column .uncell{min-height:0!important;height:auto!important}
body.archive .vc_row.has-bg.need-focus .background-inner,
body.archive .vc_row.has-bg.need-focus .row-overlay,
body.archive .vc_row.has-bg.need-focus .background-wrapper,
body.archive .vc_row.has-bg.need-focus .uncode-divider-wrap{display:none!important}
body.archive .vc_row.has-bg.need-focus .uncell{padding-top:34px!important;padding-bottom:6px!important;justify-content:flex-start!important}
body.archive .vc_row.has-bg.need-focus .heading-text h1,
body.archive .vc_row.has-bg.need-focus .vc_custom_heading_wrap h1{color:#0f1729!important;font-weight:700!important;letter-spacing:-.02em!important}
body.archive .vc_row.has-bg.need-focus .heading-text p,
body.archive .vc_row.has-bg.need-focus .post-date{color:#6b7385!important}
/* the dark colour overlay made the (dark) title invisible — drop it, go light, clear the fixed nav */
body.archive .vc_row.has-bg.need-focus .block-bg-overlay,
body.archive .vc_row.has-bg.need-focus .row-background .block-bg-overlay{display:none!important}
body.archive .vc_row.has-bg.need-focus{background:#fff!important}
body.archive .vc_row.has-bg.need-focus .uncell{padding-top:104px!important;padding-bottom:14px!important}
body.archive .isotope-system{padding-top:6px}
/* clean note cards — drop the verbose excerpt + meta, keep the white-on-black logo + title */
body.archive .tmb-post .t-entry p,
body.archive .tmb-post .t-entry .t-desc{display:none!important}
body.archive .tmb-post .t-entry-title{font-size:14.5px!important;line-height:1.32!important;font-weight:600!important}
body.archive .tmb-post .t-entry{padding-top:12px!important}

/* ===== note-page stock-performance chart (.pt-chart) — the renderer paints it
   green/orange/blue, off our monochrome palette. Recolour to ink/grey so the
   price line is neutral and the dashed PT target reads cleanly. Scoped to
   .pt-chart so the company-page widget chart (.ptc) is never touched. Uses
   !important to beat the renderer's inline styles + survive its redraws. ===== */
.pt-chart .ptc2-line{stroke:#0f1729!important}
.pt-chart .ptc2-area{fill:rgba(15,23,41,.06)!important}
.pt-chart .ptc2-tgt{stroke:#9aa3af!important}
.pt-chart .ptc2-tgtl{fill:#0f1729!important}
.pt-chart .ptc2-dot{fill:#0f1729!important;stroke:#fff!important}

/* ===== redesigned single note (templates/single-note.php · .ptnx) =====
   Built on CSS vars so dark mode is automatic. Hero shows the note's company×firm
   featured image behind the headline; the body holds fact cards + verbatim prose
   + related notes. The stored data-table, chart, share + CTA inside the content
   are hidden so only the analyst's prose remains. */
.ptnx{--ink:#0f1729;--muted:#5b6472;--hint:#6b7385;--line:#e7e8ec;--line2:#d7d9df;--surface:#f6f7f8;--surface2:#ececef;--card:#fff;--green:#15803d;--green-50:#e8f3ec;--green-d:#15803d;--red:#c0392b;--red-50:#fbeceb;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
html[data-theme="dark"] .ptnx{--ink:#f2f3f5;--muted:#9aa0aa;--hint:#7c828c;--line:#2b2e36;--line2:#2e3138;--surface:#121317;--surface2:#1b1d22;--card:#1a1c21;--green:#3ddc84;--green-50:#10241a;--green-d:#3ddc84;--red:#ff6b6b;--red-50:#2a1414}
.ptnx *{box-sizing:border-box}
.ptnx a{text-decoration:none;color:inherit}
/* hero (always a dark branded band; the featured image is set inline) */
.ptnx-hero{background:linear-gradient(180deg,#14171c,#0a0b0d);background-size:cover;background-position:center;color:#fff;padding:104px 0 36px}
/* logo-watermark fallback (note has no correct company×firm composite): the dark
   gradient covers the band, the company logo sits contained on the right. */
.ptnx-hero-logo{position:relative;overflow:hidden}
.ptnx-hero-logo::after{content:'';position:absolute;inset:0;background:var(--pt-hlogo) no-repeat right 7% center;background-size:auto 56%;mix-blend-mode:screen;pointer-events:none;z-index:0}
.ptnx-hero-logo .ptnx-hero-in{position:relative;z-index:1}
@media(max-width:782px){.ptnx-hero-logo::after{display:none}}

.ptnx-hero-in{max-width:760px;margin:0 auto;padding:0 28px}
.ptnx-crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,.62)}
.ptnx-crumb a:hover{color:#fff}.ptnx-crumb span{opacity:.45}
.ptnx-badges{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 18px}
.ptnx-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff}
.ptnx-badge .ptnx-dot{width:18px;height:18px;border-radius:50%;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden}
.ptnx-badge-up{color:#3ddc84}.ptnx-badge-dn{color:#ff6b6b}
.ptnx-title{font-size:34px;font-weight:800;letter-spacing:-1px;line-height:1.14;color:#fff;margin:0}
.ptnx-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;color:rgba(255,255,255,.76);margin-top:14px}
/* a legacy Code-Snippets hero adds duplicate category chips into the hero — the
   .ptnx badges already cover company + firm, so hide the redundant chips here. */
.ptnx .pt-hero-chips{display:none!important}
/* body */
.ptnx-body{max-width:760px;margin:0 auto;padding:0 28px 70px;color:var(--ink)}
.ptnx-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0 6px}
.ptnx-fact{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px 16px}
.ptnx-fact .l{font-size:11px;color:var(--hint);text-transform:uppercase;letter-spacing:.05em}
.ptnx-fact .v{font-size:21px;font-weight:700;margin-top:5px;color:var(--ink)}
.ptnx-fact .v.up{color:var(--green)}.ptnx-fact .v.dn{color:var(--red)}
/* prose — only the verbatim text; the rest of the_content is hidden below */
.ptnx-prose{font-size:16.5px;line-height:1.78;color:var(--ink);margin-top:26px}
.ptnx-prose p{margin:0 0 18px}
.ptnx-prose h2,.ptnx-prose h3,.ptnx-prose h4{font-size:19px;font-weight:600;margin:28px 0 12px;color:var(--ink)}
.ptnx-prose strong,.ptnx-prose b{font-weight:600;color:var(--ink)}
/* flatten the WPBakery rows so the verbatim prose renders full-width (they
   collapse to height:0 without this) */
.ptnx-prose .row-container,.ptnx-prose .row,.ptnx-prose .row-inner,.ptnx-prose .wpb_row,
.ptnx-prose .vc_row,.ptnx-prose .wpb_column,.ptnx-prose .vc_column_container,
.ptnx-prose .vc_column-inner,.ptnx-prose .uncol,.ptnx-prose .uncoltable,.ptnx-prose .uncell,
.ptnx-prose .uncont,.ptnx-prose .wpb_text_column,.ptnx-prose .wpb_wrapper,
.ptnx-prose .vc_custom_heading_wrap,.ptnx-prose .heading-text{
  width:100%!important;max-width:100%!important;flex:0 0 100%!important;display:block!important;
  margin-left:0!important;margin-right:0!important;padding-left:0!important;
  padding-right:0!important;min-height:0!important;height:auto!important;left:0!important;float:none!important}
/* the fact cards replace the stored data-table grid, which is ALWAYS the first
   WPBakery row of every note — hide that one row (NOT .uncoltable, which is the
   universal Uncode column wrapper that also holds the verbatim prose). Also hide
   the chart, share buttons, CTA + spacers that the_content appends. */
.ptnx-prose .wpb-content-wrapper>.vc_row:first-child,
.ptnx-prose .pt-chart:not(.pt-chart-live),.ptnx-prose .sharedaddy,
.ptnx-prose .pt-related-hub,.ptnx-prose .wpcnt,.ptnx-prose .empty-space,
.ptnx-prose iframe{display:none!important}
/* the one share-price chart injected mid-note */
.ptnx-prose .pt-chart-note{display:block!important;margin:30px 0;border:1px solid var(--line);border-radius:14px;padding:14px 14px 10px;background:var(--surface)}
.ptnx-prose .pt-chart-note-ttl{display:block;font-size:11.5px;font-weight:600;color:var(--hint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.ptnx-prose .pt-chart-live{display:block!important;min-height:300px;height:300px}
/* related notes */
.ptnx-related{border-top:1px solid var(--line);margin-top:40px;padding-top:28px}
.ptnx-related h3{font-size:18px;font-weight:700;color:var(--ink);margin:0 0 16px}
.ptnx-notes{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.ptnx-note{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);transition:background .15s}
.ptnx-note:last-child{border-bottom:0}.ptnx-note:hover{background:var(--surface)}
.ptnx-note-ic{width:38px;height:38px;border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--ink);flex-shrink:0}
.ptnx-note-main{flex:1;min-width:0}
.ptnx-note-t{font-size:14.5px;font-weight:600;display:flex;align-items:center;color:var(--ink)}
.ptnx-note-s{font-size:12.5px;color:var(--hint);margin-top:2px}
.ptnx-note-r{text-align:right;flex-shrink:0}
.ptnx-note-tg{font-size:15px;font-weight:700;color:var(--ink)}.ptnx-note-tm{font-size:12px;color:var(--hint);margin-top:1px}
.ptnx-tag{font-size:11px;font-weight:600;padding:2px 9px;border-radius:6px;margin-left:9px}
.ptnx-tag-buy{background:var(--green-50);color:var(--green-d)}
.ptnx-tag-hold{background:var(--surface2);color:var(--muted)}
.ptnx-tag-sell{background:var(--red-50);color:var(--red)}
@media(max-width:680px){.ptnx-facts{grid-template-columns:repeat(2,1fr)}.ptnx-title{font-size:26px}.ptnx-hero{padding-top:92px}}

/* ===== (legacy) compact single note (.ptn) — kept for reference =====
   Compact monochrome header + a clean reading column. the_content() (the data
   table, chart, disclaimer, share) renders inside .ptn-body. */
.ptn-wrap{max-width:820px;margin:0 auto;padding:16px 22px 64px}
/* the post body is WPBakery markup tuned for the theme's wide boxed container;
   flatten its rows/columns so everything stacks full-width and shares one left
   edge with the header (otherwise the table + text sit in off-centre sub-columns). */
.ptn-body .row-container,.ptn-body .row,.ptn-body .row-inner,.ptn-body .wpb_row,
.ptn-body .vc_row,.ptn-body .wpb_column,.ptn-body .vc_column_container,
.ptn-body .vc_column-inner,.ptn-body .uncol,.ptn-body .uncoltable,.ptn-body .uncell,
.ptn-body .uncont,.ptn-body .wpb_text_column,.ptn-body .wpb_wrapper,
.ptn-body .vc_custom_heading_wrap,.ptn-body .heading-text{
  width:100%!important;max-width:100%!important;flex:0 0 100%!important;
  margin-left:0!important;margin-right:0!important;padding-left:0!important;
  padding-right:0!important;left:0!important;float:none!important}
.ptn-head{padding:4px 0 22px;border-bottom:1px solid #ececec;margin-bottom:30px}
.ptn-logos{display:flex;gap:10px;margin-bottom:18px}
.ptn-logos .pt-tile{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:#0b0d12;border-radius:10px;overflow:hidden}
.ptn-logos .pt-tile img{width:100%;height:100%;object-fit:contain}
.ptn-logos .pt-tile-txt{color:#fff;font-weight:700;font-size:12.5px}
.ptn-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}
.ptn-chip{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#0f1729;border:1px solid #d7d9df;border-radius:6px;padding:4px 9px;text-decoration:none;line-height:1.45;transition:border-color .15s}
.ptn-chip:hover{border-color:#0f1729}
.ptn-title{font-size:34px;line-height:1.18;font-weight:700;letter-spacing:-.02em;color:#0f1729;margin:2px 0 12px}
.ptn-date{font-size:13.5px;color:#6b7385}
.ptn-body{font-size:17px;line-height:1.72;color:#1a2230}
.ptn-body p{margin:0 0 1.1em}
.ptn-body strong,.ptn-body b{color:#0f1729}
.ptn-cta{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-size:14.5px;font-weight:600;color:#0f1729;border:1px solid #d7d9df;border-radius:10px;padding:13px 18px;text-decoration:none;transition:border-color .15s,box-shadow .2s}
.ptn-cta:hover{border-color:#0f1729;box-shadow:0 8px 24px -14px rgba(15,23,41,.25)}
@media(max-width:760px){.ptn-wrap{padding:10px 18px 48px}.ptn-title{font-size:26px}.ptn-body{font-size:16px}}

/* ===== single NOTE page — rebuild the header into the monochrome system =====
   The theme renders notes through a 714px dark stock hero (same .has-bg.need-focus
   row + dark colour overlay as the archives). That hero is off-brand AND it's the
   slow LCP element. Collapse it to a compact white header (dark title, chips, date),
   drop the dark colour scheme, and clear the fixed nav. The verbatim body, the SVG
   chart, the disclaimer and the share buttons all live below and are untouched. */
body.single .row-container:has(> .vc_row.has-bg.need-focus){min-height:0!important;height:auto!important}
body.single .vc_row.has-bg.need-focus,
body.single .vc_row.has-bg.need-focus .row-inner,
body.single .vc_row.has-bg.need-focus .wpb_column,
body.single .vc_row.has-bg.need-focus .uncell,
body.single .vc_row.has-bg.need-focus .uncoltable{min-height:0!important;height:auto!important}
/* light the dark colour scheme: body, structural wrappers and the hero itself */
html body.single,
html body.single .box-wrapper,
html body.single .box-container,
html body.single .main-container,
html body.single .sections-container,
html body.single .header-wrapper,
body.single .vc_row.has-bg.need-focus,
body.single .vc_row.has-bg.need-focus .uncol{background:#fff!important}
/* hide the full-height dark background layers (incl. the 1200x714 divider SVG) */
body.single .vc_row.has-bg.need-focus .block-bg-overlay,
body.single .vc_row.has-bg.need-focus .background-inner,
body.single .vc_row.has-bg.need-focus .background-wrapper,
body.single .vc_row.has-bg.need-focus .row-background,
body.single .vc_row.has-bg.need-focus .uncode-divider-wrap{display:none!important}
/* compact spacing: clear the nav, sit content at the top */
body.single .vc_row.has-bg.need-focus .uncell{padding-top:100px!important;padding-bottom:16px!important;justify-content:flex-start!important}
/* flip the dark-scheme text to ink, and size the title down from 60px */
body.single .vc_row.has-bg.need-focus .style-dark,
body.single .vc_row.has-bg.need-focus .style-dark *{color:#0f1729!important}
body.single .vc_row.has-bg.need-focus h1{color:#0f1729!important;font-size:38px!important;line-height:1.14!important;letter-spacing:-.02em!important;margin:8px 0!important}
body.single .vc_row.has-bg.need-focus .date-info,
body.single .vc_row.has-bg.need-focus .post-date,
body.single .vc_row.has-bg.need-focus .uncode-info-box{color:#6b7385!important}
/* category chips: white-on-dark pills → ink outline on white */
body.single .vc_row.has-bg.need-focus .term-badge,
body.single .vc_row.has-bg.need-focus .post-cat a,
body.single .vc_row.has-bg.need-focus a[rel="category tag"]{color:#0f1729!important;border-color:#cfd4da!important;background:transparent!important}


/* Related-notes sections side-by-side (Claude 2026-06-16) */
.ptnx-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 40px;align-items:start}
.ptnx-related-grid:empty{display:none}
@media (max-width:600px){.ptnx-related-grid{grid-template-columns:1fr}}


/* Footer readable in light mode (Claude 2026-06-16) */
html[data-theme="light"] .site-footer{background:#0a0b0d !important;color:#f7f7f7 !important}
html[data-theme="light"] .site-footer a{color:#f7f7f7 !important}
html[data-theme="light"] .site-footer a:hover{color:#fff !important}


/* Related-notes headings: subheading size + tighter spacing (Claude 2026-06-16) */
.ptnx-related h3{font-size:16px !important;line-height:1.3 !important;font-weight:700 !important;margin:0 0 14px !important}
.ptnx-related{margin-top:32px !important;padding-top:22px !important}


/* Chart timeframe toggles (Claude 2026-06-16) */
.pt-tf{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.pt-tf-b{appearance:none;-webkit-appearance:none;border:1px solid var(--line,#e6e8ec);background:transparent;color:var(--ink,#0b1220);font:inherit;font-size:12px;font-weight:600;line-height:1;padding:6px 12px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.pt-tf-b:hover{border-color:var(--ink)}
.pt-tf-b.is-on{background:#0b1220;color:#fff;border-color:#0b1220}
html[data-theme="dark"] .pt-tf-b{color:#f7f7f7;border-color:rgba(255,255,255,.18)}
html[data-theme="dark"] .pt-tf-b.is-on{background:#f7f7f7;color:#0b1220;border-color:#f7f7f7}


/* Company hub month sections (Claude 2026-06-16) */
.pt-hub-notes h3{font-size:18px;font-weight:700;margin:0 0 8px}
.pt-hub-count{color:var(--muted);font-weight:600;font-size:15px}
.pt-hub-month{margin-top:28px}
.pt-hub-month-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.pt-hub-month-h span{opacity:.55;font-weight:600;margin-left:4px}


/* Hub: two-column note grid, full width (Claude 2026-06-16) */
.ptnx-body.pt-hub-notes{max-width:1180px}
.pt-hub-notes .ptnx-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0;background:transparent;border-radius:0;padding:0}
.pt-hub-notes .ptnx-note{border:1px solid var(--line);border-radius:14px;background:var(--card)}
.pt-hub-notes .ptnx-note:hover{border-color:var(--ink)}
@media (max-width:720px){.ptnx-body.pt-hub-notes{max-width:760px}.pt-hub-notes .ptnx-notes{grid-template-columns:1fr}}


/* Hide themes sitewide (Claude 2026-06-16) - analysts + companies only */
.pth-themechips,.pth-themechip,#pth-themes,a[href*="/theme/"]{display:none !important}


/* Compact site footer (Claude 2026-06-16) */
.site-footer h2{font-size:24px !important;line-height:1.15 !important;letter-spacing:-.01em}
.site-footer .row-inner{padding-top:0 !important;padding-bottom:0 !important}
.site-footer > .vc_row,.site-footer .row-container{padding-top:32px !important;padding-bottom:24px !important}
.site-footer .row{padding-top:0 !important;padding-bottom:0 !important}
.site-footer .row-internal{padding-top:0 !important;padding-bottom:0 !important}


/* Search results polish (Claude 2026-06-16) */
.pts-wrap{max-width:760px;margin:0 auto;padding:0 28px}
.pts-spot{margin:8px 0 22px}
.pts-results.pts-capped .pth-notes .pth-note:nth-child(n+11){display:none}
.pts-more{display:inline-block;margin:16px 0 0;padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.pts-more:hover{border-color:var(--ink)}


/* Home latest 2-col + centered tabs + logo breathing (Claude 2026-06-16) */
#pthLatestTabs{display:flex !important;justify-content:center;width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 auto 20px !important}
@media (min-width:760px){#pthLatestNotes{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:0 !important;background:transparent !important;border-radius:0 !important;padding:0 !important;max-width:none !important}
#pthLatestNotes .pth-note{border:1px solid var(--line);border-radius:14px;background:var(--card)}
#pthLatestNotes .pth-note:hover{border-color:var(--ink)}}
body.home .ptnav-inner{min-height:104px !important}
body.home .pth-hero{padding-top:118px !important;padding-bottom:50px !important}


/* Footer dead-space + link spacing fix (Claude 2026-06-16) */
.site-footer .uncol a{line-height:1.85 !important}
.site-footer .uncol p,.site-footer .uncol li,.site-footer .uncol span{line-height:1.5 !important}
.site-footer .vc_row.parallax-move,
.site-footer .vc_row.parallax-move .row,
.site-footer .vc_row.parallax-move .row-inner{height:auto !important;min-height:0 !important}
.site-footer .vc_row.parallax-move{padding-top:30px !important;padding-bottom:26px !important}

/* Hide the static fallback chrome header bar (keep it as an in-flow spacer for the fixed #ptnav centered-logo nav). Removes the duplicate nav that appears when Uncode JS is dequeued. Claude 2026-06-16 */
header.ptc-hd{visibility:hidden!important}
header.ptc-hd *{visibility:hidden!important}


/* Footer 250 + most-searched grid + hero spacing (Claude 2026-06-17) */
.site-footer .uncol a{font-size:13px !important;line-height:1.2 !important;display:block !important;margin:0 !important;padding:0 !important}
.site-footer .uncol span{line-height:1.2 !important;margin:0 !important}
.site-footer .vc_custom_heading_wrap,.site-footer .heading-text,.site-footer .uncont>*{margin:0 !important;padding:2px 0 !important}
.site-footer .vc_row.parallax-move{padding-top:14px !important;padding-bottom:8px !important}
.site-footer .vc_row.row-internal{padding:0 !important}
.site-footer h2{font-size:17px !important;line-height:1.2 !important;margin:0 !important}
.site-footer h3{font-size:13px !important;line-height:1.2 !important;margin:0 0 3px !important}
.pth-co-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:10px}
@media (max-width:900px){.pth-co-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.pth-co-grid{grid-template-columns:repeat(2,1fr)}}


/* ptnx de-blue card text (Claude 2026-06-17) */
.ptnx-note,.ptnx-note:visited,.ptnx-note:hover{color:var(--ink)}
.ptnx-note-s,.ptnx-note-tm{color:var(--muted)}


/* Search results redesign (Claude 2026-06-17) */
.pts2{max-width:1040px;margin:0 auto;padding:0 28px}
.pts2-h1{font-size:40px;line-height:1.1;margin:0 0 6px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.pts2-count{color:var(--muted);font-size:15px;margin:0 0 16px}
.pts2-chips{justify-content:center;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.pts2-search{max-width:620px;margin:0 auto}
.pts2-sec{padding:30px 0 48px}
.pts2-grid .pth-note{border:1px solid var(--line) !important;border-radius:14px;background:var(--card) !important}
html[data-theme="dark"] .pts2-grid .pth-note{background:#1b1e25 !important;border-color:#262a31 !important}
.pts2-grid .pth-note:hover{border-color:var(--ink)}
.pts2-grid.pts-capped .pth-note:nth-child(n+11){display:none}
@media (max-width:759px){.pts2-grid{grid-template-columns:1fr !important}}
.pts-more{display:block;margin:20px auto 0;padding:11px 22px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer}
.pts-more:hover{border-color:var(--ink)}
.pts2-empty{text-align:center;color:var(--muted);padding:48px 0;font-size:16px}


/* WS firm hero reveal — Uncode heading anim never fires above-fold (Claude) */
body.parent-pageid-997 .vc_custom_heading_wrap,body.parent-pageid-997 .vc_custom_heading_wrap *,body.parent-pageid-997 .heading-text,body.parent-pageid-997 .heading-text *{opacity:1 !important;visibility:visible !important;transform:none !important}


/* WS firm hero hide (broken Uncode hero) + lead with notes (Claude) */
body.parent-pageid-997 .vc_section.style-color-lxmt-bg{display:none !important}
body.parent-pageid-997 .ptnx-body{padding-top:52px !important}


/* Newsletter popup sizing — beehiiv iframe was collapsing to 84px (Claude) */
.boxzilla .boxzilla-content iframe.beehiiv-embed,.boxzilla iframe.beehiiv-embed{width:100% !important;height:300px !important;min-height:300px !important;display:block !important}
.boxzilla{width:440px !important;max-width:92vw !important}
.boxzilla .boxzilla-content,.boxzilla .boxzilla-content p{margin:0 !important;overflow:visible !important}


/* ptc-row2 equal-height: rating-mix panel matches fact-cards panel (Claude) */
.ptc-row2{align-items:stretch !important}
.ptc-row2 .ptc-side{display:flex !important;flex-direction:column !important;justify-content:center !important}

html[data-theme="dark"] .ptc-legend, html[data-theme="dark"] .ptc-legend *{color:#e8eaed !important}

/* pth-co-grid-mobilefix: override inline 5-col on mobile */
@media (max-width:900px){.pth-co-grid{grid-template-columns:repeat(3,1fr) !important}}
@media (max-width:560px){.pth-co-grid{grid-template-columns:repeat(2,1fr) !important}}

/* pth-firms-gapfix */
#pth-firms{padding-top:8px !important}

/* pt-mobile-overflow-fix */
@media (max-width:980px){html,body{overflow-x:hidden;max-width:100%}}

/* pt-tile-bigfix: larger logo tiles on desktop */
@media (min-width:561px){.pth-co .pt-tile{width:90px !important;height:90px !important;padding:13px !important;box-sizing:border-box !important;font-size:20px !important;border-radius:18px !important}.pth-co .pt-tile img,.pth-co .pt-tile svg{width:100% !important;height:100% !important;object-fit:contain;transform:scale(1.15) !important}}

/* pt-note-fixes-v2 */
body.pt-revamp-note .ptc-hd{display:none !important}
body.pt-revamp-note .ptnx-prose{margin-top:6px !important}
body.pt-revamp-note .ptnx-prose .wpb-content-wrapper > .vc_row:nth-child(-n+2) .wpb_column{padding-top:0 !important}
body.pt-revamp-note .ptnx-prose .wpb-content-wrapper h3:first-of-type{margin-top:8px !important}
.pt-share,.sharedaddy{display:none !important}
.ptnx-share{display:flex;align-items:center;gap:10px;margin:30px 0 6px;padding-top:20px;border-top:1px solid var(--line)}
.ptnx-share-l{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ptnx-share a,.ptnx-share button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:.15s;text-decoration:none;padding:0}
.ptnx-share a:hover,.ptnx-share button:hover{background:var(--ink);color:var(--page);border-color:var(--ink)}
.ptnx-share svg{width:17px;height:17px;fill:currentColor}
.ptnx-share .ptnx-copied{background:#1a7f3c !important;border-color:#1a7f3c !important;color:#fff !important}

/* pt-hero-pad-desktop: taller logo hero on desktop for readability */
@media (min-width:768px){body.pt-revamp-note .ptnx-hero{padding-top:300px !important}}

/* pt-related-card-3line */
body.pt-revamp-note .ptnx-note-t{display:block}
body.pt-revamp-note .ptnx-note-s{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px}
body.pt-revamp-note .ptnx-note-d{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}

/* pt-note-fixes-v3 */
@media (min-width:981px){body.pt-revamp-note .ptnx-share{position:fixed;left:max(16px,calc((100vw - 760px)/2 - 56px));top:120px;flex-direction:column;gap:12px;margin:0;padding:0;border-top:none;width:auto;z-index:60}}
body.pt-revamp-note .ptnx-prose .wpb-content-wrapper > .vc_row:not(:has(p,h1,h2,h3,h4,h5,h6,li,img,table,blockquote,figure,.pt-chart-note,iframe)){display:none}

/* pt-hub-header-polish */
/* ptc-h1logo-v2 */
.ptc-has-chip{position:relative !important;padding-left:76px !important;display:block !important}
.ptc-h1logo{position:absolute !important;left:0 !important;top:50% !important;transform:translateY(-50%) !important;width:58px !important;height:58px !important;border-radius:14px !important;overflow:hidden;background:#0b0c0d !important;margin:0 !important;font-size:24px !important;padding:0 !important}
.ptc-h1logo img{width:118% !important;height:118% !important;object-fit:contain;display:block;margin:-9%}
.ptc-notescount{display:inline-block !important;font-size:13px !important;color:var(--muted) !important;font-weight:500 !important;margin:4px 0 0 !important;padding:0 !important;background:transparent !important;border:0 !important}
.ptc-news{background:transparent !important;color:var(--ink) !important;border:1px solid var(--line) !important;border-radius:999px !important;padding:9px 16px !important;font-size:13px !important;font-weight:600 !important;box-shadow:none !important;transition:.15s}
.ptc-news:hover{background:var(--ink) !important;color:var(--page) !important;border-color:var(--ink) !important}

/* pt-note-ic-logo */
.ptnx-note-ic{overflow:hidden}
.ptnx-note-ic:has(img){background:#0b0c0d !important;padding:0 !important}
.ptnx-note-ic img{width:100% !important;height:100% !important;object-fit:contain;display:block}


/* ===== About / Contact pages — clean rebuild (Claude 2026-06-26) ===== */
.pt-about,.pt-contact{max-width:1140px;margin:0 auto;padding:6px 22px 80px;color:var(--ink);box-sizing:border-box}
.pt-about *,.pt-contact *{box-sizing:border-box}
.pab-eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 14px}
.pab-hero{padding:30px 0 26px;border-bottom:1px solid var(--line);margin-bottom:44px}
.pab-hero h1{font-size:clamp(30px,4.6vw,54px);line-height:1.06;letter-spacing:-.022em;margin:0;font-weight:800;max-width:20ch}
.pab-lede{font-size:clamp(16px,2vw,20px);line-height:1.5;color:var(--muted);margin:18px 0 0}
.pab-lede a,.pab-copy a,.pct-info a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.pab-mission{display:grid;grid-template-columns:1.45fr .9fr;gap:40px;align-items:stretch;margin-bottom:60px}
.pab-copy p{font-size:17px;line-height:1.68;color:var(--ink);margin:0 0 16px}
.pab-copy p:last-child{margin-bottom:0}
.pab-side{background:var(--ink);color:var(--page);border-radius:18px;padding:32px;display:flex;flex-direction:column;justify-content:center}
.pab-q{font-size:clamp(19px,2.4vw,25px);line-height:1.3;font-weight:800;letter-spacing:-.01em;margin:0 0 12px}
.pab-qs{font-size:14.5px;line-height:1.5;opacity:.74;margin:0}
.pab-section-h{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 18px}
.pab-stats-wrap,.pab-brands-wrap{margin-bottom:60px}
.pab-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pab-stat{background:var(--ink);color:var(--page);border-radius:18px;padding:34px 28px;min-height:158px;display:flex;flex-direction:column;justify-content:flex-end}
.pab-n{font-size:clamp(36px,4.6vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1;display:block}
.pab-l{font-size:14px;opacity:.76;margin-top:12px;font-weight:600}
.pab-brands{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pab-brand{background:#0b0c0d;border:1px solid rgba(255,255,255,.08);border-radius:14px;height:108px;display:flex;align-items:center;justify-content:center;padding:14px 24px;overflow:hidden;text-decoration:none;transition:transform .2s ease,border-color .2s ease}
.pab-brand:hover{transform:scale(1.03);border-color:rgba(255,255,255,.30)}
html[data-theme="dark"] .pab-brand{border-color:var(--line)}
.pab-brand img{max-width:100%;max-height:60px;width:auto;height:auto;object-fit:contain;transition:transform .2s ease}
.pab-brand:hover img{transform:scale(1.08)}
.pab-brand.pab-inv img{filter:invert(1)}
.page-id-157101 .post-title-wrapper,.page-id-157141 .post-title-wrapper{display:none!important}
.pab-cta{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:42px 30px;text-align:center}
.pab-cta h2{font-size:clamp(21px,2.8vw,30px);margin:0 0 8px;font-weight:800;letter-spacing:-.015em}
.pab-cta>p{color:var(--muted);margin:0 0 22px;font-size:16px}
.pab-cta-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pab-btn{display:inline-block;background:var(--ink);color:var(--page);text-decoration:none;font-weight:700;padding:13px 28px;border-radius:999px;font-size:15px;border:1px solid var(--ink)}
.pab-btn.pab-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.pct-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:44px;align-items:start}
.pct-info>p{font-size:17px;line-height:1.62;color:var(--muted);margin:0 0 22px}
.pct-mail{display:inline-block;font-size:clamp(18px,2.4vw,24px);font-weight:800;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:3px;letter-spacing:-.01em}
.pct-links{margin:26px 0 0;font-size:15px;color:var(--muted)}
.pct-links a{color:var(--ink);text-decoration:none;font-weight:600}
.pct-links a:hover{text-decoration:underline}
.pct-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px}
.pct-card .wpcf7{margin:0}
.pct-card .wpcf7 p{margin:0 0 14px}
.pct-card .wpcf7-form-control-wrap{display:block}
.pct-card .wpcf7 input[type=text],.pct-card .wpcf7 input[type=email],.pct-card .wpcf7 input[type=tel],.pct-card .wpcf7 input[type=url],.pct-card .wpcf7 textarea{width:100%;background:var(--page);border:1px solid var(--line);border-radius:12px;padding:13px 15px;font-size:15px;color:var(--ink);font-family:inherit;line-height:1.4;outline:none;transition:border-color .15s}
.pct-card .wpcf7 input:focus,.pct-card .wpcf7 textarea:focus{border-color:var(--ink)}
.pct-card .wpcf7 textarea{min-height:132px;resize:vertical}
.pct-card .wpcf7 ::placeholder{color:var(--muted);opacity:.85}
.pct-card .wpcf7-acceptance{font-size:13px;color:var(--muted);margin:2px 0 0}
.pct-card .wpcf7-acceptance .wpcf7-list-item{margin:0}
.pct-card .wpcf7-submit{background:var(--ink);color:var(--page);border:0;border-radius:999px;padding:13px 32px;font-weight:700;font-size:15px;cursor:pointer;margin-top:6px;-webkit-appearance:none}
.pct-card .wpcf7-spinner{margin:0 0 0 10px}
@media (max-width:880px){
 .pab-mission{grid-template-columns:1fr;gap:22px;margin-bottom:48px}
 .pab-stats{grid-template-columns:1fr;gap:12px}
 .pab-stat{min-height:0;padding:26px}
 .pab-brands{grid-template-columns:repeat(3,1fr)}
 .pct-grid{grid-template-columns:1fr;gap:26px}
}
@media (max-width:520px){
 .pab-brands{grid-template-columns:repeat(2,1fr)}
 .pt-about,.pt-contact{padding:4px 16px 64px}
}

/* about/contact dark-mode card fix (pin cards navy+white) */
.pab-stat{background:#0f1729!important;color:#fff!important}
.pab-stat .pab-n,.pab-stat .pab-l{color:#fff!important}
.pab-side{background:#0f1729!important;color:#fff!important}
.pab-side .pab-q,.pab-side .pab-qs{color:#fff!important}


/* ===== Mobile UX fixes batch A (Claude 2026-06-26) ===== */
/* #1 kill horizontal overflow: hide the invisible .ptc-hd spacer on mobile (its .ptc-nav is 395px wide). Mobile uses the sticky .ptm-bar. */
@media (max-width:980px){ header.ptc-hd{ display:none !important; } }
/* #2 About/Contact: suppress the Uncode theme's duplicate mobile header bar */
.page-id-157101 .menu-wrapper, .page-id-157141 .menu-wrapper{ display:none !important; }
.page-id-157101 .menu-sticky-mobile, .page-id-157141 .menu-sticky-mobile{ display:none !important; }
/* #3 newsletter (Boxzilla) popup renders empty on mobile — suppress it there */
@media (max-width:782px){ .boxzilla-overlay, .boxzilla-container{ display:none !important; } html.boxzilla-is-open, body.boxzilla-is-open{ overflow:auto !important; } }


/* ===== Mobile UX fixes batch B (Claude 2026-06-26) ===== */
/* #4 trim oversized hero top padding on mobile (sticky bar needs no desktop-nav clearance) */
@media (max-width:980px){ body.home .pth-hero{ padding-top:34px !important; padding-bottom:24px !important; } }
/* #5 Contact form: stack Name/Email full-width on mobile */
@media (max-width:600px){ .pct-card .wpcf7-inline-wrapper{ display:block !important; } .pct-card .wpcf7-inline-wrapper > *{ display:block !important; width:100% !important; } }
/* #6 remove leftover ghost chips watermark behind note hero badges */
.pt-hero-chips{ display:none !important; }
/* #8 homepage filter tabs: scroll horizontally instead of clipping */
@media (max-width:640px){ .pth-tabs{ overflow:visible !important; flex-wrap:wrap !important; justify-content:center !important; gap:4px !important; row-gap:8px !important; } .pth-tabs>*{ padding-left:8px !important; padding-right:8px !important; font-size:13px !important; } }

/* note hero backdrop mobile: solid dark, drop the busy logo image behind chips */
@media (max-width:782px){ .ptnx-hero{ background-image:none !important; background-color:#0b0c0d !important; } }


/* ===== Mobile homepage: PT logo centered above hero (moved out of top bar) ===== */
.ptm-hero-logo{display:flex !important;justify-content:center !important;align-items:center !important;text-align:center !important;width:100% !important;height:auto !important;margin:12px auto 26px !important;transition:opacity .12s ease}
.ptm-hero-logo img,.ptm-hero-logo svg{width:72% !important;height:auto !important;max-width:290px !important;margin:0 auto !important}
.ptm-bar-logo{position:absolute !important;left:50% !important;top:50% !important;transform:translate(-50%,-50%) !important;height:auto !important;opacity:0;transition:opacity .12s ease;line-height:0}
.ptm-bar-logo img,.ptm-bar-logo svg{height:26px !important;width:auto !important;display:block}
