/* partners-marketing.css — Contentine Analyze marketing · Partners surfaces (design 2026-09-25)
   Load after marketing.css. Uses ONLY its tokens (--ground --ground-2 --surface --surface-2 --border --border-2
   --ink --body --cap --gold --gold-2 --gold-dk --gold-bg --gold-line --sans --serif --mono --shadow --shadow-lg)
   and its classes (.wrap .kicker h2 .sub .section-head .btn .btn.gold .btn.sm .cta). Nothing here is a new colour.
   Every class is prefixed pt- so nothing collides with the site. */

/* ============ 1. Home strip (between the hero and #library) ============ */
.pt-strip{padding:34px 0 38px;border-top:1px solid var(--border-2);background:var(--ground)}
.pt-strip[hidden]{display:none}
.pt-strip__head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.pt-strip__head .kicker{margin:0}
.pt-strip__line{font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.01em;margin:0}
.pt-strip__all{margin-left:auto;font-size:14px;font-weight:600;color:var(--gold-dk);text-decoration:none;white-space:nowrap}
.pt-strip__all:hover{color:var(--ink)}

/* the cell row */
.pt-logos{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;margin:0;padding:0}
.pt-strip--few .pt-logos{justify-content:center}          /* 1–3 partners */

/* one logo cell — an <a> to /partners/<tag> */
.pt-logo{display:inline-flex;align-items:center;justify-content:center;height:60px;min-width:132px;max-width:200px;padding:0 20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--gold-dk);box-shadow:var(--shadow);flex:0 0 auto;transition:box-shadow .14s,border-color .14s,transform .14s}
.pt-logo:hover,.pt-logo:focus-visible{box-shadow:var(--shadow-lg);border-color:var(--gold-line);transform:translateY(-1px)}
.pt-logo img{display:block;max-height:28px;max-width:140px;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.78;transition:filter .15s,opacity .15s}
.pt-logo:hover img,.pt-logo:focus-visible img{filter:none;opacity:1}
.pt-logo__name{font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--gold-dk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 9+ partners: a slow marquee. Track = the set twice; the copy is aria-hidden with tabindex=-1 links. */
.pt-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.pt-marquee .pt-logos{flex-wrap:nowrap;width:max-content;animation:pt-scroll 48s linear infinite}
.pt-marquee:hover .pt-logos,.pt-marquee:focus-within .pt-logos{animation-play-state:paused}
.pt-logos__dup{display:contents}
@keyframes pt-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .pt-marquee{-webkit-mask-image:none;mask-image:none}
  .pt-marquee .pt-logos{animation:none;flex-wrap:wrap;width:auto}
  .pt-logos__dup{display:none}
  .pt-logo,.pt-card{transition:none}
}

/* ============ 2. /partners listing ============ */
.pt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.pt-card{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow);transition:transform .16s,box-shadow .16s}
.pt-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.pt-card__logo{display:flex;align-items:center;justify-content:center;height:88px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:12px;padding:0 18px}
.pt-card__logo img{display:block;max-height:40px;max-width:70%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.85;transition:filter .15s,opacity .15s}
.pt-card:hover .pt-card__logo img{filter:none;opacity:1}
.pt-card__logo .pt-logo__name{font-size:19px}
.pt-card h3{margin:0;font-size:18px}
.pt-card h3 a{color:var(--ink);text-decoration:none}
.pt-card h3 a::after{content:"";position:absolute;inset:0;border-radius:16px}   /* the whole card opens the detail */
.pt-card h3 a:focus-visible{outline:none}
.pt-card h3 a:focus-visible::after{outline:2px solid var(--gold-line);outline-offset:2px}
.pt-card p{margin:0;font-size:15px;color:var(--body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pt-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:4px}
.pt-card__more{font-size:14px;font-weight:600;color:var(--gold-dk)}
.pt-card__visit{position:relative;z-index:1}                 /* above the stretched link */
.pt-empty{text-align:center;padding:52px 24px;border:1px dashed var(--border);border-radius:16px;color:var(--body);background:var(--surface)}
.pt-empty strong{display:block;font-size:19px;color:var(--ink);margin-bottom:6px;font-weight:600}
.pt-empty p{margin:0}
.pt-empty a{font-weight:600}

/* ============ 3. /partners/<tag> detail ============ */
.pt-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--cap);text-decoration:none;margin-bottom:26px}
.pt-back:hover{color:var(--ink)}
.pt-head{display:grid;grid-template-columns:168px minmax(0,1fr);gap:36px;align-items:center}
.pt-head__logo{display:flex;align-items:center;justify-content:center;height:128px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:0 20px;box-shadow:var(--shadow)}
.pt-head__logo img{display:block;max-height:60px;max-width:100%;width:auto;height:auto;object-fit:contain}   /* full colour: it is the subject */
.pt-head__logo .pt-logo__name{font-size:22px}
.pt-head .kicker{margin-bottom:8px}
.pt-head h1{font-family:var(--serif);font-size:clamp(32px,4vw,44px);line-height:1.08;letter-spacing:-.015em;color:var(--ink);margin:0 0 10px;font-weight:600}
.pt-head .lede{font-size:19px;color:var(--body);margin:0 0 20px;max-width:56ch}
.pt-head .lede:last-child{margin-bottom:0}
.pt-about{max-width:64ch;font-size:17px;line-height:1.7;color:var(--body);margin-top:44px}
.pt-about p{margin:0 0 18px}
.pt-about p:last-child{margin-bottom:0}

/* ============ focus ============ */
.pt-strip a:focus-visible,.pt-card a:focus-visible,.pt-back:focus-visible,.pt-head a:focus-visible{outline:2px solid var(--gold-line);outline-offset:2px}

/* ============ responsive (the site's breakpoints) ============ */
@media (max-width:900px){
  .pt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-head{grid-template-columns:1fr;gap:20px}
  .pt-head__logo{width:168px}
}
@media (max-width:600px){
  .pt-grid{grid-template-columns:1fr}
  .pt-strip{padding:28px 0 32px}
  .pt-strip__head{gap:10px 18px}
  .pt-strip__line{flex-basis:100%}
  .pt-strip__all{margin-left:0}
  .pt-strip--few .pt-logos{justify-content:flex-start}
  .pt-logo{height:56px;min-width:0;max-width:none;flex:1 1 calc(50% - 6px);padding:0 14px}
  .pt-logo img{max-width:100%}
  .pt-head__logo{width:160px;height:104px}
  .pt-head .btn{width:100%;justify-content:center}
  .pt-about{margin-top:28px;font-size:16px}
}
