/* ==========================================================================
   PainTEQ Publications Page Styles
   ========================================================================== */

/* Override Hello Elementor 800px cap on non-Elementor pages */
body.page-id-4662 .site-main{max-width:none!important;width:100%!important}

/* Match the rest of the site: Bahnschrift display font (Saira fallback), scoped to this page */
body.page-id-4662{--pt-font-display:Bahnschrift,"Saira","Helvetica Neue",Arial,sans-serif}

/* ==========================================================================
   Base design-system classes used by this page
   (not present in painteq-custom.css - sourced from local mockup styles.css)
   ========================================================================== */
section{position:relative;padding-block:clamp(80px,12vw,200px)}
.display-1,.display-2,.display-3{font-family:var(--pt-font-display);font-weight:500;letter-spacing:-.035em;line-height:.94;text-wrap:balance;margin:0}
.display-1{font-size:var(--pt-display-1)}
.display-2{font-size:var(--pt-display-2);letter-spacing:-.03em;line-height:.98}
.display-3{font-size:var(--pt-display-3);letter-spacing:-.025em;line-height:1.02}
.subhead{font-family:var(--pt-font-display);font-size:clamp(17px,1.45vw,22px);line-height:1.45;font-weight:300;letter-spacing:0;max-width:56ch;text-wrap:pretty;color:inherit;opacity:.78;margin:0}
.section-header{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:clamp(60px,8vw,120px)}
.section-header .eyebrow{margin-bottom:8px}
.section-header .display-2{margin-bottom:0}
.eyebrow{display:inline-flex;gap:14px;opacity:.65;margin:0}
.eyebrow::before{opacity:.7}
.btn{display:inline-flex;align-items:center;gap:14px;padding:18px 28px 18px 30px;border:1px solid currentColor;border-radius:999px;font-family:var(--pt-font-display);font-size:13.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;background:transparent;color:inherit;transition:background .22s,color .22s;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--pt-corporate-blue);border-color:var(--pt-corporate-blue);color:#fff}
.reveal{opacity:0;transform:translateY(16px);transition:opacity 720ms ease,transform 720ms ease}
.reveal.in{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* -- Hero -- */
.pubs-hero{padding-block:clamp(120px,16vh,200px) clamp(64px,8vw,120px)}
.pubs-hero-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:end}
.pubs-hero .display-2{color:#fff;max-width:16ch;margin-top:20px}
.pubs-hero .subhead{opacity:.78;max-width:52ch;margin-top:24px}
.pubs-count{border-left:1px solid rgba(255,255,255,.18);padding-left:clamp(24px,3vw,44px)}
.pubs-count-num{font-family:var(--pt-font-display);font-size:clamp(72px,9vw,150px);font-weight:500;letter-spacing:-.04em;line-height:.9;color:#fff}
.pubs-count-num sup{font-size:.4em;color:var(--pt-corporate-blue);vertical-align:.9em;margin-left:.04em}
.pubs-count-label{font-family:var(--pt-font-display);font-size:clamp(14px,1.1vw,17px);line-height:1.5;opacity:.75;margin-top:16px;max-width:26ch}
.pubs-count-meta{font-family:var(--pt-font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.5;margin-top:28px}

/* -- Pillars / Highlights -- */
.pubs-pillars{padding-block:clamp(56px,7vw,104px)}
#highlights,#library{scroll-margin-top:96px}
.pubs-ledger{display:flex;flex-direction:column;margin-top:40px;border-top:1px solid var(--pt-line,#D6DDE2)}
.pubs-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(20px,3vw,48px) clamp(24px,4vw,72px);align-items:start;padding-block:clamp(40px,5vw,72px);border-bottom:1px solid var(--pt-line,#D6DDE2)}
.pubs-ledger-word{font-family:var(--pt-font-display);font-size:clamp(36px,5vw,80px);font-weight:500;letter-spacing:-.035em;line-height:.95;color:var(--pt-deep);white-space:nowrap}
.pubs-ledger-word em{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;color:var(--pt-corporate-blue)}
.pubs-ledger-b{font-size:clamp(16px,1.25vw,20px);line-height:1.55;color:var(--pt-ink-2);margin:0;text-wrap:pretty;padding-top:.5em;max-width:58ch}

/* -- Proof cards & numbers -- */
.pubs-proofs{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,88px);align-items:end;padding-top:12px}
.pubs-proof-num{font-family:var(--pt-font-display);font-size:clamp(64px,7.5vw,128px);font-weight:500;letter-spacing:-.045em;line-height:.9;color:var(--pt-deep);white-space:nowrap}
.pubs-proof-num small{font-size:.38em;color:var(--pt-corporate-blue);margin-left:.06em;letter-spacing:-.01em}
.pubs-proof-txt{font-family:var(--pt-font-display);font-size:clamp(16px,1.3vw,20px);line-height:1.5;color:var(--pt-ink-2);max-width:30ch;margin-top:16px}
.pubs-proof-txt strong{color:var(--pt-deep);font-weight:600}
.pubs-proof-txt span{display:block;font-family:var(--pt-font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--pt-ink-3);margin-top:6px}
.pubs-proof-pair{display:flex;flex-direction:column;gap:14px;align-self:stretch}
.pubs-proofs:has(.pubs-proof-pair){align-items:stretch}
.pubs-proof-card{border-left:3px solid var(--pt-corporate-blue);background:rgba(22,172,227,.07);padding:18px 22px 18px 20px}
.pubs-proof-card .pubs-proof-num{font-size:clamp(44px,4.6vw,72px)}
.pubs-proof-card .pubs-proof-txt{margin-top:8px;font-size:14.5px;max-width:none}
.pubs-proof-pair .pubs-proof-link{margin-top:6px}
.pubs-proof-link{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-family:var(--pt-font-display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--pt-deep);text-decoration:none;border-bottom:1px solid rgba(0,37,57,.3);padding-bottom:3px;transition:gap .2s,border-color .2s;width:max-content}
.pubs-proof-link:hover{gap:14px;border-color:var(--pt-corporate-blue)}
.pubs-proof-link svg{width:13px;height:13px}

/* -- Data viz shared -- */
.pubs-viz{font-family:var(--pt-font-display)}
.pubs-viz-title{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--pt-deep);margin-bottom:18px}
.pubs-viz-note{font-family:var(--pt-font-mono);font-size:11px;letter-spacing:.03em;line-height:1.6;color:var(--pt-ink-3);margin-top:8px;grid-column:1/-1;max-width:90ch}
.pubs-viz-note a{color:inherit}

/* -- ODI stacked bars -- */
.pubs-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px);align-items:end;height:clamp(220px,24vw,320px);border-bottom:1px solid var(--pt-line,#D6DDE2);padding-bottom:0;max-width:360px;position:relative}
.pubs-odi-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.pubs-col{display:flex;flex-direction:column-reverse;height:100%;position:relative}
.pubs-seg{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff;min-height:0;overflow:hidden}
.pubs-col-lbl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px);max-width:360px;margin-top:12px;font-size:15px;font-weight:600;color:var(--pt-deep);text-align:center}
.pubs-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;font-size:13px;color:var(--pt-ink-2)}
.pubs-legend span::before{content:"";display:inline-block;width:10px;height:10px;background:var(--c);margin-right:7px;vertical-align:middle}
.pubs-viz:has(#odi-cols){display:flex;flex-direction:column}
.pubs-viz:has(#odi-cols) .pubs-cols{flex:1;height:auto!important;min-height:200px}

/* -- NRS bars -- */
.pubs-bars2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);align-items:end;height:clamp(200px,22vw,300px);border-bottom:1px solid var(--pt-line,#D6DDE2);max-width:320px}
.pubs-bar2{position:relative;background:var(--c)}
.pubs-bar2 b{position:absolute;left:0;right:0;bottom:calc(100% + 10px);text-align:center;font-size:22px;font-weight:600;color:var(--pt-deep)}
.pubs-bars2-lbl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);max-width:320px;margin-top:12px;font-size:15px;font-weight:600;color:var(--pt-deep);text-align:center}
.pubs-bars2-lbl small{display:block;font-size:11px;font-weight:400;color:var(--pt-ink-2);margin-top:2px}
.pubs-bars3{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-width:400px!important}
.pubs-viz.pubs-nrs,.pubs-nrs-bars{display:flex;flex-direction:column}
.pubs-nrs-wrap{position:relative;display:flex!important;flex-direction:column;flex:1;max-width:400px}
.pubs-nrs-wrap .pubs-bars2,.pubs-nrs-wrap .pubs-bars2-lbl{max-width:none!important}
.pubs-nrs-bars{min-width:0;flex:1}
.pubs-nrs-wrap .pubs-bars2-lbl span{font-size:13px;line-height:1.25;hyphens:manual;overflow-wrap:normal}
.pubs-nrs-wrap .pubs-bars2,.pubs-nrs-wrap .pubs-bars2-lbl{gap:clamp(14px,2vw,28px)!important}
.pubs-nrs-bars .pubs-viz-title{margin-bottom:0}
.pubs-nrs-bars .pubs-bars2{margin-top:44px;flex:1;height:auto!important;min-height:200px}
.pubs-nrs-arrow{position:absolute;pointer-events:none;overflow:visible}
.pubs-nrs-callout{align-self:center;padding-bottom:40px}
.pubs-nrs-num{font-family:var(--pt-font-display);font-size:clamp(56px,6.5vw,104px);font-weight:500;letter-spacing:-.045em;line-height:.9;color:var(--pt-deep);white-space:nowrap}
.pubs-nrs-num small{font-size:.38em;color:var(--pt-corporate-blue);margin-left:.06em;letter-spacing:-.01em}
.pubs-nrs-sub{font-family:var(--pt-font-display);font-size:14.5px;line-height:1.45;color:var(--pt-ink-2);margin-top:12px}
.pubs-viz-title-below{margin:14px 0 0;text-align:center;font-weight:500;color:var(--pt-ink-2)}
.pubs-viz.pubs-nrs{align-self:stretch}

/* -- Biomechanics planes -- */
.pubs-biomech{display:flex;flex-direction:column}
.pubs-planes{display:flex;flex-direction:column;gap:clamp(16px,2vw,28px);flex:1;justify-content:space-between}
.pubs-plane{display:grid;grid-template-columns:140px minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(12px,2vw,28px);align-items:center}
.pubs-plane .pubs-hgroup-img{width:140px;max-width:none;margin:0}
.pubs-plane-verb{white-space:nowrap;font-family:var(--pt-font-display);font-size:clamp(26px,2.4vw,38px);font-weight:600;color:var(--pt-deep);line-height:1.1}
.pubs-plane-sub{font-family:var(--pt-font-mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--pt-ink-3);margin-top:5px}
.pubs-plane-bars{display:flex;flex-direction:column;gap:10px}
.pubs-plane .pubs-hrow{grid-template-columns:78px minmax(0,1fr);font-size:15px;gap:14px;margin:0}
.pubs-plane .pubs-hrow>span{font-weight:600;color:var(--pt-deep);white-space:nowrap}
.pubs-plane .pubs-hrow:last-child>span{font-weight:400;color:var(--pt-ink-3)}
.pubs-plane .pubs-htrack{height:40px;background:transparent}
.pubs-plane .pubs-hfill b{font-size:19px;left:calc(100% + 12px)}
.pubs-hbars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.pubs-hgroup-img{display:block;width:100%;max-width:260px;aspect-ratio:1;object-fit:contain;margin:0 auto 14px}
.pubs-hgroup-t{font-size:17px;font-weight:600;color:var(--pt-deep);margin-bottom:12px}
.pubs-hgroup-t span{display:block;font-weight:400;color:var(--pt-ink-3);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;margin-top:4px}
.pubs-hrow{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:8px;font-size:13px;color:var(--pt-ink-2)}
.pubs-htrack{height:26px;background:var(--pt-line-soft,#ECEFF2);position:relative}
.pubs-hfill{height:100%;background:var(--c);position:relative}
.pubs-hfill b{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);font-size:16px;font-weight:600;color:var(--pt-deep);white-space:nowrap}
.pubs-axis{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,88px);align-items:end;margin-top:28px;padding-top:28px;border-top:1px solid var(--pt-line,#D6DDE2)}
.pubs-axis .pubs-proof-num{font-size:clamp(48px,5.5vw,96px)}

/* -- Library section -- */
.pubs-library{padding-block:clamp(72px,9vw,140px)}
.pubs-library .section-header .display-2{color:#fff}
.pubs-library .subhead{opacity:.72}
.pubs-filters{display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 8px}
.pubs-filter{font-family:var(--pt-font-display);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;padding:10px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.pubs-filter:hover{border-color:var(--pt-corporate-blue)}
.pubs-filter[aria-pressed="true"]{background:var(--pt-corporate-blue);border-color:var(--pt-corporate-blue);color:var(--pt-deep)}
.pubs-filter span{opacity:.55;margin-left:6px;font-family:var(--pt-font-mono);letter-spacing:0}
.pubs-filter[aria-pressed="true"] span{opacity:.7}
.pubs-rows{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.14);margin-top:28px}
.pubs-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;gap:clamp(20px,3vw,56px);padding-block:30px;border-bottom:1px solid rgba(255,255,255,.12);align-items:start}
.pubs-row[hidden]{display:none}
.pubs-row-cat{font-family:var(--pt-font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pt-corporate-blue);margin-bottom:12px}
.pubs-row-title{font-family:var(--pt-font-display);font-size:clamp(18px,1.5vw,23px);font-weight:500;letter-spacing:-.01em;line-height:1.2;color:#fff;margin:0}
.pubs-row-body{font-size:15px;line-height:1.6;color:rgba(255,255,255,.72);margin:0;text-wrap:pretty}
.pubs-row-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--pt-font-display);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-decoration:none;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px;transition:gap .2s,border-color .2s}
.pubs-row-link:hover{gap:16px;border-color:var(--pt-corporate-blue)}
.pubs-row-link svg{width:14px;height:14px}
.pubs-empty{padding:40px 0;font-size:15px;opacity:.6;display:none}
.pubs-library-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-top:56px}
.pubs-library-cta .subhead{max-width:44ch;margin:0}
.pubs-library-cta .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-family:var(--pt-font-display);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:#fff;background:transparent;cursor:pointer;transition:all .3s ease;white-space:nowrap}
.pubs-library-cta .btn:hover{background:var(--pt-corporate-blue);border-color:var(--pt-corporate-blue);color:var(--pt-deep)}
.pubs-library-cta .btn svg{width:16px;height:16px;flex-shrink:0}

/* -- Responsive -- */
@media (max-width:1100px){
  .pubs-hbars{grid-template-columns:1fr}
  .pubs-plane{grid-template-columns:96px minmax(0,1fr)}
  .pubs-plane-bars{grid-column:1/-1}
  .pubs-plane .pubs-hgroup-img{width:96px}
}
@media (max-width:880px){
  .pubs-hero-grid{grid-template-columns:1fr}
  .pubs-count{border-left:none;padding-left:0;border-top:1px solid rgba(255,255,255,.18);padding-top:32px}
  .pubs-ledger-row{grid-template-columns:1fr;gap:16px}
  .pubs-ledger-b,.pubs-proofs{padding-top:0}
  .pubs-proofs{grid-template-columns:1fr;gap:28px}
  .pubs-hfill b{font-size:13px}
  .pubs-row{grid-template-columns:1fr;gap:12px}
  .pubs-row-link{margin-top:4px}
  .pubs-axis{grid-template-columns:1fr}
}
@media (max-width:640px){
  .pubs-nrs-wrap{grid-template-columns:1fr}
  .pubs-nrs-callout{padding-bottom:0;padding-top:8px}
}
