/*
Theme Name: Pub K
Theme URI: https://pub-k.org
Author: Lantern
Description: Custom block theme for Pub K — The Public Contracts & Grants Institute of Washington D.C. Built from the approved homepage design.
Version: 0.99.14
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
License: Proprietary
Text Domain: pubk
*/

/* ---------- Design tokens (PubKDesignSystem) ---------- */
:root {
  --pubk-sticky-top: 0px; /* 0.40.0: admin-bar aware offset for the pinned Weekly bar */
  --pubk-bar-h: 38px; /* 0.40.0: pinned Weekly bar height; page-level sticky bars sit below it */
  --navy: #0B2545;
  --navy-deep: #061229;
  --navy-mid: #13345C;
  --red: #C8102E;
  --red-deep: #9F0A22;
  --gold: #c2a258; /* 0.73.0 (Patrick 2026-09-22 "unify the remaining golds too"): ONE gold site-wide = the masthead's Established 1999 value. --gold, --gold-soft, --gold-accessible and --gold-label all resolve to #c2a258 (rules, bullets, numerals, tints, type on navy, small labels); the four names stay so every rule keeps its intent. Was #B89538. */
  --gold-accessible: #c2a258; /* 0.73.0: the one gold (was #8A6A1F, the AA gold of audit C-10; only .pubk-sf-done-h2 em still references this name) */
  --gold-label: #c2a258; /* 0.73.0: all four gold tokens share this value now. 0.72.0 (Robert via Patrick 2026-09-21, "still the wrong gold"): ONE gold for small gold type = the masthead's Established 1999 value (Patrick 0.55.0). Every former --gold-accessible text rule, the masthead line and the footer's gold text point here. 2.4:1 on white / 2.2:1 on cream at 11-12px — the client's call, flagged; --gold (rules, borders, bullets) and --gold-soft (type on navy) followed in 0.73.0. */
  --gold-soft: #c2a258; /* 0.73.0: the one gold (was #D9BA6F for type on navy; #c2a258 on navy is 6.3:1, passes AA) */
  --cream: #F8F5EE;
  --cream-soft: #FBFAF6;
  --paper: #FFFFFF;
  --ink: #111827;
  --ink-soft: #2A2D34;
  --gray: #6B6B6B;
  --gray-light: #D4D0C7;
  --line: #E5E1D6;
  --on-navy-body: #C8D2E0;
  --on-navy-muted: #A8B4C7;
  --on-navy-faint: #8191A9;
  --brief-protests: #2B5C8A;
  --brief-cyber: #3E7A4E;
  --brief-compliance: #C8102E;
  --brief-transforming: #5B6470;
  --serif: 'Newsreader', Georgia, serif;
  --sans: 'Public Sans', 'Helvetica Neue', Arial, sans-serif;
  --container-max: 1280px;
  --container-pad: 32px;
  /* 0.39.0 homepage redesign (Patrick's Claude Design file, 2026-09-14) */
  --slate: #3D4F68;        /* body copy on light surfaces */
  --slate-light: #7C8BA3;  /* muted labels, meta lines */
  --sand: #F3ECD9;         /* In-House Benchmarking band */
  --mark-protests: #0071BB;     /* the four Brief marks' tile colours, sampled from the client's 2026-09-14 PNGs (the --brief-* keys above predate them) */
  --mark-cyber: #006838;
  --mark-compliance: #961C1F;
  --mark-transforming: #4B4C4E;
}

body {
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 380;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}

/* ---------- Type helpers ---------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--serif);
  font-weight: 380;
  letter-spacing: -0.02em;
  margin: 0;
}

.pubk-eyebrow {
  font-family: var(--sans);
  font-size: 11px !important;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--red);
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}
.pubk-eyebrow::before {
  content: "";
  width: 36px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
  display: inline-block;
}
.pubk-on-dark .pubk-eyebrow { color: var(--gold-soft); }

.pubk-h-section {
  font-size: clamp(30px, 3.2vw, 44px) !important;
  line-height: 1.1;
  color: var(--ink);
}
.pubk-h-section em, .pubk-h-hero em { font-style: italic; font-weight: 300; color: var(--navy); }
.pubk-on-dark .pubk-h-section, .pubk-on-dark h2, .pubk-on-dark h3 { color: #fff; }
.pubk-on-dark .pubk-h-section em, .pubk-on-dark h2 em, .pubk-on-dark h3 em { color: var(--gold-soft); }

.pubk-lede { font-size: 17px; line-height: 1.65; color: var(--ink-soft); }
.pubk-on-dark .pubk-lede { color: var(--on-navy-body); font-weight: 300; }

.pubk-serif-italic { font-family: var(--serif); font-style: italic; }

/* ---------- Buttons ---------- */
.pubk-comm-btn,
.pubk-brief-btn,
.pubk-magr-btn,
.pubk-btn .wp-block-button__link,
.pubk-btn-outline .wp-block-button__link,
.pubk-btn-outline-light .wp-block-button__link,
.pubk-btn-outline-dark .wp-block-button__link,
.pubk-btn-navy .wp-block-button__link,
.pubk-btn-text .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 26px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 0;
  transition: background-color 0.25s, color 0.25s, border-color 0.25s;
  text-decoration: none;
}
.pubk-btn .wp-block-button__link { background: var(--red); color: #fff; }
.pubk-btn .wp-block-button__link:hover { background: var(--red-deep); color: #fff; }
.pubk-btn-outline .wp-block-button__link,
.pubk-btn-outline-light .wp-block-button__link {
  background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, 0.4);
}
.pubk-btn-outline .wp-block-button__link:hover,
.pubk-btn-outline-light .wp-block-button__link:hover { border-color: #fff; color: #fff; }
.pubk-btn-outline-dark .wp-block-button__link {
  background: transparent; color: var(--navy); border: 1px solid rgba(11, 37, 69, 0.35);
}
.pubk-btn-outline-dark .wp-block-button__link:hover { border-color: var(--navy); }
/* 0.39.0: solid navy button (Benchmarking) and the bare text CTA that sits beside a primary button (How It Works, Talk to Us) */
.pubk-btn-navy .wp-block-button__link { background: var(--navy); color: #fff; }
.pubk-btn-navy .wp-block-button__link:hover { background: var(--navy-mid); color: #fff; }
.pubk-btn-text .wp-block-button__link { background: transparent; border: 0; color: var(--navy); padding-left: 0; padding-right: 0; }
.pubk-btn-text .wp-block-button__link:hover { color: var(--red); }

.pubk-textlink {
  font-size: 12px !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
}
.pubk-textlink a { color: var(--navy); text-decoration: none; }
.pubk-on-dark .pubk-textlink a { color: #fff; }

/* ---------- Utility bars (0.39.0: the announcement centred on navy; the account links on their own white row) ---------- */
.pubk-utility {
  background: var(--navy);
  color: var(--on-navy-body);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  text-align: center;
}
.pubk-utility p { margin: 0; padding: 10px 0; }
.pubk-utility a { color: var(--gold-soft); text-decoration: none; margin-left: 6px; }
.pubk-utility a:hover { color: #fff; }
.pubk-utility .pubk-announce { color: var(--gold-soft); margin-right: 6px; }
.pubk-utility-links { background: var(--paper); border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 600; }
.pubk-utility-links p { margin: 0; padding: 8px 0; display: flex; justify-content: flex-end; gap: 22px; }
.pubk-utility-links a { color: var(--navy); text-decoration: none; }
.pubk-utility-links a:hover { color: var(--red); }

/* ---------- Pinned Pub K Weekly bar (0.40.0: the design's red sticky bar above the sponsorship bar, site-wide; Patrick 09-14 23:28Z) ---------- */
.admin-bar { --pubk-sticky-top: 32px; }
@media (max-width: 782px) { .admin-bar { --pubk-sticky-top: 46px; } }
/* Fixed, not sticky: a sticky bar can never leave its parent box, and the header part is the parent, so it would scroll away with the
   masthead. Fixed + a spacer on the site wrapper gives the design's pinned bar on every page. */
.pubk-weekly-bar {
  background: var(--red);
  color: #fff;
  left: 0;
  position: fixed;
  right: 0;
  top: var(--pubk-sticky-top);
  z-index: 130; /* above the masthead (120) so it stays in front when the page scrolls under it */
}
.wp-site-blocks { padding-top: var(--pubk-bar-h); }
html { scroll-padding-top: calc(var(--pubk-sticky-top) + var(--pubk-bar-h)); } /* anchor jumps land below the pinned bar */
.pubk-weekly-bar p { margin: 0; }
.pubk-weekly-bar a {
  align-items: center;
  box-sizing: border-box;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  gap: 0 14px;
  justify-content: center;
  line-height: 20px;
  min-height: var(--pubk-bar-h);
  padding: 9px 0;
  text-decoration: none;
}
.pubk-weekly-bar .pubk-wb-k { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.pubk-weekly-bar .pubk-wb-t { color: rgba(255,255,255,.9); font-size: 13px; }
.pubk-weekly-bar .pubk-wb-c { border-bottom: 1px solid rgba(255,255,255,.5); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 16px; text-transform: uppercase; }
.pubk-weekly-bar a:hover .pubk-wb-c { border-bottom-color: #fff; }
@media (max-width: 699px) {
  .pubk-weekly-bar .pubk-wb-t { display: none; } /* phones: kicker + Subscribe Free only, one line */
}

/* ---------- Masthead (0.52.0: the institute logo centred with Established 1999 under it, as before 0.39.0, one size up at 88px — Patrick
   2026-09-15 16:55Z "center the Pub K institute logo in the middle of the header like before and make a bit larger, with ESTABLISHED 1999
   under it like before"; the nav keeps its 0.39.0/0.45.0 left-aligned bordered cells and the edge-to-edge rule; white ground) ---------- */
.pubk-masthead {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 120; /* above page-level sticky bars (Ask subnav = 100) so nav dropdowns paint over them */
}
.pubk-masthead-row { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 26px 0 20px; text-align: center; }
.pubk-masthead-row .wp-block-image { margin: 0; }
/* 0.56.0 (Patrick 2026-09-16 part 2): the logo is the client's outlined SVG lockup (assets/img/logo-pubk-institute.svg, viewBox trimmed to the
   artwork) at the same 88px, and Established 1999 sits under the Pub K wordmark instead of under the whole lockup. .pubk-logo-block shrinks to
   the logo's width; the wordmark spans its left 18.31% (measured on the SVG), so the p is a centred flex line exactly that wide, pulled up
   because the lockup's bottom edge (the gold rule) runs 23% of the height below the wordmark's baseline. */
.pubk-logo-block { align-items: flex-start; display: flex; flex-direction: column; max-width: 100%; width: fit-content; }
.pubk-established {
  font-size: 12px !important;
  letter-spacing: 0.22em;
  color: var(--gold-label); /* 0.72.0: = --gold-label (#c2a258). 0.55.0: Patrick 2026-09-16 "make the color #c2a258" (was --gold-accessible #8A6A1F, the AA gold; #c2a258 is 2.4:1 on white at 12px — his call, flagged) */
  text-transform: uppercase;
  font-weight: 700;
  margin: -10px 0 0 !important;
  display: flex; justify-content: center; white-space: nowrap; width: 18.31%;
}
/* 0.45.0: the nav row is alignfull (parts/header.html) so this rule line runs viewport edge to edge, as in the design file
   (a full-width border-top div around a 1280px nav). 0.39.0 had left the group at content width, so the line started under
   the first cell instead of extending left under the logo (Patrick 2026-09-15). The cells stay on the content grid: the
   group is a constrained layout, so the navigation block inside still centres at contentSize. */
.pubk-nav { border-top: 1px solid var(--line); }
.pubk-nav .wp-block-navigation__container { gap: 0; }
.pubk-nav .wp-block-navigation-item__content {
  display: block;
  padding: 18px 30px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
}
.pubk-nav .wp-block-navigation-item { border-right: 1px solid var(--line); }
.pubk-nav .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:first-child,
.pubk-nav .wp-block-navigation__responsive-container-content > .wp-block-navigation__container > .wp-block-navigation-item:first-child { border-left: 1px solid var(--line); }
.pubk-nav .wp-block-navigation-item__content:hover { background: var(--cream); }
.pubk-nav .wp-block-navigation__submenu-icon { margin-left: 8px; margin-right: 14px; }
/* Ask Pub K inline logo in running copy (Patrick 2026-09-09: option 2 of the treatment sheet). Markup: <span class="pubk-apk">Ask Pub K</span>.
   The words stay in the DOM (screen readers, search, find-in-page, copy) but paint transparent; the logo (owl + wordmark, 1308x361 viewBox)
   is the span's background, 1.75em tall so the wordmark's cap height matches the surrounding text, baseline 0.5em below the text baseline.
   Navy/gold on light surfaces, white/gold on navy. Eyebrows and label-size uses get the 2.4em size, centred on the line. Buttons, the
   masthead nav, the footer, image alt text and the mock-UI strings (prompt shell, ghost type, chip) keep plain text on purpose. */
.pubk-apk { background: url(assets/img/askpubk-logo-navy.svg) left center / contain no-repeat; color: transparent; display: inline-block; height: 1.75em; line-height: 0; overflow: hidden; text-align: left; vertical-align: -0.5em; white-space: nowrap; width: 6.34em; }
.pubk-on-dark .pubk-apk, .has-navy-background-color .pubk-apk, .has-navy-deep-background-color .pubk-apk { background-image: url(assets/img/askpubk-logo-white.svg); }
.pubk-eyebrow .pubk-apk { height: 2.4em; vertical-align: middle; width: 8.7em; }

/* Ask Pub K owl mark in the masthead nav (Robert 2026-09-08). The li carries className pubk-nav-ask;
   the mark is a ::before on the link so the label span, hover and focus styles stay core-owned. */
.pubk-nav .pubk-nav-ask > .wp-block-navigation-item__content { align-items: center; display: flex; gap: 9px; }
/* 0.56.0: the Ask Pub K dropdown is two groups. 0.68.0 (Patrick 2026-09-18): Access / Subscribe (red) on top, a rule, then About / Pricing / Schedule a Demo / FAQs and Training. 0.69.0 (Patrick 2026-09-21): Subscribe -> /checkout/ (the universal checkout page; Access stays the app sign-in); every buy-intent CTA site-wide points at /checkout/. */
.pubk-nav .wp-block-navigation__submenu-container > .pubk-nav-sep { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 6px; }
.pubk-nav .pubk-nav-access > .wp-block-navigation-item__content { color: var(--red); }
.pubk-nav .pubk-nav-ask > .wp-block-navigation-item__content::before { /* 0.46.0: direct child — the item is a submenu now (About / Resource Library / Pricing / Schedule a Demo) and the children stay plain */
  background: url(assets/img/askpubk-owl.svg) center / contain no-repeat;
  content: "";
  flex: 0 0 auto;
  height: 24px;
  margin: -4px 0; /* outer box = the 16px label line, so the item stays exactly as tall as its neighbours */
  width: 26px;
}

/* ---------- Hero (0.39.0: tighter — 58px headline, fixed 110/120 padding, gold glow top right) ---------- */
.pubk-hero {
  border-radius: 0;
}
.pubk-hero .wp-block-cover__image-background { filter: saturate(0.92); object-position: center 85%; }
.pubk-hero .wp-block-cover__background {
  background: radial-gradient(700px 420px at 88% -10%, rgba(194, 162, 88, 0.28), transparent 70%),
    linear-gradient(rgba(6, 18, 41, 0.35) 0%, rgba(6, 18, 41, 0.45) 40%, rgba(6, 18, 41, 0.92) 100%),
    linear-gradient(90deg, rgba(11, 37, 69, 0.7) 0%, rgba(11, 37, 69, 0.1) 60%, rgba(11, 37, 69, 0) 100%) !important;
  opacity: 1 !important;
}
.pubk-hero .pubk-eyebrow { color: var(--gold-soft); font-size: 11px !important; letter-spacing: 0.32em; margin-bottom: 28px; }
.pubk-h-hero {
  font-size: clamp(40px, 4.1vw, 58px) !important;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: #fff;
  max-width: 820px;
  margin-bottom: 26px !important;
}
.pubk-h-hero em { color: var(--gold-soft); font-weight: 380; }
.pubk-hero-lede {
  font-size: 18px;
  line-height: 1.6;
  font-weight: 380;
  color: var(--on-navy-body);
  max-width: 620px;
  margin-bottom: 38px !important;
}

/* ---------- Weekly strip ---------- */
.pubk-weekly { background: var(--cream); border-bottom: 1px solid var(--line); }
.pubk-weekly-name {
  font-family: var(--serif);
  font-size: 26px !important;
  font-style: italic;
  font-weight: 460;
  color: var(--navy);
  letter-spacing: -0.01em;
  white-space: nowrap;
  padding-right: 28px;
  border-right: 1px solid var(--line);
}
.pubk-weekly-desc { font-size: 15px !important; color: var(--ink-soft); }
/* 0.12.4: gap between field and button so the focus outline is never covered (Patrick 08-24) */
.pubk-weekly-form { display: flex; gap: 10px; }
.pubk-weekly-form input[type="email"] {
  padding: 14px 18px; font-family: var(--sans); font-size: 14px;
  border: 1px solid var(--line); background: #fff; outline: none;
  border-radius: 0; width: 280px;
}
.pubk-weekly-form button {
  padding: 14px 26px; font-size: 12px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; background: var(--red); color: #fff; border: none;
  cursor: pointer; border-radius: 0; font-family: var(--sans);
}
.pubk-weekly-form button:hover { background: var(--red-deep); }
.pubk-weekly-form input[type="email"]:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
}
/* On the navy weekly bands a navy outline is invisible — use gold there. */
.pubk-weekly.has-navy-background-color .pubk-weekly-form input[type="email"]:focus-visible { outline-color: var(--gold-soft); }

/* ---------- Section scaffolding ---------- */
.pubk-section-head { border-bottom: 1px solid var(--line); padding-bottom: 24px; margin-bottom: 36px; }
.pubk-on-dark .pubk-section-head { border-bottom-color: rgba(255, 255, 255, 0.12); }

/* ---------- Brief cards ---------- */
.pubk-card {
  background: var(--paper);
  padding: 28px 24px 24px;
  min-height: 280px;
  box-sizing: border-box;
  height: 100%; /* fill the column so every card foot shares one baseline (hand-off D7) */
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.25s, transform 0.25s;
}
.pubk-card:hover { box-shadow: 0 12px 30px rgba(11, 37, 69, 0.08); transform: translateY(-2px); }
.pubk-card .wp-block-image { text-align: center; }
.pubk-card img { height: 68px; width: auto !important; }
.pubk-card h3 {
  font-size: 22px !important; font-weight: 460; line-height: 1.15; letter-spacing: -0.015em;
  color: var(--ink); margin: 14px 0 12px !important;
}
.pubk-card > p { font-size: 13px; line-height: 1.55; color: var(--gray); margin: 0 0 auto; }
.pubk-card-protests { border-top: 4px solid var(--brief-protests); }
.pubk-card-cyber { border-top: 4px solid var(--brief-cyber); }
.pubk-card-compliance { border-top: 4px solid var(--brief-compliance); }
.pubk-card-transforming { border-top: 4px solid var(--brief-transforming); }
.pubk-card-foot {
  margin-top: 24px !important; padding-top: 16px; border-top: 1px solid var(--line);
  display: flex; justify-content: space-between; align-items: center;
}
.pubk-card-cadence { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--red); }
.pubk-card-sub { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; color: var(--navy); }
/* Whole brief card is a click target for its Brief page (title link stretched over the card);
   the card foot stays above it so the Subscribe control keeps its own hit area. */
.pubk-card { position: relative; }
.pubk-card h3 a.pubk-card-link { color: inherit; text-decoration: none; }
.pubk-card h3 a.pubk-card-link::after { content: ""; position: absolute; inset: 0; }
.pubk-card-foot { position: relative; z-index: 1; }

/* ---------- Dark sections ---------- */
.pubk-navy { background-color: var(--navy); }
.pubk-navy-deep { background-color: var(--navy-deep); }
.pubk-glow { position: relative; overflow: hidden; }
.pubk-glow::after {
  content: ""; position: absolute; top: -100px; right: -100px; width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(194, 162, 88, 0.1) 0%, transparent 60%);
  pointer-events: none;
}
.pubk-glow > * { position: relative; z-index: 1; }

.pubk-photo-frame { position: relative; overflow: hidden; }
.pubk-photo-frame img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.92); display: block; }
.pubk-photo-frame::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(11, 37, 69, 0.1) 0%, rgba(11, 37, 69, 0.5) 100%);
  pointer-events: none;
}
.pubk-photo-badge {
  position: absolute; top: 24px; left: 24px; z-index: 2;
  background: var(--red); color: #fff; padding: 10px 16px;
  font-size: 11px !important; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700;
  margin: 0 !important;
}
.pubk-photo-caption {
  position: absolute; left: 0; bottom: 0; z-index: 2;
  background: var(--navy); color: #fff; padding: 16px 26px;
  font-family: var(--serif); font-size: 22px !important; font-style: italic; font-weight: 380;
  letter-spacing: -0.01em; margin: 0 !important;
}
.pubk-photo-caption b { font-weight: 460; font-style: normal; }

.pubk-event-date { font-family: var(--serif); font-size: 14px !important; font-style: italic; color: var(--gold-soft); margin-bottom: 8px !important; }
.pubk-h-feature { font-size: 48px !important; line-height: 1.05; letter-spacing: -0.02em; }
.pubk-meta-dots {
  display: flex; gap: 24px; flex-wrap: wrap;
  font-size: 13px !important; color: var(--gold-soft);
  text-transform: uppercase; letter-spacing: 0.12em; font-weight: 600;
}
.pubk-meta-dots span::before {
  content: ""; width: 6px; height: 6px; background: var(--gold); border-radius: 50%;
  display: inline-block; margin-right: 8px; vertical-align: 2px;
}

/* ---------- Ask panel ---------- */
.pubk-ask-panel {
  background: var(--navy);
  border-top: 4px solid var(--gold);
  padding: 40px 44px;
  position: relative;
  overflow: hidden;
}
.pubk-ask-panel::before {
  content: ""; position: absolute; top: -80px; right: -80px; width: 340px; height: 340px;
  background: radial-gradient(circle, rgba(194, 162, 88, 0.14) 0%, transparent 60%);
  pointer-events: none;
}
.pubk-ask-panel > * { position: relative; }
.pubk-ask-title { font-family: var(--serif); font-size: 24px !important; font-weight: 380; color: #fff; letter-spacing: -0.01em; }
.pubk-ask-title em { color: var(--gold-soft); }
.pubk-ask-input {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: rgba(0, 0, 0, 0.28); border: 1px solid rgba(255, 255, 255, 0.18);
  padding: 16px 18px;
}
.pubk-ask-input .prompt { font-size: 15px; color: var(--on-navy-muted); font-family: var(--serif); font-style: italic; }
.pubk-ask-input .arrow { color: var(--gold-soft); font-size: 15px; }
.pubk-ask-row { padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.pubk-ask-row:last-of-type { border-bottom: 0; }
.pubk-ask-row .k {
  display: block; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 700; color: var(--gold-soft); margin-bottom: 6px;
}
.pubk-ask-row .v { font-size: 15px; line-height: 1.55; color: var(--on-navy-body); }
.pubk-ask-foot {
  padding-top: 14px;
  display: flex; justify-content: space-between; align-items: center;
}
.pubk-ask-foot .members { font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: #fff; }
.pubk-ask-foot .modes { font-family: var(--serif); font-style: italic; font-size: 13px; color: var(--gold-soft); }

/* ---------- Job board ---------- */
.pubk-jobs-head {
  display: flex; justify-content: space-between; align-items: baseline;
  border-bottom: 2px solid var(--ink); padding-bottom: 14px; margin-bottom: 4px;
}
.pubk-jobs-head .k { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 700; color: var(--ink); }
.pubk-jobs-head .v { font-family: var(--serif); font-style: italic; font-size: 13px; color: var(--gray); }
.pubk-job-row {
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
  padding: 22px 0; border-bottom: 1px solid var(--line);
  text-decoration: none; transition: padding-left 0.2s;
}
.pubk-job-row:hover { padding-left: 8px; }
.pubk-job-row .title { font-family: var(--serif); font-size: 21px; font-weight: 460; letter-spacing: -0.01em; color: var(--ink); line-height: 1.2; display: block; }
.pubk-job-row .org { font-size: 13px; color: var(--gray); display: block; margin-top: 5px; }
.pubk-job-row .arrow { font-size: 12px; color: var(--red); }
.pubk-job-row .see-all { font-family: var(--serif); font-style: italic; font-size: 16px; color: var(--navy); }
.pubk-smallprint { font-size: 13px !important; line-height: 1.5; color: var(--gray); }

/* ---------- Membership watermark ---------- */
.pubk-watermark { position: relative; overflow: hidden; }
.pubk-watermark::before {
  content: "Pub K"; position: absolute; left: -30px; bottom: -110px;
  font-family: var(--serif); font-size: 340px; font-weight: 300; font-style: italic;
  color: rgba(255, 255, 255, 0.024); line-height: 0.9; letter-spacing: -0.04em;
  pointer-events: none; user-select: none;
}
.pubk-watermark > * { position: relative; }

/* ---------- Footer ---------- */
.pubk-footer { background: var(--navy); color: var(--on-navy-body); }
/* 0.39.0: the navy/red/gold hairline now tops the footer (it was the masthead's ::before); the Briefs column gains the gold Weekly link. */
.pubk-footer { border-top: 3px solid var(--navy); border-image: linear-gradient(90deg, var(--navy) 0%, var(--navy) 33.3%, var(--red) 33.3%, var(--red) 66.6%, var(--gold) 66.6%, var(--gold) 100%) 1; }
.pubk-footer ul a.pubk-footer-subscribe { color: var(--gold-label); } /* 0.72.0: footer gold text = --gold-label (Robert: "Washington, DC in the footer") */
.pubk-footer ul a.pubk-footer-subscribe:hover { color: #fff; }
.pubk-footer .pubk-footer-brand { color: #fff; font-family: var(--serif); font-size: 24px !important; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 24px; }
.pubk-footer .pubk-footer-brand em { color: var(--gold-label); }
.pubk-footer .pubk-footer-heading {
  font-family: var(--sans); font-size: 11px !important; letter-spacing: 0.18em;
  text-transform: uppercase; font-weight: 700; color: #fff; margin-bottom: 20px !important;
}
.pubk-footer .pubk-footer-heading a { color: inherit; text-decoration: none; }
.pubk-footer-addr { font-size: 14px !important; line-height: 1.6; color: var(--on-navy-muted); }
.pubk-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.pubk-footer ul a { font-size: 14px; color: var(--on-navy-muted); text-decoration: none; }
.pubk-footer ul a:hover { color: #fff; }
.pubk-benefit-badge {
  font-size: 11px !important; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700;
  color: var(--gold-label); /* 0.72.0 */
  border-top: 1px solid rgba(255, 255, 255, 0.15); border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  display: inline-block; padding: 8px 14px;
  margin: 22px 0 0 !important; /* 0.12.4: air between the badge and the address above (Patrick 08-24) */
}
.pubk-footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 12px; color: var(--on-navy-faint); }
.pubk-footer-bottom p { margin: 0; }
.pubk-social a {
  width: 34px; height: 34px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; color: var(--on-navy-body); text-decoration: none; margin-left: 12px;
}
.pubk-social a:hover { border-color: var(--gold-soft); color: var(--gold-soft); }

/* ---------- Layout helpers ---------- */
.pubk-container { max-width: 1216px; margin: 0 auto; width: 100%; }
.pubk-hero-content { max-width: 840px; }
.pubk-hero .wp-block-cover__inner-container { width: 100%; }
.wp-block-image { margin: 0; }
.pubk-h480 { height: 480px; }
.pubk-h420 { height: 420px; }
.pubk-photo-frame .wp-block-image, .pubk-photo-frame figure { margin: 0; height: 100%; }
.pubk-ask-panel { display: flex; flex-direction: column; gap: 22px; }
.pubk-ask-panel p { margin: 0; }
.pubk-ask-row p, .pubk-ask-foot p, .pubk-card-foot p, .pubk-weekly p, .pubk-utility p { margin: 0; }
.pubk-ask-foot { display: flex; justify-content: space-between; align-items: center; }
.pubk-meta-dots { margin-bottom: 24px !important; }
/* 0.38.0: the client's Annual Review lockup (white-on-transparent) replaces the "The Annual Review." feature heading above the date line. */
.pubk-on-dark .pubk-ar-logo { margin: 0 0 22px; }
.pubk-on-dark .pubk-ar-logo img { display: block; width: 300px; max-width: 100%; height: auto; }
.pubk-card p { margin: 0; }
.pubk-card h3 { margin: 14px 0 12px; }
.pubk-section-head .pubk-lede { margin-bottom: 18px; }

/* ---------- Precision pass (measured against design reference 2026-08-02) ---------- */
.pubk-h-section { margin-bottom: 20px; }
.pubk-section-head .pubk-h-section { margin-bottom: 0; }
.pubk-h-feature { margin-bottom: 20px; }
.pubk-lede + .wp-block-buttons { margin-top: 32px; }
.wp-block-buttons + .pubk-smallprint { margin-top: 18px; }
.pubk-card > p { margin-bottom: auto; }
.wp-block-buttons { gap: 12px; }
.pubk-hero .wp-block-buttons, .pubk-watermark .wp-block-buttons { gap: 16px; }
.pubk-hero .wp-block-button__link, .pubk-watermark .wp-block-button__link {
  font-size: 13px;
  padding: 16px 32px;
}
.pubk-watermark .pubk-h-section { font-size: clamp(30px, 3.2vw, 42px) !important; margin-bottom: 16px; }

/* ---------- Responsive fixes ---------- */
@media (max-width: 781px) {
  .pubk-weekly > .wp-block-group,
  .pubk-weekly > .wp-block-group > .wp-block-group {
    align-items: stretch !important;
    flex-direction: column;
    gap: 16px !important;
    width: 100%;
  }

  .pubk-weekly-name {
    border-bottom: 1px solid var(--line);
    border-right: 0;
    padding-bottom: 12px;
    padding-right: 0;
    white-space: normal;
  }

  .pubk-weekly-form {
    min-width: 0;
    width: 100%;
  }

  .pubk-weekly-form input[type="email"] {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
  }

  .pubk-weekly-form button {
    flex: 0 0 auto;
    min-height: 44px;
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 480px) {
  .pubk-weekly-form { flex-direction: column; }
  .pubk-weekly-form input[type="email"] {
    box-sizing: border-box;
    width: 100%;
  }
  .pubk-weekly-form button { width: 100%; }
}

/* ---------- 0.48.0: Membership page (/membership/ = pubk/about; Patrick's Claude Design file "Pub K Membership" 2026-09-15; build notes data/2026-09-15-091526-round/r4-0480/) ----------
   Replaces the 0.9.x-0.47.0 About block wholesale (all of it was .pubk-about-*-scoped and only patterns/about.php used it). Page root .pubk-about,
   elements .pubk-abt-*. Sections: photo hero | white about + name note | navy stats band | cream pillars | photo strip | white audience cards |
   navy history + "what membership can include" card | cream #join with the membership promise. No in-page Weekly strip (the file has none).
   Small gold type on light surfaces uses --gold-accessible (site rule C-10); the file's rgb(184,149,56) stays on the rules, ticks and bullets. */
.pubk-about { color: var(--ink); overflow: clip; }
.pubk-about *, .pubk-about *::before, .pubk-about *::after { box-sizing: border-box; }
.pubk-about .pubk-container { margin-left: auto; margin-right: auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; width: 100%; }
.pubk-about .pubk-abt-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-about .pubk-abt-eyebrow-gold { color: var(--gold-soft); margin-bottom: 16px; }
.pubk-about .pubk-abt-label-gold { color: var(--gold-label); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-about .pubk-abt-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; text-wrap: pretty; }
.pubk-about .pubk-abt-h2 em { font-style: italic; }
.pubk-about .pubk-abt-btn { background: var(--red); color: #fff; display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 15px 26px; text-decoration: none; text-transform: uppercase; transition: background 0.2s; }
.pubk-about .pubk-abt-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-about .pubk-abt-head { border-bottom: 1px solid var(--line); margin-bottom: 40px; padding-bottom: 26px; }
/* hero: the file's layered background — gold glow, 90% navy, the Annual Review photo */
.pubk-about .pubk-abt-hero-bg { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) center 30% / auto no-repeat, linear-gradient(rgba(11, 37, 69, 0.9), rgba(11, 37, 69, 0.9)), var(--abt-photo) 0 0 / cover no-repeat var(--navy); color: #fff; }
.pubk-about .pubk-abt-hero-bg > .pubk-container { padding-bottom: 116px; padding-top: 110px; }
.pubk-about .pubk-abt-h1 { color: #fff; font-family: var(--serif); font-size: clamp(38px, 3.75vw, 54px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 820px; text-wrap: pretty; }
.pubk-about .pubk-abt-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-about .pubk-abt-hero-lede { color: var(--on-navy-body); font-size: 18px; line-height: 1.6; margin: 24px 0 36px; max-width: 640px; }
.pubk-about .pubk-abt-hero-lede em { font-style: italic; }
/* about */
.pubk-about .pubk-abt-about { background: var(--paper); }
.pubk-about .pubk-abt-about > .pubk-container, .pubk-about .pubk-abt-pillars > .pubk-container, .pubk-about .pubk-abt-history > .pubk-container, .pubk-about .pubk-abt-join > .pubk-container { padding-bottom: 96px; padding-top: 96px; }
.pubk-about .pubk-abt-about-grid { display: flex; flex-wrap: wrap; gap: 56px; }
.pubk-about .pubk-abt-about-copy { color: var(--slate); flex: 2 1 480px; font-size: 16px; line-height: 1.65; min-width: 0; }
.pubk-about .pubk-abt-about-copy p { margin: 0 0 18px; }
.pubk-about .pubk-abt-about-copy p:last-child { margin-bottom: 0; }
.pubk-about .pubk-abt-lede-serif { color: var(--navy); font-family: var(--serif); font-size: 24px; letter-spacing: -0.01em; line-height: 1.4; margin: 0 0 20px; }
.pubk-about .pubk-abt-lede-serif strong { font-weight: 460; }
.pubk-about .pubk-abt-name-note { background: var(--cream); border: 1px solid var(--line); border-top: 3px solid var(--gold); flex: 1 1 320px; min-width: 0; padding: 28px; }
.pubk-about .pubk-abt-name-note p:last-child { color: var(--slate); font-size: 14px; line-height: 1.65; margin: 0; }
/* stats band */
.pubk-about .pubk-abt-stats { background: var(--navy); color: #fff; padding-top: 3px; position: relative; }
.pubk-about .pubk-abt-stats::before { background: linear-gradient(90deg, var(--navy) 0 33.3%, var(--red) 33.3% 66.6%, var(--gold) 66.6% 100%); content: ""; height: 3px; inset: 0 0 auto; position: absolute; }
.pubk-about .pubk-abt-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin: 0 auto; max-width: 1280px; }
.pubk-about .pubk-abt-stat { border-right: 1px solid rgba(255, 255, 255, 0.12); min-width: 0; padding: 48px 24px; text-align: center; }
.pubk-about .pubk-abt-stat:last-child { border-right: 0; }
.pubk-about .pubk-abt-stat-num { color: #fff; font-family: var(--serif); font-size: 44px; font-style: italic; font-weight: 380; letter-spacing: -0.02em; line-height: 1; margin: 0; }
.pubk-about .pubk-abt-stat-label { color: var(--gold-soft); font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.4; margin: 16px 0 0; text-transform: uppercase; }
/* pillars */
.pubk-about .pubk-abt-pillars { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-about .pubk-abt-pillars .pubk-abt-head { margin-bottom: 8px; }
.pubk-about .pubk-abt-pillar { align-items: baseline; border-bottom: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 64px minmax(0, 1fr) auto; padding: 28px 0; }
.pubk-about .pubk-abt-pillar-num { color: var(--gold-label); font-family: var(--serif); font-size: 18px; }
.pubk-about .pubk-abt-pillar h3 { color: var(--ink); font-family: var(--serif); font-size: 23px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 10px; }
.pubk-about .pubk-abt-pillar h3 em { font-style: italic; }
.pubk-about .pubk-abt-pillar p { color: var(--slate); font-size: 15px; line-height: 1.6; margin: 0; max-width: 720px; }
.pubk-about .pubk-abt-pillar-tag { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-align: right; text-transform: uppercase; }
.pubk-about .pubk-abt-pillar-tag .pubk-apk { height: 2.4em; vertical-align: middle; width: 8.7em; }
/* photo strip */
.pubk-about .pubk-abt-photos { background: var(--paper); }
.pubk-about .pubk-abt-photos > .pubk-container { padding-top: 56px; }
.pubk-about .pubk-abt-photo-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pubk-about .pubk-abt-photo-grid img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
/* audience cards */
.pubk-about .pubk-abt-audience { background: var(--paper); }
.pubk-about .pubk-abt-audience > .pubk-container { padding-bottom: 96px; padding-top: 72px; }
.pubk-about .pubk-abt-card-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.pubk-about .pubk-abt-card { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--navy); min-width: 0; padding: 28px; }
.pubk-about .pubk-abt-card.is-gold { border-top-color: var(--gold); }
.pubk-about .pubk-abt-card.is-red { border-top-color: var(--red); }
.pubk-about .pubk-abt-card-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 10px; text-transform: uppercase; }
.pubk-about .pubk-abt-card h3 { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 12px; }
.pubk-about .pubk-abt-card p:last-child { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 0; }
/* history + include card */
.pubk-about .pubk-abt-history { background: radial-gradient(640px 400px at 8% 108%, rgba(194, 162, 88, 0.22), transparent 70%) var(--navy); color: #fff; }
.pubk-about .pubk-abt-history-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-about .pubk-abt-history-copy { flex: 1 1 440px; min-width: 0; }
.pubk-about .pubk-abt-history-lede { color: #fff; font-family: var(--serif); font-size: clamp(24px, 2.1vw, 30px); font-weight: 380; letter-spacing: -0.01em; line-height: 1.35; margin: 0; }
.pubk-about .pubk-abt-history-lede em { color: var(--gold-soft); font-style: italic; }
.pubk-about .pubk-abt-include { background: var(--paper); border-top: 3px solid var(--gold); color: var(--navy); flex: 0 1 420px; min-width: 0; padding: 32px; }
.pubk-about .pubk-abt-include .pubk-abt-label-gold { margin-bottom: 16px; }
.pubk-about .pubk-abt-include-list { color: var(--slate); display: flex; flex-direction: column; font-size: 15px; gap: 12px; line-height: 1.5; list-style: none; margin: 0; padding: 0; }
.pubk-about .pubk-abt-include-list li { display: flex; gap: 12px; }
.pubk-about .pubk-abt-include-list li::before { color: var(--gold); content: "•"; flex: 0 0 auto; }
.pubk-about .pubk-abt-include-list li > span { min-width: 0; }
/* why members join (#join) */
.pubk-about .pubk-abt-join { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-about .pubk-abt-join-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-about .pubk-abt-join-copy { flex: 1 1 460px; min-width: 0; }
.pubk-about .pubk-abt-join-copy .pubk-abt-h2 { line-height: 1.12; margin-bottom: 20px; }
.pubk-about .pubk-abt-join-copy p:not(.pubk-abt-eyebrow) { color: var(--slate); font-size: 16px; line-height: 1.65; margin: 0 0 18px; }
.pubk-about .pubk-abt-join-copy p:last-of-type { margin-bottom: 28px; }
.pubk-about .pubk-abt-promise { border-left: 3px solid var(--gold); flex: 0 1 420px; min-width: 0; padding: 8px 0 8px 28px; }
.pubk-about .pubk-abt-quote { color: var(--navy); font-family: var(--serif); font-size: 24px; font-style: italic; font-weight: 380; letter-spacing: -0.01em; line-height: 1.4; margin: 0 0 16px; }
.pubk-about .pubk-abt-promise .pubk-abt-label-gold { margin: 0; }
@media (max-width: 999px) { .pubk-about .pubk-abt-history-grid, .pubk-about .pubk-abt-join-grid { gap: 48px; } }
@media (max-width: 600px) {
  .pubk-about .pubk-abt-hero-bg > .pubk-container { padding-bottom: 64px; padding-top: 60px; }
  .pubk-about .pubk-abt-about > .pubk-container, .pubk-about .pubk-abt-pillars > .pubk-container, .pubk-about .pubk-abt-history > .pubk-container, .pubk-about .pubk-abt-join > .pubk-container, .pubk-about .pubk-abt-audience > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-about .pubk-abt-photos > .pubk-container { padding-top: 40px; }
  .pubk-about .pubk-abt-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pubk-about .pubk-abt-stat { border-bottom: 1px solid rgba(255, 255, 255, 0.12); padding: 32px 16px; }
  .pubk-about .pubk-abt-stat:nth-child(even) { border-right: 0; }
  .pubk-about .pubk-abt-stat:last-child { border-bottom: 0; grid-column: 1 / -1; }
  .pubk-about .pubk-abt-stat-num { font-size: 36px; }
  .pubk-about .pubk-abt-pillar { gap: 8px 16px; grid-template-columns: 40px minmax(0, 1fr); }
  .pubk-about .pubk-abt-pillar-tag { grid-column: 2; text-align: left; }
  .pubk-about .pubk-abt-name-note, .pubk-about .pubk-abt-card, .pubk-about .pubk-abt-include { padding: 24px 20px; }
  .pubk-about .pubk-abt-head { margin-bottom: 28px; padding-bottom: 20px; }
  .pubk-about .pubk-container { padding-left: 24px; padding-right: 24px; }
}

/* ---------- Publications page ---------- */
.pubk-publications { overflow: clip; }

.pubk-publications .pubk-publications-hero {
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  position: relative;
}
.pubk-publications .pubk-publications-hero::before {
  background: radial-gradient(circle, rgba(194, 162, 88, 0.14) 0%, transparent 62%);
  content: "";
  height: 620px;
  pointer-events: none;
  position: absolute;
  right: -140px;
  top: -160px;
  width: 620px;
}
.pubk-publications .pubk-publications-hero > * { position: relative; }
.pubk-publications .pubk-publications-hero-title {
  margin-left: max(0px, calc((100% - 1216px) / 2)) !important; margin-right: auto !important;
  font-size: clamp(40px, 5vw, 68px) !important;
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.04;
  max-width: 980px;
}
.pubk-publications .pubk-publications-hero-title em { color: var(--navy); font-style: italic; }
.pubk-publications .pubk-publications-hero-sub {
  margin-left: max(0px, calc((100% - 1216px) / 2)) !important; margin-right: auto !important;
  font-size: 19px;
  font-weight: 340;
  line-height: 1.55;
  margin-top: 24px;
  max-width: 680px;
}

.pubk-publications .pubk-publications-label,
.pubk-publications .pubk-publications-feature-label {
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: 0.24em;
  margin: 0 0 24px;
  text-transform: uppercase;
}
.pubk-publications .pubk-publications-briefings {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 64px;
}
.pubk-publications .pubk-publications-card {
  background: var(--paper);
  border-top: 4px solid var(--navy);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  margin: 0;
  min-width: 0;
  padding: 0 24px 24px;
}
.pubk-publications .pubk-publications-card-cyber { border-top-color: var(--brief-cyber); }
.pubk-publications .pubk-publications-card-compliance { border-top-color: var(--gold); }
.pubk-publications .pubk-publications-card-transform { border-top-color: var(--brief-transforming); }
.pubk-publications .pubk-publications-logo {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: flex;
  height: 96px;
  justify-content: center;
  margin: 0 -24px 18px;
  overflow: hidden;
}
.pubk-publications .pubk-publications-logo img {
  height: auto;
  max-height: 74px;
  object-fit: contain;
  width: 76%;
}
.pubk-publications .pubk-publications-card h3 {
  font-size: 22px !important;
  line-height: 1.2;
  margin: 0 0 12px;
}
.pubk-publications .pubk-publications-card > p {
  font-size: 13px;
  line-height: 1.55;
  margin: 0 0 24px;
}
.pubk-publications .pubk-publications-card-foot {
  border-top: 1px solid var(--line);
  margin-top: auto;
  padding-top: 16px;
  width: 100%;
}
.pubk-publications .pubk-publications-card-foot p { margin: 0; }
.pubk-publications .pubk-publications-frequency,
.pubk-publications .pubk-publications-card-link {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.pubk-publications .pubk-publications-card-link a { color: var(--navy); text-decoration: none; }

.pubk-publications .pubk-publications-monthly { margin-bottom: 64px; }
.pubk-publications .pubk-publications-feature-head { margin-bottom: 18px; }
.pubk-publications .pubk-publications-feature-head > * { margin-bottom: 0; }
.pubk-publications .pubk-publications-coming { font-size: 13px; font-style: italic; }
.pubk-publications .pubk-publications-monthly-grid { gap: 40px; margin: 0; max-width: 980px; }
.pubk-publications .pubk-publications-cover {
  aspect-ratio: 3 / 4;
  background: var(--navy-deep);
  box-shadow: 0 12px 26px rgba(6, 18, 41, 0.22);
  margin: 8px;
  overflow: hidden;
  position: relative;
  transform: rotate(-2deg);
}
.pubk-publications .pubk-publications-cover::after {
  background: linear-gradient(180deg, rgba(6, 18, 41, 0.45), rgba(6, 18, 41, 0.92));
  content: "";
  inset: 0;
  position: absolute;
}
.pubk-publications .pubk-publications-cover-photo,
.pubk-publications .pubk-publications-cover-photo img {
  height: 100%;
  margin: 0;
  object-fit: cover;
  width: 100%;
}
.pubk-publications .pubk-publications-cover-content {
  inset: 0;
  padding: 20px;
  position: absolute;
  z-index: 1;
}
.pubk-publications .pubk-publications-cover-content p { margin: 0; }
.pubk-publications .pubk-publications-cover-title { font-size: 31px; line-height: 0.95; }
.pubk-publications .pubk-publications-cover-title em { color: var(--gold-soft); }
.pubk-publications .pubk-publications-cover-meta {
  display: flex;
  font-size: 9px;
  justify-content: space-between;
  letter-spacing: 0.18em;
  margin-top: 22px !important;
  text-transform: uppercase;
}
.pubk-publications .pubk-publications-cover-lines {
  bottom: 20px;
  font-size: 10px;
  line-height: 1.7;
  position: absolute;
}
.pubk-publications .pubk-publications-monthly-copy h3 {
  font-size: clamp(26px, 3vw, 36px) !important;
  line-height: 1.12;
  margin-bottom: 16px;
  max-width: 760px;
}
.pubk-publications .pubk-publications-monthly-copy > p { max-width: 760px; }
.pubk-publications .pubk-publications-monthly-stats {
  border-top: 1px solid var(--line);
  gap: 32px;
  margin-top: 22px;
  padding-top: 14px;
}
.pubk-publications .pubk-publications-monthly-stats p { font-size: 12px; margin: 0; }
.pubk-publications .pubk-publications-feature-link {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  margin-top: 24px;
  text-transform: uppercase;
}
.pubk-publications .pubk-publications-feature-link a { color: inherit; text-decoration: none; }

.pubk-publications .pubk-publications-latest {
  border: 1px solid var(--line);
  box-sizing: border-box;
  padding: 48px;
}
.pubk-publications .pubk-publications-latest-head {
  border-bottom: 2px solid var(--ink);
  padding-bottom: 22px;
}
.pubk-publications .pubk-publications-latest-head h2 { font-size: 32px !important; }
.pubk-publications .pubk-publications-latest-head h2 em { color: var(--navy); }
.pubk-publications .pubk-publications-latest-head > * { margin: 0; }
.pubk-publications .pubk-publications-latest-meta { font-size: 12px; font-style: italic; }
.pubk-publications .pubk-publications-article {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 26px;
  grid-template-columns: 86px 1fr 24px;
  padding: 24px 0;
}
.pubk-publications .pubk-publications-article p,
.pubk-publications .pubk-publications-article h3 { margin: 0; }
.pubk-publications .pubk-publications-article-number { font-size: 30px; font-style: italic; }
.pubk-publications .pubk-publications-article-meta {
  font-size: 10px;
  letter-spacing: 0.13em;
  margin-bottom: 6px !important;
  text-transform: uppercase;
}
.pubk-publications .pubk-publications-article-meta strong { color: var(--red); }
.pubk-publications .pubk-publications-article-meta em {
  color: var(--gray);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: 0;
  margin-left: 10px;
  text-transform: none;
}
.pubk-publications .pubk-publications-article h3 { font-size: 21px !important; line-height: 1.25; }
.pubk-publications .pubk-publications-article-arrow { color: var(--gray); font-size: 24px; }
.pubk-publications a.pubk-publications-article,
.pubk-publications a.pubk-publications-article:hover {
  color: inherit;
  text-decoration: none;
}
.pubk-publications a.pubk-publications-article h3,
.pubk-publications a.pubk-publications-article .pubk-publications-article-arrow { transition: color 0.15s ease; }
.pubk-publications a.pubk-publications-article:hover h3,
.pubk-publications a.pubk-publications-article:focus-visible h3,
.pubk-publications a.pubk-publications-article:hover .pubk-publications-article-arrow,
.pubk-publications a.pubk-publications-article:focus-visible .pubk-publications-article-arrow { color: var(--navy); }
/* Homepage Latest Developments band (free weekly picks). 0.39.0: flat rows on cream, four columns (number | Brief + date | title | arrow),
   small gold numbers, slate labels — the design file's quieter treatment; the box + 2px head rule are gone. */
.pubk-home-latest { border-top: 1px solid var(--line); }
.pubk-home-latest .pubk-home-latest-box { background: transparent; border: 0; box-sizing: border-box; padding: 0; }
.pubk-home-latest .pubk-home-latest-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: space-between; margin-bottom: 34px; }
.pubk-home-latest .pubk-home-latest-head > * { margin: 0; }
.pubk-home-latest .pubk-home-latest-head h2 { color: var(--ink); font-family: var(--serif); font-size: 38px; font-weight: 380; letter-spacing: -0.02em; }
.pubk-home-latest .pubk-home-latest-head h2 em { color: var(--navy); }
.pubk-home-latest .pubk-home-latest-meta { color: var(--slate-light); font-family: var(--sans); font-size: 13px; }
.pubk-home-latest .pubk-home-latest-article { align-items: baseline; border-top: 1px solid var(--line); display: grid; gap: 20px; grid-template-columns: 48px 220px minmax(0, 1fr) auto; padding: 18px 0; }
.pubk-home-latest .pubk-home-latest-copy { display: contents; }
.pubk-home-latest .pubk-home-latest-article p,
.pubk-home-latest .pubk-home-latest-article h3 { margin: 0; }
.pubk-home-latest .pubk-home-latest-num { color: var(--gold); font-family: var(--serif); font-size: 15px; }
.pubk-home-latest .pubk-home-latest-rowmeta { color: var(--slate-light); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; line-height: 1.5; text-transform: uppercase; }
.pubk-home-latest .pubk-home-latest-rowmeta strong { color: var(--slate-light); display: block; }
.pubk-home-latest .pubk-home-latest-rowmeta em { color: var(--slate-light); display: block; font-family: var(--serif); font-size: 13px; font-style: italic; font-weight: 400; letter-spacing: 0; text-transform: none; }
.pubk-home-latest .pubk-home-latest-article h3 { color: var(--navy); font-family: var(--serif); font-size: 19px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.35; }
.pubk-home-latest .pubk-home-latest-arrow { color: var(--gold); font-size: 16px; }
.pubk-home-latest a.pubk-home-latest-article,
.pubk-home-latest a.pubk-home-latest-article:hover { color: inherit; text-decoration: none; }
.pubk-home-latest a.pubk-home-latest-article h3 { transition: color 0.15s ease; }
.pubk-home-latest a.pubk-home-latest-article:hover h3,
.pubk-home-latest a.pubk-home-latest-article:focus-visible h3 { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.pubk-home-latest .pubk-home-latest-more { font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; margin: 30px 0 0; text-transform: uppercase; }
.pubk-home-latest .pubk-home-latest-more a { color: var(--red); text-decoration: none; }
.pubk-home-latest .pubk-home-latest-more a:hover,
.pubk-home-latest .pubk-home-latest-more a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 781px) {
  .pubk-home-latest .pubk-home-latest-head h2 { font-size: 32px; }
  .pubk-home-latest .pubk-home-latest-article { gap: 6px 14px; grid-template-columns: 34px minmax(0, 1fr); }
  .pubk-home-latest .pubk-home-latest-num { grid-row: 1 / 3; }
  .pubk-home-latest .pubk-home-latest-rowmeta,
  .pubk-home-latest .pubk-home-latest-article h3 { grid-column: 2; }
  .pubk-home-latest .pubk-home-latest-arrow { display: none; }
  .pubk-home-latest .pubk-home-latest-article h3 { font-size: 18px; }
}

.pubk-publications .pubk-publications-latest-cta {
  border: 1px solid rgba(11, 37, 69, 0.08);
  gap: 24px;
  margin-top: 32px;
  padding: 28px 32px;
}
.pubk-publications .pubk-publications-latest-cta-copy {
  font-size: 17px;
  font-style: italic;
  line-height: 1.4;
  margin: 0;
  max-width: 42ch;
}
.pubk-publications .pubk-publications-membership { border-top: 1px solid var(--line); }
.pubk-publications .pubk-publications-membership-copy { font-size: 24px; font-style: italic; margin: 0; }

@media (max-width: 1100px) {
  .pubk-publications .pubk-publications-briefings { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pubk-publications .pubk-publications-monthly-grid > .wp-block-column:first-child { flex-basis: 32% !important; }
  .pubk-publications .pubk-publications-monthly-grid > .wp-block-column:last-child { flex-basis: 68% !important; }
}

@media (max-width: 781px) {
  .pubk-publications .pubk-publications-hero,
  .pubk-publications .pubk-publications-body,
  .pubk-publications .pubk-publications-membership {
    box-sizing: border-box;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .pubk-publications .pubk-publications-hero-sub { font-size: 17px; }
  .pubk-publications .pubk-publications-briefings { grid-template-columns: 1fr; }
  .pubk-publications .pubk-publications-monthly-grid { flex-direction: column; gap: 36px; }
  .pubk-publications .pubk-publications-monthly-grid > .wp-block-column { flex-basis: auto !important; width: 100%; }
  .pubk-publications .pubk-publications-cover { margin: 8px auto; max-width: 280px; }
  .pubk-publications .pubk-publications-latest { padding: 28px 22px; }
  .pubk-publications .pubk-publications-article { gap: 12px; grid-template-columns: 46px 1fr; }
  .pubk-publications .pubk-publications-article-arrow { display: none; }
  .pubk-publications .pubk-publications-article h3 { font-size: 18px !important; }
  .pubk-publications .pubk-publications-latest-cta .wp-block-buttons,
  .pubk-publications .pubk-publications-latest-cta .wp-block-button,
  .pubk-publications .pubk-publications-latest-cta .wp-block-button__link { box-sizing: border-box; width: 100%; }
}

@media (max-width: 480px) {
  .pubk-publications .pubk-publications-latest { padding: 24px 18px; }
  .pubk-publications .pubk-publications-article-meta em { display: block; margin: 3px 0 0; }
}

/* ---------- Membership page ---------- */
.pubk-membership { overflow: clip; }
.pubk-membership .pubk-membership-hero { border-bottom: 1px solid var(--line); }
.pubk-membership .pubk-membership-eyebrow {
  align-items: center;
  display: flex;
  font-size: 11px;
  font-weight: 700;
  gap: 14px;
  letter-spacing: 0.26em;
  margin-bottom: 24px;
  text-transform: uppercase;
}
.pubk-membership .pubk-membership-eyebrow::before {
  background: var(--gold);
  content: "";
  height: 1px;
  width: 38px;
}
.pubk-membership .pubk-membership-title {
  margin-left: max(0px, calc((100% - 1216px) / 2)) !important; margin-right: auto !important;
  font-size: clamp(40px, calc(29.6px + 2.67vw), 68px) !important;
  font-weight: 380;
  letter-spacing: -0.025em;
  line-height: 1.02;
  margin: 0;
  max-width: 980px;
}
.pubk-membership .pubk-membership-title em { color: var(--navy); font-style: italic; }
.pubk-membership .pubk-membership-grid { align-items: start; gap: 56px; margin: 0; }
.pubk-membership .pubk-membership-photo {
  aspect-ratio: 4 / 5;
  margin: 0;
  overflow: hidden;
  position: relative;
}
.pubk-membership .pubk-membership-photo::after {
  background: linear-gradient(180deg, transparent 50%, rgba(11, 37, 69, 0.45));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.pubk-membership .pubk-membership-photo figure,
.pubk-membership .pubk-membership-photo img {
  height: 100%;
  margin: 0;
  object-fit: cover;
  width: 100%;
}
.pubk-membership .pubk-membership-photo-tag {
  bottom: 0;
  box-sizing: border-box;
  left: 0;
  padding: 18px 24px;
  position: absolute;
  width: 64%;
  z-index: 1;
}
.pubk-membership .pubk-membership-photo-tag p { margin: 0; }
.pubk-membership .pubk-membership-photo-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.pubk-membership .pubk-membership-photo-count { font-size: 23px; font-style: italic; }
.pubk-membership .pubk-membership-photo-count em { color: var(--gold-soft); }
.pubk-membership .pubk-membership-lead {
  border-bottom: 1px solid var(--line);
  font-size: 22px;
  font-style: italic;
  line-height: 1.45;
  margin: 0 0 32px;
  padding-bottom: 30px;
}
.pubk-membership .pubk-membership-types {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 34px;
}
.pubk-membership .pubk-membership-type {
  background: var(--cream-soft);
  border-top: 3px solid var(--navy);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  margin: 0;
  min-width: 0;
  padding: 22px 18px 18px;
}
.pubk-membership .pubk-membership-type-industry { border-top-color: var(--red); }
.pubk-membership .pubk-membership-type-government { border-top-color: var(--gold); }
.pubk-membership .pubk-membership-type h3 { font-size: 18px !important; margin: 0 0 10px; }
.pubk-membership .pubk-membership-type > p:not(.pubk-membership-rate) {
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 16px;
}
.pubk-membership .pubk-membership-rate {
  border-top: 1px solid var(--line);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  margin: auto 0 0;
  padding-top: 14px;
  text-transform: uppercase;
}
.pubk-membership .pubk-membership-benefits {
  border-left: 3px solid var(--gold);
  box-sizing: border-box;
  margin-bottom: 30px;
  padding: 28px 34px;
}
.pubk-membership .pubk-membership-benefits-title {
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: 0.2em;
  margin: 0 0 18px;
  text-transform: uppercase;
}
.pubk-membership .pubk-membership-benefit-columns { gap: 24px; margin: 0; }
.pubk-membership .pubk-membership-benefit-list { list-style: none; margin: 0; padding: 0; }
.pubk-membership .pubk-membership-benefit-list li {
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.45;
  margin-bottom: 10px;
  padding-left: 20px;
  position: relative;
}
.pubk-membership .pubk-membership-benefit-list li::before {
  color: var(--gold);
  content: "✓";
  font-weight: 700;
  left: 0;
  position: absolute;
}
.pubk-membership .pubk-membership-apply .wp-block-button__link { min-width: 260px; }

@media (max-width: 1000px) {
  .pubk-membership .pubk-membership-grid { flex-direction: column; gap: 40px; }
  .pubk-membership .pubk-membership-grid > .wp-block-column { flex-basis: auto !important; width: 100%; }
  .pubk-membership .pubk-membership-photo { max-width: 560px; }
}

@media (max-width: 781px) {
  .pubk-membership .pubk-membership-hero,
  .pubk-membership .pubk-membership-body {
    box-sizing: border-box;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .pubk-membership .pubk-membership-title br { display: none; }
  .pubk-membership .pubk-membership-types { grid-template-columns: 1fr; }
  .pubk-membership .pubk-membership-benefit-columns { flex-direction: column; gap: 0; }
  .pubk-membership .pubk-membership-apply,
  .pubk-membership .pubk-membership-apply .wp-block-button__link { box-sizing: border-box; width: 100%; }
}

@media (max-width: 480px) {
  .pubk-membership .pubk-membership-benefits { padding: 24px 22px; }
  .pubk-membership .pubk-membership-photo-tag { width: 74%; }
}

/* ---------- 0.50.0: Annual Review Sponsors page (/annual-review-sponsors/ = pubk/annual-review-sponsors; Patrick's Claude Design file "Pub K Annual Review Sponsors" 2026-09-15; build notes data/2026-09-15-091526-round/r6-0500/) ----------
   Replaces the 0.9.x-0.49.0 "Sponsor page" block wholesale (all .pubk-sponsor-* scoped; only patterns/annual-review-sponsors.php used it; the Institute
   Sponsor page is .pubk-institute-sponsor / .pubk-gs-*). Root .pubk-sponsor kept, elements .pubk-ars-*. Sections: video hero (the Vimeo reel under the
   file's 92% navy wash + gold glow) with lockup + stats | white why-sponsor cards | cream #sponsor-packages table | white specialty cards | navy panel
   topics | cream sponsor questions | white #contact with Amanda's card. No in-page Weekly strip. Small gold type on light = --gold-accessible. */
.pubk-sponsor { color: var(--ink); overflow: clip; }
.pubk-sponsor *, .pubk-sponsor *::before, .pubk-sponsor *::after { box-sizing: border-box; }
.pubk-sponsor .pubk-container { margin-left: auto; margin-right: auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; width: 100%; }
.pubk-sponsor .pubk-ars-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-eyebrow-gold { color: var(--gold-soft); }
.pubk-sponsor .pubk-ars-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; text-wrap: pretty; }
.pubk-sponsor .pubk-ars-h2 em { font-style: italic; }
.pubk-sponsor .pubk-ars-h2-light { color: #fff; }
.pubk-sponsor .pubk-ars-h2-light em { color: var(--gold-soft); }
.pubk-sponsor .pubk-ars-head { border-bottom: 1px solid var(--line); margin-bottom: 40px; padding-bottom: 26px; }
.pubk-sponsor .pubk-ars-head-dark { border-bottom-color: rgba(255, 255, 255, 0.18); margin-bottom: 36px; }
.pubk-sponsor .pubk-ars-head-split { align-items: flex-end; display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; }
.pubk-sponsor .pubk-ars-head-lede { color: var(--slate); font-size: 15px; line-height: 1.55; margin: 0; max-width: 420px; }
.pubk-sponsor .pubk-ars-btns { display: flex; flex-wrap: wrap; gap: 16px; }
.pubk-sponsor .pubk-ars-btn, .pubk-sponsor .pubk-ars-btn-ghost, .pubk-sponsor .pubk-ars-btn-navy { display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 15px 26px; text-align: center; text-decoration: none; text-transform: uppercase; transition: background 0.2s, border-color 0.2s, color 0.2s; white-space: nowrap; }
.pubk-sponsor .pubk-ars-btn { background: var(--red); color: #fff; }
.pubk-sponsor .pubk-ars-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-sponsor .pubk-ars-btn-xs { font-size: 11px; letter-spacing: 0.12em; padding: 10px 14px; }
.pubk-sponsor .pubk-ars-btn-ghost { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.pubk-sponsor .pubk-ars-btn-ghost:hover { border-color: #fff; color: #fff; }
.pubk-sponsor .pubk-ars-btn-navy { background: var(--navy); color: #fff; padding: 14px 24px; }
.pubk-sponsor .pubk-ars-btn-navy:hover { background: var(--navy-mid); color: #fff; }
/* hero: the reel under the file's wash */
.pubk-sponsor .pubk-ars-hero { background: var(--navy); color: #fff; isolation: isolate; overflow: hidden; position: relative; }
.pubk-sponsor .pubk-ars-hero-media { inset: 0; overflow: hidden; pointer-events: none; position: absolute; z-index: 0; }
.pubk-sponsor .pubk-ars-hero-media iframe { border: 0; height: 56.25vw; left: 50%; min-height: 100%; min-width: 100%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 177.78vh; }
.pubk-sponsor .pubk-ars-hero-scrim { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) center 30% / auto no-repeat, linear-gradient(rgba(11, 37, 69, 0.92), rgba(11, 37, 69, 0.92)); inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.pubk-sponsor .pubk-ars-hero > .pubk-container { padding-top: 96px; position: relative; z-index: 2; }
.pubk-sponsor .pubk-ars-hero-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-sponsor .pubk-ars-hero-copy { flex: 1 1 520px; min-width: 0; }
.pubk-sponsor .pubk-ars-hero .pubk-ars-eyebrow { margin-bottom: 18px; }
.pubk-sponsor .pubk-ars-h1 { color: #fff; font-family: var(--serif); font-size: clamp(36px, 3.5vw, 50px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 860px; text-wrap: pretty; }
.pubk-sponsor .pubk-ars-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-sponsor .pubk-ars-hero-lede { color: var(--on-navy-body); font-size: 18px; line-height: 1.6; margin: 24px 0 14px; max-width: 660px; }
.pubk-sponsor .pubk-ars-meta { align-items: center; color: #fff; display: flex; flex-wrap: wrap; font-size: 14px; font-weight: 600; gap: 10px; margin: 0 0 30px; }
.pubk-sponsor .pubk-ars-dot { color: var(--gold); }
.pubk-sponsor .pubk-ars-hero-logo { display: flex; flex: 0 1 360px; justify-content: center; min-width: 0; }
.pubk-sponsor .pubk-ars-hero-logo img { display: block; height: auto; max-width: 340px; width: 100%; }
.pubk-sponsor .pubk-ars-stats { border-top: 1px solid rgba(255, 255, 255, 0.18); display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-top: 56px; padding: 34px 0 40px; }
.pubk-sponsor .pubk-ars-stat { min-width: 0; text-align: center; }
.pubk-sponsor .pubk-ars-stat-num { color: #fff; font-family: var(--serif); font-size: 34px; font-style: italic; font-weight: 380; line-height: 1; margin: 0; }
.pubk-sponsor .pubk-ars-stat-label { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.4; margin: 10px 0 0; text-transform: uppercase; }
/* why sponsor */
.pubk-sponsor .pubk-ars-why { background: var(--paper); }
.pubk-sponsor .pubk-ars-why > .pubk-container, .pubk-sponsor .pubk-ars-packages > .pubk-container, .pubk-sponsor .pubk-ars-specialty > .pubk-container, .pubk-sponsor .pubk-ars-topics > .pubk-container, .pubk-sponsor .pubk-ars-faq > .pubk-container { padding-bottom: 88px; padding-top: 88px; }
.pubk-sponsor .pubk-ars-why-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pubk-sponsor .pubk-ars-why-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--navy); min-width: 0; }
.pubk-sponsor .pubk-ars-why-card.is-red { border-top-color: var(--red); }
.pubk-sponsor .pubk-ars-why-card.is-gold { border-top-color: var(--gold); }
.pubk-sponsor .pubk-ars-why-card img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: cover; width: 100%; }
.pubk-sponsor .pubk-ars-why-card .pubk-ars-why-img-low { object-position: center 80%; }
.pubk-sponsor .pubk-ars-why-body { padding: 22px 26px 26px; }
.pubk-sponsor .pubk-ars-why-body h3 { color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 10px; }
.pubk-sponsor .pubk-ars-why-body p { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 0; }
/* packages table */
.pubk-sponsor .pubk-ars-packages { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-sponsor .pubk-ars-table-wrap { background: #fff; border: 1px solid var(--line); overflow-x: auto; }
.pubk-sponsor .pubk-ars-table { border-collapse: collapse; font-size: 13px; min-width: 980px; width: 100%; }
.pubk-sponsor .pubk-ars-table th, .pubk-sponsor .pubk-ars-table td { text-align: center; }
.pubk-sponsor .pubk-ars-table thead th { border-bottom: 3px solid var(--navy); color: var(--ink); padding: 18px 14px; vertical-align: bottom; }
.pubk-sponsor .pubk-ars-table thead th.is-gold { border-bottom-color: var(--gold); }
.pubk-sponsor .pubk-ars-table thead th.is-red { border-bottom-color: var(--red); }
.pubk-sponsor .pubk-ars-table thead th.pubk-ars-th-benefit { border-bottom: 1px solid var(--line); color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; padding: 18px 20px; text-align: left; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-tier { display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-tier-price { display: block; font-family: var(--serif); font-size: 22px; font-weight: 460; margin-top: 6px; }
.pubk-sponsor .pubk-ars-tier-note { color: var(--red); display: block; font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; margin-bottom: 4px; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-table tbody th, .pubk-sponsor .pubk-ars-table tbody td, .pubk-sponsor .pubk-ars-table tfoot td { border-top: 1px solid var(--line); padding: 12px 14px; }
.pubk-sponsor .pubk-ars-table tbody th { color: var(--navy); font-weight: 600; padding-left: 20px; padding-right: 20px; text-align: left; }
.pubk-sponsor .pubk-ars-table tbody td { color: var(--slate); }
.pubk-sponsor .pubk-ars-table tfoot td { padding: 16px 10px; }
.pubk-sponsor .pubk-ars-scroll-hint { color: var(--slate-light); font-size: 12px; margin: 12px 0 0; }
.pubk-sponsor .pubk-ars-table-note { border-left: 3px solid var(--gold); color: var(--slate); font-size: 14px; line-height: 1.55; margin: 20px 0 0; max-width: 760px; padding-left: 14px; } /* 0.57.0: the 2-day / February 11 note under the packages table (Patrick 2026-09-16) */
/* specialty */
.pubk-sponsor .pubk-ars-specialty { background: var(--paper); }
.pubk-sponsor .pubk-ars-special-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.pubk-sponsor .pubk-ars-special { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex-direction: column; min-width: 0; }
.pubk-sponsor .pubk-ars-special.is-navy { border-top-color: var(--navy); }
.pubk-sponsor .pubk-ars-special > img { aspect-ratio: 16 / 7; display: block; height: auto; object-fit: cover; width: 100%; }
.pubk-sponsor .pubk-ars-special > .pubk-ars-special-img-high { object-position: center 25%; } /* 0.57.0: the Wi-Fi lounge photo keeps its screen title inside the 16:7 crop */
.pubk-sponsor .pubk-ars-special-body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 14px; padding: 28px 32px 32px; }
.pubk-sponsor .pubk-ars-special-tags { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin: 0; }
.pubk-sponsor .pubk-ars-special-tags span { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.6; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-special-tags span.is-gold { color: var(--gold-label); }
.pubk-sponsor .pubk-ars-special-tags span.is-red { color: var(--red); }
.pubk-sponsor .pubk-ars-special h3 { color: var(--ink); font-family: var(--serif); font-size: 26px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0; }
.pubk-sponsor .pubk-ars-special h3 em { font-style: italic; }
.pubk-sponsor .pubk-ars-special-price { color: var(--ink); font-family: var(--serif); font-size: 34px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.6; margin: 0; }
.pubk-sponsor .pubk-ars-special-includes { color: var(--slate-light); font-size: 13px; margin: 0; }
.pubk-sponsor .pubk-ars-special-list { border-top: 1px solid var(--line); color: var(--slate); display: flex; flex: 1 1 auto; flex-direction: column; font-size: 14px; gap: 10px; line-height: 1.55; list-style: none; margin: 0; padding: 16px 0 0; }
.pubk-sponsor .pubk-ars-special-list li { display: flex; gap: 12px; }
.pubk-sponsor .pubk-ars-special-list li::before { color: var(--gold); content: "•"; flex: 0 0 auto; }
.pubk-sponsor .pubk-ars-special-list li > span { min-width: 0; }
.pubk-sponsor .pubk-ars-special-list strong { color: var(--ink); font-weight: 600; }
/* panel topics */
.pubk-sponsor .pubk-ars-topics { background: radial-gradient(640px 400px at 8% 108%, rgba(194, 162, 88, 0.22), transparent 70%) var(--navy); color: #fff; }
.pubk-sponsor .pubk-ars-topic-list { column-gap: 48px; columns: 260px 3; list-style: none; margin: 0; padding: 0; }
.pubk-sponsor .pubk-ars-topic-list li { break-inside: avoid; color: var(--on-navy-body); display: flex; font-size: 15px; gap: 12px; line-height: 1.5; padding: 8px 0; }
.pubk-sponsor .pubk-ars-topic-list li::before { color: var(--gold); content: "·"; flex: 0 0 auto; }
/* sponsor questions */
.pubk-sponsor .pubk-ars-faq { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-sponsor .pubk-ars-faq-grid { display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-sponsor .pubk-ars-faq-head { flex: 0 1 320px; min-width: 0; }
.pubk-sponsor .pubk-ars-faq-head .pubk-ars-h2 { line-height: 1.12; }
.pubk-sponsor .pubk-ars-faq-list { display: flex; flex: 1 1 520px; flex-direction: column; min-width: 0; }
.pubk-sponsor .pubk-ars-faq-list details { border-top: 1px solid var(--line); }
.pubk-sponsor .pubk-ars-faq-list summary { align-items: baseline; cursor: pointer; display: flex; gap: 16px; justify-content: space-between; list-style: none; padding: 14px 0; }
.pubk-sponsor .pubk-ars-faq-list summary::-webkit-details-marker { display: none; }
.pubk-sponsor .pubk-ars-faq-list summary > span:first-child { color: var(--navy); font-family: var(--serif); font-size: 18px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.6; }
.pubk-sponsor .pubk-ars-faq-caret { color: var(--gold-label); flex: 0 0 auto; font-size: 10px; transition: transform 0.2s; }
.pubk-sponsor .pubk-ars-faq-list details[open] .pubk-ars-faq-caret { transform: rotate(180deg); }
.pubk-sponsor .pubk-ars-faq-list details > p { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 0; padding: 0 0 16px; }
.pubk-sponsor .pubk-ars-faq-list details > p a { color: var(--red); font-weight: 600; text-decoration: none; }
.pubk-sponsor .pubk-ars-faq-list details > p a:hover { text-decoration: underline; }
/* get in touch */
.pubk-sponsor .pubk-ars-contact { background: var(--paper); }
.pubk-sponsor .pubk-ars-contact > .pubk-container { padding-bottom: 80px; padding-top: 80px; }
.pubk-sponsor .pubk-ars-contact-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-sponsor .pubk-ars-contact-copy { flex: 1 1 440px; min-width: 0; }
.pubk-sponsor .pubk-ars-contact-copy .pubk-ars-h2 { line-height: 1.12; margin-bottom: 18px; }
.pubk-sponsor .pubk-ars-contact-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin: 0 0 28px; max-width: 520px; }
.pubk-sponsor .pubk-ars-person { align-items: center; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex: 0 1 380px; gap: 20px; min-width: 0; padding: 32px; }
.pubk-sponsor .pubk-ars-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-sponsor .pubk-ars-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-sponsor .pubk-ars-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-sponsor .pubk-ars-person-mail { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 6px 0 0; }
.pubk-sponsor .pubk-ars-person-mail a { color: var(--slate); font-size: inherit; text-decoration: none; }
.pubk-sponsor .pubk-ars-person-mail a:first-child { font-weight: 600; }
.pubk-sponsor .pubk-ars-person-mail a:hover { color: var(--red); }
@media (min-width: 1000px) and (max-width: 1279px) {
  .pubk-sponsor .pubk-ars-table { min-width: 0; }
  .pubk-sponsor .pubk-ars-table thead th, .pubk-sponsor .pubk-ars-table tbody th, .pubk-sponsor .pubk-ars-table tbody td, .pubk-sponsor .pubk-ars-table tfoot td { padding-left: 8px; padding-right: 8px; }
  .pubk-sponsor .pubk-ars-btn-xs { padding-left: 10px; padding-right: 10px; }
}
@media (max-width: 999px) {
  .pubk-sponsor .pubk-ars-table-wrap { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 56px), transparent); }
  .pubk-sponsor .pubk-ars-table { padding-right: 48px; }
  .pubk-sponsor .pubk-ars-hero-grid, .pubk-sponsor .pubk-ars-contact-grid, .pubk-sponsor .pubk-ars-faq-grid { gap: 40px; }
  .pubk-sponsor .pubk-ars-person { flex-basis: 100%; }
}
@media (max-width: 600px) {
  .pubk-sponsor .pubk-container { padding-left: 24px; padding-right: 24px; }
  .pubk-sponsor .pubk-ars-hero > .pubk-container { padding-top: 56px; }
  .pubk-sponsor .pubk-ars-why > .pubk-container, .pubk-sponsor .pubk-ars-packages > .pubk-container, .pubk-sponsor .pubk-ars-specialty > .pubk-container, .pubk-sponsor .pubk-ars-topics > .pubk-container, .pubk-sponsor .pubk-ars-faq > .pubk-container, .pubk-sponsor .pubk-ars-contact > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-sponsor .pubk-ars-stats { gap: 20px 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 40px; padding: 28px 0 32px; }
  .pubk-sponsor .pubk-ars-stat-num { font-size: 28px; }
  .pubk-sponsor .pubk-ars-hero-logo img { max-width: 260px; }
  .pubk-sponsor .pubk-ars-head { margin-bottom: 28px; padding-bottom: 20px; }
  .pubk-sponsor .pubk-ars-special-body { padding: 22px 20px 24px; }
  .pubk-sponsor .pubk-ars-person { padding: 22px 20px; }
  .pubk-sponsor .pubk-ars-btns a, .pubk-sponsor .pubk-ars-special-body .pubk-ars-btn-navy, .pubk-sponsor .pubk-ars-contact-copy .pubk-ars-btn { width: 100%; }
}

/* ---------- Mobile + tablet shell repair ----------
   Runs to 999px: below 1000px the inline nav cannot hold one row (needs
   ~980px), so the whole range shares the overlay-menu shell (audit C-05). */
@media (max-width: 999px) {
  .pubk-weekly-bar,
  .pubk-utility,
  .pubk-utility-links,
  .pubk-weekly,
  .pubk-footer,
  main .wp-block-post-content > .alignfull.is-layout-constrained,
  main .wp-block-post-content > .wp-block-group.alignfull > .alignfull.is-layout-constrained {
    box-sizing: border-box;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .pubk-hero .pubk-container,
  .pubk-ar-band .pubk-container {
    box-sizing: border-box;
    padding-left: 8px;
    padding-right: 8px;
  }

  .pubk-utility p { font-size: 11px; letter-spacing: 0.1em; line-height: 1.45; padding: 9px 0; }
  .pubk-utility .pubk-announce { margin-right: 4px; }
  .pubk-utility a { margin-left: 0; }
  .pubk-utility-links p {
    flex-wrap: wrap;
    font-size: 11px; /* was 9px — illegible inside its tap targets (audit C-05) */
    gap: 2px 6px;
    justify-content: center;
    padding: 4px 0;
  }
  .pubk-utility-links a {
    align-items: center;
    display: inline-flex;
    min-height: 32px;
    padding: 0 6px;
  }

  .pubk-masthead-row { flex-direction: column; gap: 8px; padding: 14px 0 10px; }
  .pubk-established { font-size: 11px !important; margin-top: -6px !important; } /* 0.56.0: the logo is width-bound below 964px, so the rule below the wordmark is shorter */
  .pubk-logo {
    box-sizing: border-box;
    max-width: calc(100% - 48px);
  }
  .pubk-logo img {
    height: auto !important;
    max-width: 100%;
  }
  .pubk-logo-block { max-width: calc(100% - 48px); }
  .pubk-logo-block .pubk-logo { max-width: 100%; } /* 0.56.0: the block already keeps the 48px gutters; a second calc(100% - 48px) on the figure shrank the logo twice */

  .pubk-nav .wp-block-navigation__responsive-container-open {
    align-items: center;
    color: var(--navy);
    justify-content: center;
    margin: 0 auto;
    min-height: 46px;
    width: 100%;
  }

  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--navy-deep) !important;
    color: #fff !important;
    padding: 24px;
  }

  .pubk-nav .wp-block-navigation__responsive-container-close { color: #fff; }
  .pubk-nav .wp-block-navigation__responsive-container-content {
    align-items: stretch !important;
    padding-top: 44px !important;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: stretch !important;
    display: flex;
    gap: 0;
    width: 100%;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    border-right: 0;
    width: 100%;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    color: #fff !important;
    font-size: 13px;
    padding: 15px 0 !important;
    width: 100%;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    background: transparent !important;
    border: 0 !important;
    min-width: 0 !important;
    padding: 0 0 8px 18px !important;
    position: static !important;
    visibility: visible !important;
    width: 100% !important;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
    border-bottom: 0;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    color: var(--gold-soft) !important;
    font-size: 11px;
    padding: 10px 0 !important;
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu,
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    background: transparent !important;
    color: #fff !important;
  }
  /* No painted focus state: the drawer's opening focus landed on the first item and read as a highlight (hand-off M8). Keyboard focus keeps the outline. */
  @media (hover: hover) {
    .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
      background: rgba(255, 255, 255, 0.08) !important;
    }
  }
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .pubk-nav-ask .wp-block-navigation-item__content::before {
    background-image: url(assets/img/askpubk-owl-white.svg);
  }
}
@media (max-width: 839px) { .pubk-established { justify-content: flex-start; width: auto; } } /* 0.56.0: below 840px the wordmark is narrower than the tagline, so the line starts at the wordmark's left edge instead of overflowing both sides */
@media (max-width: 600px) { .pubk-established { margin-top: 0 !important; } } /* 0.56.0: at phone widths the logo is ~33px tall and the rule below the wordmark only 8px — no pull-up */

/* ---------- Institute Sponsor page ---------- */
.pubk-institute-sponsor { overflow: clip; }
.pubk-institute-sponsor .pubk-gs-hero { border-bottom: 1px solid var(--line); overflow: hidden; position: relative; }
.pubk-institute-sponsor .pubk-gs-hero::after {
  background: radial-gradient(circle, rgba(194,162,88,.14) 0%, transparent 62%);
  content: "";
  height: 620px;
  pointer-events: none;
  position: absolute;
  right: -140px;
  top: -160px;
  width: 620px;
}
.pubk-institute-sponsor .pubk-gs-hero > * { position: relative; z-index: 1; }
.pubk-institute-sponsor .pubk-gs-eyebrow {
  align-items: center;
  display: flex;
  font-size: 11px;
  font-weight: 700;
  gap: 14px;
  letter-spacing: .24em;
  margin: 0 0 14px;
  text-transform: uppercase;
}
.pubk-institute-sponsor .pubk-gs-eyebrow::before { background: currentColor; content: ""; height: 1px; width: 36px; }
.pubk-institute-sponsor .pubk-gs-title { font-size: clamp(38px,5.4vw,62px) !important; line-height: 1.04; margin: 0 0 24px; max-width: 900px; }
.pubk-institute-sponsor .pubk-gs-title em,
.pubk-institute-sponsor .pubk-gs-section-title em { color: var(--navy); font-style: italic; }
.pubk-institute-sponsor .pubk-gs-lede { font-size: 18px; line-height: 1.65; margin: 0; max-width: 680px; }
.pubk-institute-sponsor .pubk-gs-jump { border-bottom: 1px solid var(--line); box-shadow: 0 4px 16px rgba(6,18,41,.06); position: sticky; top: calc(var(--pubk-sticky-top) + var(--pubk-bar-h)); z-index: 50; }
.pubk-institute-sponsor .pubk-gs-jump-nav { align-items: stretch; display: flex; }
.pubk-institute-sponsor .pubk-gs-jump-nav > span,
.pubk-institute-sponsor .pubk-gs-jump-nav > a { align-items: center; display: flex; font-size: 11px; font-weight: 700; letter-spacing: .12em; padding: 15px 24px; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-jump-nav > span { color: var(--gray); padding-left: 0; }
.pubk-institute-sponsor .pubk-gs-jump-nav > a { border-left: 1px solid var(--line); color: var(--navy); text-decoration: none; }
.pubk-institute-sponsor .pubk-gs-jump-nav > a:hover { color: var(--red); }
.pubk-institute-sponsor .pubk-gs-jump-nav > .pubk-gs-jump-cta { background: var(--red); color: #fff; margin-left: auto; }
.pubk-institute-sponsor .pubk-gs-jump-nav > .pubk-gs-jump-cta:hover { background: var(--navy); color: #fff; }
.pubk-institute-sponsor .pubk-gs-stats { display: grid; gap: 0; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0; }
.pubk-institute-sponsor .pubk-gs-stats > .wp-block-column { border-right: 1px solid rgba(255,255,255,.1); padding: 40px 24px; text-align: center; }
.pubk-institute-sponsor .pubk-gs-stats > .wp-block-column:last-child { border-right: 0; }
.pubk-institute-sponsor .pubk-gs-stat-num { font-size: clamp(30px,3.4vw,42px); line-height: 1; margin: 0 0 10px; }
.pubk-institute-sponsor .pubk-gs-stat-cap { color: var(--on-navy-muted); font-size: 10px; font-weight: 600; letter-spacing: .16em; margin: 0; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-section-head { align-items: flex-end; border-bottom: 1px solid var(--line); gap: 64px; margin: 0 0 36px; padding: 0 0 24px; }
.pubk-institute-sponsor .pubk-gs-section-head p { line-height: 1.6; margin: 0; }
/* The blanket reset above out-specifies .pubk-gs-eyebrow's own margin; restore the hero/mock 14px. */
.pubk-institute-sponsor .pubk-gs-section-head p.pubk-gs-eyebrow { margin: 0 0 14px; }
.pubk-institute-sponsor .pubk-gs-section-title { font-size: clamp(28px,3vw,40px) !important; line-height: 1.05; }
.pubk-institute-sponsor .pubk-gs-tier-grid { align-items: stretch; gap: 32px; }
.pubk-institute-sponsor .pubk-gs-tier-card { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--navy); box-shadow: 0 10px 28px rgba(11,37,69,.06); display: flex; flex-direction: column; padding: 40px 36px 36px; position: relative; }
.pubk-institute-sponsor .pubk-gs-tier-supreme { border-top-color: var(--gold); }
.pubk-institute-sponsor .pubk-gs-tier-supporting { border-top-color: var(--red); }
.pubk-institute-sponsor .pubk-gs-tier-tag { background: var(--navy); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: .16em; margin: -40px -36px 28px auto; padding: 7px 14px; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-tier-supreme .pubk-gs-tier-tag { background: var(--gold); color: var(--navy); }
.pubk-institute-sponsor .pubk-gs-tier-supporting .pubk-gs-tier-tag { background: var(--red); }
.pubk-institute-sponsor .pubk-gs-tier-eyebrow,
.pubk-institute-sponsor .pubk-gs-tier-label,
.pubk-institute-sponsor .pubk-gs-subhead { font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-tier-card h3 { font-size: 30px !important; line-height: 1.1; margin-bottom: 8px; }
.pubk-institute-sponsor .pubk-gs-tier-card h3 em { font-style: italic; }
.pubk-institute-sponsor .pubk-gs-tier-price { font-size: 34px; margin: 0 0 6px; }
.pubk-institute-sponsor .pubk-gs-tier-price small,
.pubk-institute-sponsor .pubk-gs-mag-price small { color: var(--gray); font-family: var(--sans); font-size: 14px; }
.pubk-institute-sponsor .pubk-gs-tier-value { border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 700; letter-spacing: .1em; margin: 0 0 18px; padding: 0 0 20px; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-tier-label { margin: 16px 0 4px; }
.pubk-institute-sponsor .pubk-gs-tier-card ul { list-style: none; margin: 0; padding: 0; }
.pubk-institute-sponsor .pubk-gs-tier-card li { font-size: 13px; line-height: 1.5; padding: 8px 0 8px 24px; position: relative; }
.pubk-institute-sponsor .pubk-gs-tier-card li::before { color: var(--gold); content: "✓"; font-weight: 700; left: 0; position: absolute; }
.pubk-institute-sponsor .pubk-gs-tier-card .wp-block-buttons { margin-top: auto; padding-top: 24px; }
.pubk-institute-sponsor .pubk-gs-placement-grid { gap: 20px; margin-bottom: 48px; }
.pubk-institute-sponsor .pubk-gs-placement-card { border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 26px; }
.pubk-institute-sponsor .pubk-gs-placement-gold { border-top-color: var(--gold); }
.pubk-institute-sponsor .pubk-gs-placement-red { border-top-color: var(--red); }
.pubk-institute-sponsor .pubk-gs-placement-card h3 { font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: .18em; margin-bottom: 10px; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-placement-card p { font-size: 13px; line-height: 1.6; margin: 0; }
.pubk-institute-sponsor .pubk-gs-subhead { margin: 0 0 18px; }
.pubk-institute-sponsor .pubk-gs-preview-grid { display: grid; gap: 32px; grid-template-columns: 1.15fr 1fr; margin-bottom: 48px; }
.pubk-institute-sponsor .pubk-gs-preview { border: 1px solid var(--line); padding: 28px; }
.pubk-institute-sponsor .pubk-gs-preview-label { color: var(--gray); font-size: 10px; font-weight: 700; letter-spacing: .16em; margin: 0 0 14px; text-align: center; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-preview-window { border: 1px solid var(--line); }
.pubk-institute-sponsor .pubk-gs-preview-window > strong { color: var(--navy); display: block; font-family: var(--serif); font-style: italic; padding: 12px 16px; text-align: center; }
.pubk-institute-sponsor .pubk-gs-preview-stripe { background: linear-gradient(90deg,var(--navy) 0 33%,var(--red) 33% 66%,var(--gold) 66%); height: 10px; }
.pubk-institute-sponsor .pubk-gs-preview-layout { display: grid; gap: 12px; grid-template-columns: 1.6fr .9fr; padding: 12px; }
.pubk-institute-sponsor .pubk-gs-copy-lines { display: flex; flex-direction: column; gap: 8px; }
.pubk-institute-sponsor .pubk-gs-copy-lines i,
.pubk-institute-sponsor .pubk-gs-email-preview > i,
.pubk-institute-sponsor .pubk-gs-ad-rail > i { background: var(--cream-soft); border: 1px solid var(--line); display: block; height: 8px; }
.pubk-institute-sponsor .pubk-gs-copy-lines i:nth-child(1),
.pubk-institute-sponsor .pubk-gs-copy-lines i:nth-child(5) { background: var(--cream); height: 12px; width: 70%; }
.pubk-institute-sponsor .pubk-gs-ad-rail { display: flex; flex-direction: column; gap: 10px; }
.pubk-institute-sponsor .pubk-gs-ad-rail b,
.pubk-institute-sponsor .pubk-gs-banner-ad { align-items: center; background: repeating-linear-gradient(45deg,#F4F1E8,#F4F1E8 12px,#EFEBDF 12px,#EFEBDF 24px); border: 1px solid var(--gold); color: var(--navy); display: flex; flex-direction: column; font-size: 9px; justify-content: center; letter-spacing: .1em; min-height: 76px; text-align: center; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-ad-rail b small,
.pubk-institute-sponsor .pubk-gs-banner-ad small { color: var(--gray); display: block; font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.pubk-institute-sponsor .pubk-gs-ad-rail span { color: var(--gray); font-size: 9px; text-align: center; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-email-preview { display: flex; flex-direction: column; gap: 8px; padding: 12px; }
.pubk-institute-sponsor .pubk-gs-email-preview > strong { border: 2px solid var(--navy); margin: auto; padding: 3px 14px; }
.pubk-institute-sponsor .pubk-gs-email-preview > small { color: var(--gray); font-size: 9px; text-align: center; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-email-preview > b { background: var(--brief-protests); color: #fff; font-family: var(--serif); font-size: 12px; padding: 6px; text-align: center; }
.pubk-institute-sponsor .pubk-gs-banner-ad { min-height: 58px; }
.pubk-institute-sponsor .pubk-gs-content-ad { border-color: var(--line); min-height: 64px; }
.pubk-institute-sponsor .pubk-gs-table-intro { line-height: 1.65; margin: 0 0 24px; max-width: 720px; }
.pubk-institute-sponsor .pubk-gs-scroll-hint { display: none; font-size: 11px; font-style: italic; }
.pubk-institute-sponsor .pubk-gs-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.pubk-institute-sponsor .pubk-gs-table { border-collapse: collapse; font-size: 13px; min-width: 720px; width: 100%; }
.pubk-institute-sponsor .pubk-gs-table th,
.pubk-institute-sponsor .pubk-gs-table td { border: 0; border-bottom: 1px solid var(--line); padding: 15px 14px; text-align: center; }
.pubk-institute-sponsor .pubk-gs-table thead th { background: var(--navy); color: #fff; font-family: var(--serif); font-size: 17px; font-weight: 380; }
.pubk-institute-sponsor .pubk-gs-table thead th:first-child { background: var(--navy-deep); font-family: var(--sans); font-size: 12px; text-align: left; }
.pubk-institute-sponsor .pubk-gs-table tbody th { background: var(--cream-soft); color: var(--ink); min-width: 240px; text-align: left; }
.pubk-institute-sponsor .pubk-gs-table tbody td strong { color: var(--navy); }
.pubk-institute-sponsor .pubk-gs-tiers .pubk-gs-table-wrap { margin: 0 auto; max-width: 1216px; }
.pubk-institute-sponsor .pubk-gs-tiers .pubk-gs-table-intro { margin-left: auto; margin-right: auto; max-width: 1216px; }
.pubk-institute-sponsor .pubk-gs-inst { min-width: 960px; }
.pubk-institute-sponsor .pubk-gs-inst thead th { vertical-align: bottom; }
.pubk-institute-sponsor .pubk-gs-inst thead strong { color: var(--gold-soft); display: inline-block; font-family: var(--sans); font-size: 16px; margin-top: 8px; }
.pubk-institute-sponsor .pubk-gs-inst thead strong small { font-size: 11px; font-weight: 400; }
.pubk-institute-sponsor .pubk-gs-inst tbody th { font-weight: 700; }
.pubk-institute-sponsor .pubk-gs-inst .is-sub th { font-weight: 400; padding-left: 36px; }
.pubk-institute-sponsor .pubk-gs-inst .is-group th { background: var(--navy-deep); color: var(--gold-soft); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-inst .is-total th,
.pubk-institute-sponsor .pubk-gs-inst .is-total td { border-bottom: 0; color: var(--navy); font-family: var(--serif); font-size: 17px; }
.pubk-institute-sponsor .pubk-gs-inst tfoot td { border-bottom: 0; padding-top: 20px; }
.pubk-institute-sponsor .pubk-gs-inst tfoot .wp-block-button__link { justify-content: center; width: 100%; }
.pubk-institute-sponsor .pubk-gs-tiers .pubk-gs-table-wrap + .pubk-gs-table-intro { margin-top: 24px; }
.pubk-institute-sponsor .pubk-gs-magazine { overflow: hidden; position: relative; }
.pubk-institute-sponsor .pubk-gs-magazine::after { background: radial-gradient(circle,rgba(194,162,88,.13),transparent 60%); content: ""; height: 560px; pointer-events: none; position: absolute; right: -140px; top: -140px; width: 560px; }
.pubk-institute-sponsor .pubk-gs-magazine > * { position: relative; z-index: 1; }
.pubk-institute-sponsor .pubk-gs-magazine .pubk-gs-section-head { border-color: rgba(255,255,255,.12); }
.pubk-institute-sponsor .pubk-gs-magazine .pubk-gs-section-title em { color: var(--gold-soft); }
.pubk-institute-sponsor .pubk-gs-magazine .pubk-gs-section-head > .wp-block-column > p { color: var(--on-navy-body) !important; }
.pubk-institute-sponsor .pubk-gs-mag-grid { gap: 24px; }
.pubk-institute-sponsor .pubk-gs-mag-card { background: var(--paper); border-top: 3px solid var(--navy); padding: 36px; }
.pubk-institute-sponsor .pubk-gs-mag-gold { border-top-color: var(--gold); }
.pubk-institute-sponsor .pubk-gs-mag-red { border-top-color: var(--red); }
.pubk-institute-sponsor .pubk-gs-mag-card h3 { font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: .18em; margin-bottom: 6px; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-mag-price { font-size: 32px; margin: 0 0 6px; }
.pubk-institute-sponsor .pubk-gs-mag-card > p:last-child { color: var(--ink-soft) !important; font-size: 13px; line-height: 1.55; }
.pubk-institute-sponsor .pubk-gs-annual-review { border-top: 1px solid var(--line); }
.pubk-institute-sponsor .pubk-gs-annual-review > .wp-block-group { gap: 40px; }
.pubk-institute-sponsor .pubk-gs-annual-copy { font-size: 24px; font-style: italic; margin: 8px 0 0; }
.pubk-institute-sponsor .pubk-gs-contact { border-bottom: 3px solid var(--gold); text-align: center; }
.pubk-institute-sponsor .pubk-gs-contact .pubk-gs-eyebrow { justify-content: center; }
.pubk-institute-sponsor .pubk-gs-contact-title { font-size: clamp(32px,4.2vw,46px) !important; }
.pubk-institute-sponsor .pubk-gs-contact-title em { color: var(--gold-soft); font-style: italic; }
.pubk-institute-sponsor .pubk-gs-contact-copy { color: var(--on-navy-body); line-height: 1.6; margin: 18px auto 36px; max-width: 620px; }
.pubk-institute-sponsor .pubk-gs-contact-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); margin: 0 auto 36px; max-width: 330px; padding: 28px; }
.pubk-institute-sponsor .pubk-gs-contact-card p { margin: 0; }
.pubk-institute-sponsor .pubk-gs-contact-name { font-size: 26px; }
.pubk-institute-sponsor .pubk-gs-contact-role { font-size: 10px; font-weight: 700; letter-spacing: .2em; margin: 4px 0 10px !important; text-transform: uppercase; }
.pubk-institute-sponsor .pubk-gs-contact-card a { color: var(--on-navy-body); text-decoration: none; }
.pubk-institute-sponsor .pubk-gs-contact .wp-block-button.pubk-btn-outline-light .wp-block-button__link {
  background: transparent;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 0;
  color: #fff;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  padding: 14px 28px;
  text-transform: uppercase;
}
.pubk-institute-sponsor .pubk-gs-contact .wp-block-button.pubk-btn-outline-light .wp-block-button__link:hover { background: #fff; color: var(--navy); }

@media (max-width: 1000px) {
  .pubk-institute-sponsor .pubk-gs-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .pubk-institute-sponsor .pubk-gs-placement-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pubk-institute-sponsor .pubk-gs-tier-grid { gap: 20px; }
  .pubk-institute-sponsor .pubk-gs-tier-card { padding-left: 26px; padding-right: 26px; }
  .pubk-institute-sponsor .pubk-gs-tier-tag { margin-left: auto; margin-right: -26px; }
}

@media (max-width: 781px) {
  .pubk-institute-sponsor .pubk-gs-jump { overflow: hidden; }
  .pubk-institute-sponsor .pubk-gs-jump-nav { overflow-x: auto; }
  .pubk-institute-sponsor .pubk-gs-jump-nav > span,
  .pubk-institute-sponsor .pubk-gs-jump-nav > a { flex: 0 0 auto; padding: 14px 18px; }
  .pubk-institute-sponsor .pubk-gs-jump-nav > .pubk-gs-jump-cta { margin-left: 0; }
  .pubk-institute-sponsor .pubk-gs-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pubk-institute-sponsor .pubk-gs-stats > .wp-block-column { border-bottom: 1px solid rgba(255,255,255,.1); }
  .pubk-institute-sponsor .pubk-gs-stats > .wp-block-column:nth-child(even) { border-right: 0; }
  .pubk-institute-sponsor .pubk-gs-section-head { align-items: flex-start; flex-direction: column; gap: 20px; }
  .pubk-institute-sponsor .pubk-gs-tier-grid,
  .pubk-institute-sponsor .pubk-gs-placement-grid,
  .pubk-institute-sponsor .pubk-gs-mag-grid { display: flex; flex-direction: column; }
  .pubk-institute-sponsor .pubk-gs-tier-card { padding: 34px 24px 28px; }
  .pubk-institute-sponsor .pubk-gs-tier-tag { margin: -34px -24px 24px auto; }
  .pubk-institute-sponsor .pubk-gs-preview-grid { grid-template-columns: 1fr; }
  .pubk-institute-sponsor .pubk-gs-preview { padding: 20px; }
  .pubk-institute-sponsor .pubk-gs-scroll-hint { display: block; }
  .pubk-institute-sponsor .pubk-gs-annual-review > .wp-block-group { align-items: flex-start !important; flex-direction: column; }
  .pubk-institute-sponsor .pubk-gs-contact-buttons,
  .pubk-institute-sponsor .pubk-gs-contact-buttons .wp-block-button,
  .pubk-institute-sponsor .pubk-gs-contact-buttons .wp-block-button__link { box-sizing: border-box; width: 100%; }
}

@media (max-width: 480px) {
  .pubk-institute-sponsor .pubk-gs-preview-layout { grid-template-columns: 1fr; }
  .pubk-institute-sponsor .pubk-gs-stat-num { font-size: 31px; }
}

/* ---------- 0.62.0: Ask Pub K product page (/ask-pub-k/, patterns/ask-pub-k.php; Patrick's Claude Design file "Pub K Ask Pub K v2" 2026-09-18; build notes data/2026-09-18-askpubk-v2/) ----------
   Replaces the 0.47.0-0.54.0 product-page block wholesale (all of it was .pubk-ask-scoped). Since 0.75.0 the product-card rules below ALSO
   style the homepage card (.pubk-home-askp, shared selectors), so an edit to them changes the homepage too; the homepage block keeps only
   the column fit + caption. Page scope stays .pubk-ask; the elements are .pubk-askp-*. Sections in the file's order: navy hero (white lockup,
   lede, stars, buttons, video panel) | white #how capability cards | cream #pricing navy band | white "question to work product" with the
   animated product card | navy why (steps + expertise chips) | cream FAQs and Training (video cards + note) | white #contact with Kristen's
   card. Tokens map 1:1 to the file's rgb values; the file carries no phone styles, so phones get the site's rhythm (52/56 padding, 24px
   gutters, clamped headings). */
.pubk-ask { color: var(--ink); overflow: clip; }
.pubk-ask .pubk-container, .pubk-demo .pubk-container, .pubk-rl .pubk-container { margin-left: auto; margin-right: auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; width: 100%; } /* 0.48.0: side gutters below 1280 — the wp:html pages (demo, library, Ask Pub K) shipped edge to edge at 1024/390; homepage rhythm 32 / 24 on phones */
.pubk-ask *, .pubk-ask *::before, .pubk-ask *::after { box-sizing: border-box; }
.pubk-ask .pubk-askp-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-ask .pubk-askp-eyebrow-gold { color: var(--gold-soft); }
.pubk-ask .pubk-askp-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.12; margin: 0; text-wrap: pretty; }
.pubk-ask .pubk-askp-h2 em { font-style: italic; }
.pubk-ask .pubk-askp-h2-light { color: #fff; }
.pubk-ask .pubk-askp-h2-light em { color: var(--gold-soft); }
.pubk-ask .pubk-askp-h2-sm { font-size: clamp(28px, 2.6vw, 34px); }
.pubk-ask .pubk-askp-head { align-items: flex-end; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; margin-bottom: 44px; padding-bottom: 26px; }
.pubk-ask .pubk-askp-head h2 { max-width: 620px; }
.pubk-ask .pubk-askp-head-lede { color: var(--slate); font-size: 15px; line-height: 1.55; margin: 0; max-width: 480px; }
.pubk-ask .pubk-askp-btns { display: flex; flex-wrap: wrap; gap: 16px; }
.pubk-ask .pubk-askp-btn, .pubk-ask .pubk-askp-btn-ghost, .pubk-ask .pubk-askp-btn-outline, .pubk-ask .pubk-askp-btn-navy { display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 15px 26px; text-decoration: none; text-transform: uppercase; transition: background 0.2s, border-color 0.2s, color 0.2s; }
.pubk-ask .pubk-askp-btn { background: var(--red); color: #fff; }
.pubk-ask .pubk-askp-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-ask .pubk-askp-btn-ghost { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.pubk-ask .pubk-askp-btn-ghost:hover { border-color: #fff; color: #fff; }
.pubk-ask .pubk-askp-btn-outline { border: 1px solid var(--navy); color: var(--navy); }
.pubk-ask .pubk-askp-btn-outline:hover { background: var(--navy); color: #fff; }
.pubk-ask .pubk-askp-btn-navy { background: var(--navy); color: #fff; font-size: 12px; padding: 13px 22px; white-space: nowrap; }
.pubk-ask .pubk-askp-btn-navy:hover { background: var(--navy-mid); color: #fff; }
.pubk-ask .pubk-askp-link { color: var(--red); font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-decoration: none; text-transform: uppercase; }
.pubk-ask .pubk-askp-link:hover { color: var(--red-deep); text-decoration: underline; }
/* hero */
.pubk-ask .pubk-askp-hero { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) var(--navy); color: #fff; }
.pubk-ask .pubk-askp-hero > .pubk-container { padding-bottom: 88px; padding-top: 80px; }
.pubk-ask .pubk-askp-hero-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-ask .pubk-askp-hero-copy { flex: 1 1 480px; min-width: 0; }
.pubk-ask .pubk-askp-hero-lockup { display: block; height: auto; margin: 0 0 34px; max-width: 520px; width: 100%; }
.pubk-ask .pubk-askp-hero-lede { color: #fff; font-family: var(--serif); font-size: clamp(22px, 1.9vw, 27px); font-weight: 380; letter-spacing: -0.01em; line-height: 1.35; margin: 0 0 22px; max-width: 640px; text-wrap: pretty; }
.pubk-ask .pubk-askp-hero-lede em { color: var(--gold-soft); font-style: italic; }
.pubk-ask .pubk-askp-hero-lede .pubk-apk { vertical-align: -0.42em; }
.pubk-ask .pubk-askp-trust-line { color: var(--on-navy-body); display: flex; flex-wrap: wrap; font-size: 14px; gap: 10px 26px; margin-bottom: 32px; }
.pubk-ask .pubk-askp-trust-line span { display: flex; gap: 8px; }
.pubk-ask .pubk-askp-trust-line span::before { color: var(--gold-soft); content: "★"; }
.pubk-ask .pubk-askp-hero-panel { flex: 1 1 400px; max-width: 560px; min-width: 0; }
.pubk-ask .pubk-askp-video { align-items: center; aspect-ratio: 16 / 9; background: var(--navy-mid); border: 1px solid rgba(255, 255, 255, 0.15); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); display: flex; flex-direction: column; gap: 16px; justify-content: center; position: relative; }
.pubk-ask .pubk-askp-video-play { align-items: center; background: var(--red); border-radius: 50%; color: #fff; display: flex; font-size: 26px; height: 76px; justify-content: center; padding-left: 6px; width: 76px; }
.pubk-ask .pubk-askp-video-label { color: var(--gold-soft); font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.pubk-ask .pubk-askp-video iframe, .pubk-ask .pubk-askp-video video { height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
.pubk-ask .pubk-askp-caption { color: var(--on-navy-muted); font-size: 13px; margin: 14px 0 0; text-align: center; }
/* #how: capability cards */
.pubk-ask .pubk-askp-how { background: var(--paper); }
.pubk-ask .pubk-askp-how > .pubk-container, .pubk-ask .pubk-askp-qwp > .pubk-container, .pubk-ask .pubk-askp-why > .pubk-container, .pubk-ask .pubk-askp-faq > .pubk-container { padding-bottom: 88px; padding-top: 88px; }
.pubk-ask .pubk-askp-caps { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.pubk-ask .pubk-askp-cap { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--navy); display: flex; flex-direction: column; gap: 12px; padding: 30px; }
.pubk-ask .pubk-askp-cap.is-gold { border-top-color: var(--gold); }
.pubk-ask .pubk-askp-cap.is-red { border-top-color: var(--red); }
.pubk-ask .pubk-askp-cap .pubk-askp-cap-tag { color: var(--gold-label); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0; text-transform: uppercase; }
.pubk-ask .pubk-askp-cap .pubk-askp-cap-soon { background: #fff; border: 1px solid var(--red); border-radius: 999px; color: var(--red); display: inline-block; font-size: 10px; letter-spacing: 0.16em; line-height: 1.4; margin: -3px 0 -3px 8px; padding: 2px 8px; vertical-align: 1px; } /* 0.71.0 (Whit Cobb 2026-09-20 via Patrick 2026-09-21): "Coming" pill on the AI Agents card's eyebrow — red like the site's other Coming Soon tags; the card itself moved to the last slot (far right of row two at 1440) */
.pubk-ask .pubk-askp-cap h3 { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0; }
.pubk-ask .pubk-askp-cap p { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 0; }
/* #pricing: the introductory band */
.pubk-ask .pubk-askp-pricing { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-ask .pubk-askp-pricing > .pubk-container { padding-bottom: 72px; padding-top: 72px; }
.pubk-ask .pubk-askp-price-band { align-items: center; background: radial-gradient(520px 320px at 90% -20%, rgba(194, 162, 88, 0.24), transparent 70%) var(--navy); color: #fff; display: flex; flex-wrap: wrap; gap: 48px; padding: 52px 48px; }
.pubk-ask .pubk-askp-price-lead { flex: 1 1 320px; min-width: 0; }
.pubk-ask .pubk-askp-price-lead .pubk-askp-eyebrow { margin-bottom: 16px; }
.pubk-ask .pubk-askp-price { align-items: baseline; display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }
.pubk-ask .pubk-askp-price-num { color: #fff; font-family: var(--serif); font-size: 84px; font-weight: 380; letter-spacing: -0.03em; line-height: 1; }
.pubk-ask .pubk-askp-price-unit { color: var(--on-navy-muted); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; }
.pubk-ask .pubk-askp-price-btns { display: flex; flex: 1 1 380px; flex-wrap: wrap; gap: 14px; min-width: 0; }
.pubk-ask .pubk-askp-price-btns a { padding-left: 24px; padding-right: 24px; }
/* question to work product: the animated product card */
.pubk-ask .pubk-askp-qwp { background: var(--paper); }
.pubk-ask .pubk-askp-qwp-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-ask .pubk-askp-qwp-copy { flex: 1 1 420px; min-width: 0; }
.pubk-ask .pubk-askp-qwp-copy .pubk-askp-h2 { margin-bottom: 18px; }
.pubk-ask .pubk-askp-qwp-lede { color: var(--slate); font-size: 16px; line-height: 1.65; margin: 0; max-width: 540px; }
.pubk-ask .pubk-askp-qwp-panel { flex: 1 1 400px; max-width: 560px; min-width: 0; }
.pubk-ask .pubk-askp-product, .pubk-home-askp .pubk-askp-product { background: var(--cream); border: 1px solid var(--line); box-shadow: 0 18px 44px rgba(11, 37, 69, 0.1); padding: 40px 32px 36px; }
.pubk-ask .pubk-askp-lockup, .pubk-home-askp .pubk-askp-lockup { display: block; height: 96px; margin: 0 auto 26px; max-width: 100%; object-fit: contain; width: auto; }
.pubk-ask .pubk-askp-prompt, .pubk-home-askp .pubk-askp-prompt { background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 4px 14px rgba(11, 37, 69, 0.05); }
.pubk-ask .pubk-askp-prompt-line, .pubk-home-askp .pubk-askp-prompt-line { color: var(--navy); font-size: 16px; line-height: 1.5; min-height: 44px; padding: 20px 22px 14px; }
.pubk-ask .pubk-askp-caret, .pubk-home-askp .pubk-askp-caret { animation: pubk-askp-caret 1s step-end infinite; background: var(--red); display: inline-block; height: 17px; margin-left: 2px; vertical-align: -2px; width: 2px; }
@keyframes pubk-askp-caret { 50% { opacity: 0; } }
.pubk-ask .pubk-askp-prompt-row, .pubk-home-askp .pubk-askp-prompt-row { align-items: center; display: flex; gap: 18px; padding: 6px 18px 14px; }
.pubk-ask .pubk-askp-plus, .pubk-home-askp .pubk-askp-plus { color: var(--slate-light); font-size: 20px; font-weight: 300; }
.pubk-ask .pubk-askp-mode, .pubk-home-askp .pubk-askp-mode { align-items: center; color: var(--navy); display: flex; font-size: 14px; font-weight: 600; gap: 7px; }
.pubk-ask .pubk-askp-mode small, .pubk-home-askp .pubk-askp-mode small { color: var(--slate-light); font-size: 9px; }
.pubk-ask .pubk-askp-spacer, .pubk-home-askp .pubk-askp-spacer { flex: 1 1 0; }
.pubk-ask .pubk-askp-quota, .pubk-home-askp .pubk-askp-quota { color: var(--slate); font-size: 14px; }
.pubk-ask .pubk-askp-send, .pubk-home-askp .pubk-askp-send { align-items: center; background: #E58C8C; border-radius: 50%; color: #fff; display: flex; font-size: 16px; height: 36px; justify-content: center; width: 36px; }
/* why: steps + expertise */
.pubk-ask .pubk-askp-why { background: radial-gradient(640px 400px at 8% 108%, rgba(194, 162, 88, 0.22), transparent 70%) var(--navy); color: #fff; }
.pubk-ask .pubk-askp-why-head { display: flex; flex-wrap: wrap; gap: 64px; margin-bottom: 52px; }
.pubk-ask .pubk-askp-why-title { flex: 1 1 380px; min-width: 0; }
.pubk-ask .pubk-askp-why-lede { color: var(--on-navy-body); flex: 1 1 480px; font-size: 16px; line-height: 1.65; min-width: 0; }
.pubk-ask .pubk-askp-why-lede p { margin: 0 0 14px; }
.pubk-ask .pubk-askp-why-lede p:last-child { margin-bottom: 0; }
.pubk-ask .pubk-askp-steps { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-bottom: 18px; }
.pubk-ask .pubk-askp-step { background: var(--navy-mid); border-top: 3px solid var(--gold); padding: 26px; }
.pubk-ask .pubk-askp-numeral { color: var(--gold-soft); font-family: var(--serif); font-size: 16px; font-style: italic; margin: 0 0 10px; }
.pubk-ask .pubk-askp-step h3 { color: #fff; font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 8px; }
.pubk-ask .pubk-askp-step p:last-child { color: var(--on-navy-body); font-size: 14px; line-height: 1.6; margin: 0; }
.pubk-ask .pubk-askp-why-result { color: var(--gold-soft); font-family: var(--serif); font-size: 18px; font-style: italic; margin: 0 0 56px; }
.pubk-ask .pubk-askp-expertise { border-top: 1px solid rgba(255, 255, 255, 0.15); padding-top: 44px; text-align: center; }
.pubk-ask .pubk-askp-expertise-h3 { color: #fff; font-family: var(--serif); font-size: 26px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 8px; }
.pubk-ask .pubk-askp-expertise-lede { color: var(--on-navy-body); font-size: 15px; line-height: 1.5; margin: 0 0 32px; }
.pubk-ask .pubk-askp-topics { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; list-style: none; margin: 0 auto; max-width: 1040px; padding: 0; }
.pubk-ask .pubk-askp-topics li { align-items: center; background: var(--navy-mid); border: 1px solid rgba(255, 255, 255, 0.12); color: var(--on-navy-body); display: flex; font-size: 15px; gap: 12px; line-height: 1.4; padding: 13px 22px; text-align: left; }
.pubk-ask .pubk-askp-glyph { color: var(--gold-soft); flex: 0 0 auto; font-family: var(--serif); font-size: 17px; font-style: italic; }
/* FAQs and Training */
.pubk-ask .pubk-askp-faq { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-ask .pubk-askp-faq-head { margin-bottom: 40px; }
.pubk-ask .pubk-askp-videos { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 36px; }
.pubk-ask .pubk-askp-video-card { background: var(--paper); border: 1px solid var(--line); color: var(--navy); display: flex; flex-direction: column; text-decoration: none; transition: border-color 0.2s, box-shadow 0.2s; }
.pubk-ask .pubk-askp-video-card:hover { border-color: var(--navy); box-shadow: 0 10px 28px rgba(11, 37, 69, 0.1); color: var(--navy); }
.pubk-ask .pubk-askp-video-thumb { display: block; position: relative; }
.pubk-ask .pubk-askp-video-thumb img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: cover; width: 100%; }
.pubk-ask .pubk-askp-video-len { background: rgba(11, 37, 69, 0.85); bottom: 10px; color: #fff; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; padding: 4px 8px; position: absolute; right: 10px; text-transform: uppercase; }
.pubk-ask .pubk-askp-video-title { display: block; font-family: var(--serif); font-size: 17px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.3; padding: 18px 20px; }
.pubk-ask .pubk-askp-faq-note { align-items: center; background: var(--paper); border: 1px solid var(--line); border-left: 3px solid var(--gold); display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; padding: 22px 28px; }
.pubk-ask .pubk-askp-faq-note p { color: var(--slate); font-size: 15px; line-height: 1.55; margin: 0; max-width: 720px; }
.pubk-ask .pubk-askp-faq-note strong { color: var(--navy); }
/* #contact: demo CTA + Kristen's card */
.pubk-ask .pubk-askp-cta { background: var(--paper); border-top: 1px solid var(--line); }
.pubk-ask .pubk-askp-cta > .pubk-container { padding-bottom: 64px; padding-top: 64px; }
.pubk-ask .pubk-askp-cta-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-ask .pubk-askp-cta-copy { flex: 1 1 440px; min-width: 0; }
.pubk-ask .pubk-askp-cta-copy .pubk-askp-h2 { margin-bottom: 16px; }
.pubk-ask .pubk-askp-person { align-items: center; background: var(--cream); border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex: 0 1 380px; gap: 20px; min-width: 0; padding: 32px; }
.pubk-ask .pubk-askp-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-ask .pubk-askp-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-ask .pubk-askp-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-ask .pubk-askp-person-mail { font-size: 14px; margin: 6px 0 0; }
.pubk-ask .pubk-askp-person-mail a { color: var(--slate); font-size: inherit; font-weight: 600; text-decoration: none; }
.pubk-ask .pubk-askp-person-mail a:hover { color: var(--red); }
.pubk-ask .pubk-askp-person-note { color: var(--slate-light); font-size: 13px; line-height: 1.5; margin: 4px 0 0; }
@media (max-width: 1100px) { .pubk-ask .pubk-askp-videos { grid-template-columns: repeat(2, 1fr); } } /* four cards: 2x2 on tablets instead of the file's 3 + 1 orphan */
@media (max-width: 891px) { .pubk-ask .pubk-askp-steps { grid-template-columns: 1fr; } } /* three steps: one column once three 260px tiles no longer fit (inner < 828), instead of the file's 2 + 1 orphan from 608 to 891 (Palino's review, 2026-09-18) */
@media (max-width: 999px) { .pubk-ask .pubk-askp-hero-grid, .pubk-ask .pubk-askp-qwp-grid, .pubk-ask .pubk-askp-cta-grid, .pubk-ask .pubk-askp-why-head { gap: 48px; } .pubk-ask .pubk-askp-hero-panel, .pubk-ask .pubk-askp-qwp-panel { max-width: none; } }
@media (max-width: 560px) { .pubk-ask .pubk-askp-videos { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
  .pubk-ask .pubk-container, .pubk-demo .pubk-container, .pubk-rl .pubk-container { padding-left: 24px; padding-right: 24px; }
  .pubk-ask .pubk-askp-hero > .pubk-container, .pubk-ask .pubk-askp-how > .pubk-container, .pubk-ask .pubk-askp-pricing > .pubk-container, .pubk-ask .pubk-askp-qwp > .pubk-container, .pubk-ask .pubk-askp-why > .pubk-container, .pubk-ask .pubk-askp-faq > .pubk-container, .pubk-ask .pubk-askp-cta > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-ask .pubk-askp-hero-grid, .pubk-ask .pubk-askp-qwp-grid, .pubk-ask .pubk-askp-cta-grid, .pubk-ask .pubk-askp-why-head { gap: 40px; }
  .pubk-ask .pubk-askp-hero-lockup { margin-bottom: 26px; }
  .pubk-ask .pubk-askp-price-band { padding: 36px 24px; }
  .pubk-ask .pubk-askp-price-num { font-size: 64px; }
  .pubk-ask .pubk-askp-product, .pubk-home-askp .pubk-askp-product { padding: 28px 20px 26px; }
  .pubk-ask .pubk-askp-lockup, .pubk-home-askp .pubk-askp-lockup { height: 72px; }
  .pubk-ask .pubk-askp-cap, .pubk-ask .pubk-askp-step, .pubk-ask .pubk-askp-person, .pubk-ask .pubk-askp-faq-note { padding: 24px 20px; }
  .pubk-ask .pubk-askp-head { margin-bottom: 28px; padding-bottom: 20px; }
  .pubk-ask .pubk-askp-why-result { margin-bottom: 40px; }
  .pubk-ask .pubk-askp-expertise { padding-top: 32px; }
  .pubk-ask .pubk-askp-topics li { width: 100%; }
}
/* ---------- Community hub page ---------- */
.pubk-community {
  --pubk-community-gold-text: #c2a258; /* 0.73.0: the one gold (was #80681F) */
  color: var(--ink-soft);
  overflow: clip;
}
.pubk-community *,
.pubk-community *::before,
.pubk-community *::after { box-sizing: border-box; }
.pubk-community > *,
.pubk-community .pubk-community-container > *,
.pubk-community .pubk-community-flow > *,
.pubk-community .pubk-community-card-flow > * { margin-block-start: 0; }
.pubk-community .pubk-community-container {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 1280px;
  padding-left: 32px;
  padding-right: 32px;
  width: 100%;
}
.pubk-community .pubk-community-flow > *,
.pubk-community .pubk-community-card-flow > * { margin-left: 0 !important; margin-right: 0 !important; }
.pubk-community .pubk-community-weekly {
  padding: 3px 0;
  position: relative;
}
.pubk-community .pubk-community-weekly::before,
.pubk-community .pubk-community-weekly::after {
  background: linear-gradient(90deg,var(--gold) 0 50%,var(--red) 50% 100%);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  right: 0;
}
.pubk-community .pubk-community-weekly::before { top: 0; }
.pubk-community .pubk-community-weekly::after { bottom: 0; }
.pubk-community .pubk-community-weekly-inner {
  align-items: center;
  display: grid;
  gap: 40px;
  grid-template-columns: minmax(0,1fr) auto;
  padding-bottom: 28px;
  padding-top: 28px;
}
.pubk-community .pubk-community-weekly-copy { align-items: center; display: flex; gap: 28px; min-width: 0; }
.pubk-community .pubk-community-weekly-title {
  color: var(--gold-soft);
  flex: 0 0 auto;
  font-family: var(--serif);
  font-size: 26px;
  font-style: italic;
  font-weight: 460;
  letter-spacing: -.01em;
  line-height: 1.1;
  white-space: nowrap;
}
.pubk-community .pubk-community-weekly-divider { background: rgba(255,255,255,.18); flex: 0 0 1px; height: 38px; }
.pubk-community .pubk-community-weekly-pitch { color: var(--on-navy-body); font-size: 15px; line-height: 1.5; min-width: 0; }
.pubk-community .pubk-community-subscribe { display: grid; grid-template-columns: 280px auto; min-width: 0; }
.pubk-community .pubk-community-subscribe input {
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 0;
  color: #fff;
  font-family: var(--sans);
  font-size: 14px;
  height: 46px;
  min-width: 0;
  outline: none;
  padding: 0 18px;
  width: 100%;
}
.pubk-community .pubk-community-subscribe input::placeholder { color: #A8B4C7; opacity: 1; }
.pubk-community .pubk-community-subscribe input:focus { border-color: var(--gold-soft); box-shadow: inset 0 0 0 1px var(--gold-soft); }
.pubk-community .pubk-community-subscribe a,
.pubk-community .pubk-community-subscribe button {
  border: 0;
  border-radius: 0;
  cursor: pointer;
  font-family: var(--sans);
  align-items: center;
  background: var(--red);
  color: #fff;
  display: flex;
  font-size: 12px;
  font-weight: 700;
  height: 46px;
  justify-content: center;
  letter-spacing: .14em;
  padding: 0 26px;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}
.pubk-community .pubk-community-subscribe a:hover,
.pubk-community .pubk-community-subscribe button:hover { background: var(--red-deep); color: #fff; }
.pubk-community .pubk-community-head {
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  padding: 64px 0 56px;
  position: relative;
}
.pubk-community .pubk-community-head::before {
  background: linear-gradient(90deg,var(--navy) 0 33%,var(--red) 33% 66%,var(--gold) 66% 100%);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.pubk-community .pubk-community-eyebrow {
  align-items: center;
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  gap: 14px;
  letter-spacing: .28em;
  margin: 0 0 22px;
  text-transform: uppercase;
}
.pubk-community .pubk-community-eyebrow::before { background: currentColor; content: ""; height: 1px; opacity: .6; width: 36px; }
.pubk-community .pubk-community-title {
  font-size: clamp(40px,5vw,68px) !important;
  font-weight: 380;
  letter-spacing: -.025em;
  line-height: 1.04;
  margin: 0 0 24px;
  max-width: 880px;
}
.pubk-community .pubk-community-title em { color: var(--navy); font-style: italic; }
.pubk-community .pubk-community-dek { font-size: 18px; font-weight: 380; line-height: 1.65; margin: 0; max-width: 620px; }
.pubk-community .pubk-community-directory { border-bottom: 1px solid var(--line); padding: 64px 0; }
.pubk-community .pubk-community-jb-cal {
  border: 1px solid var(--line);
  display: grid !important;
  gap: 0;
  grid-template-columns: repeat(2,minmax(0,1fr));
  margin: 0;
}
.pubk-community .pubk-community-jb-cal > .wp-block-column { margin: 0; min-width: 0; }
.pubk-community .pubk-community-card {
  border-top: 3px solid var(--red);
  display: flex;
  padding: 48px 44px;
}
.pubk-community .pubk-community-card.is-job { border-right: 1px solid var(--line); }
.pubk-community .pubk-community-card.is-calendar { border-top-color: var(--gold); }
.pubk-community .pubk-community-card-flow { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.pubk-community .pubk-community-card-eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  margin: 0 0 16px;
  text-transform: uppercase;
}
.pubk-community .pubk-community-card-eyebrow.is-gold { color: var(--pubk-community-gold-text); }
.pubk-community .pubk-community-card-title {
  font-size: 32px !important;
  font-weight: 380;
  letter-spacing: -.015em;
  line-height: 1.1;
  margin: 0 0 14px;
}
.pubk-community .pubk-community-card-title em { color: var(--navy); font-style: italic; }
.pubk-community .pubk-community-card-copy { font-size: 15px; line-height: 1.65; margin: 0 0 28px; max-width: 440px; }
.pubk-community .pubk-community-card-link { display: flex; margin: auto 0 0; }
.pubk-community .pubk-community-card-link a {
  align-items: center;
  color: var(--navy);
  display: flex;
  font-size: 11px;
  font-weight: 700;
  gap: 8px;
  letter-spacing: .16em;
  text-decoration: none;
  text-transform: uppercase;
  width: 100%;
}
.pubk-community .pubk-community-card-link a::after { content: "→"; transition: transform .25s; }
.pubk-community .pubk-community-card-link a:hover { color: var(--red); }
.pubk-community .pubk-community-card-link a:hover::after { transform: translateX(5px); }
.pubk-community .pubk-community-sponsors { overflow: hidden; padding: 60px 0; position: relative; }
.pubk-community .pubk-community-sponsors-head {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.1);
  margin: 0 0 36px;
  padding: 0 0 24px;
}
.pubk-community .pubk-community-sponsors-title {
  font-size: 24px !important;
  font-weight: 380;
  letter-spacing: -.01em;
  line-height: 1.1;
  margin: 0;
}
.pubk-community .pubk-community-sponsors-title em { color: var(--gold-soft); font-style: italic; }
.pubk-community .pubk-community-sponsors-link { margin: 0; }
.pubk-community .pubk-community-sponsors-link a {
  align-items: center;
  color: var(--gold-soft);
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  gap: 8px;
  letter-spacing: .16em;
  text-decoration: none;
  text-transform: uppercase;
}
.pubk-community .pubk-community-sponsors-link a::after { content: "→"; }
.pubk-community .pubk-community-sponsors-link a:hover { color: #fff; }
.pubk-community .pubk-community-marquee {
  display: flex;
  margin: 0;
  mask-image: linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);
}
.pubk-community .pubk-community-marquee-track {
  animation: pubk-community-scroll 36s linear infinite;
  display: flex;
  flex: 0 0 auto;
  gap: 60px;
  padding-right: 60px;
  width: max-content;
}
.pubk-community .pubk-community-marquee-track span {
  color: rgba(255,255,255,.85);
  flex: 0 0 auto;
  font-family: var(--serif);
  font-size: 24px;
  font-style: italic;
  font-weight: 380;
  letter-spacing: -.01em;
  white-space: nowrap;
}
.pubk-community .pubk-community-marquee-track span::before { color: var(--red); content: "·"; font-size: 32px; margin-right: 60px; vertical-align: middle; }
.pubk-community .pubk-community-marquee-track span:hover { color: var(--gold-soft); }
@keyframes pubk-community-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-community .pubk-community-marquee-track { animation: none; }
}
@media (max-width: 1000px) {
  .pubk-community .pubk-community-weekly-inner { gap: 22px; grid-template-columns: minmax(0,1fr); }
  .pubk-community .pubk-community-subscribe { grid-template-columns: minmax(0,280px) auto; width: max-content; }
  .pubk-community .pubk-community-jb-cal { grid-template-columns: minmax(0,1fr); }
  .pubk-community .pubk-community-card.is-job { border-bottom: 1px solid var(--line); border-right: 0; }
}
@media (max-width: 640px) {
  .pubk-community .pubk-community-container { padding-left: 20px; padding-right: 20px; }
  .pubk-community .pubk-community-weekly-copy { align-items: flex-start; flex-direction: column; gap: 10px; }
  .pubk-community .pubk-community-weekly-divider { display: none; }
  .pubk-community .pubk-community-subscribe { grid-template-columns: minmax(0,1fr) auto; width: 100%; }
  .pubk-community .pubk-community-subscribe a,
  .pubk-community .pubk-community-subscribe button { padding-left: 18px; padding-right: 18px; }
  .pubk-community .pubk-community-head { padding: 56px 0 52px; }
  .pubk-community .pubk-community-directory { padding: 56px 0; }
  .pubk-community .pubk-community-sponsors-head { align-items: flex-start; flex-direction: column; gap: 16px; }
}

/* ---------- 0.49.0: Briefs page (/briefs/ = pubk/membership, the tiers page; Patrick's Claude Design file "Pub K Briefs" 2026-09-15; build notes data/2026-09-15-091526-round/r5-0490/) ----------
   Replaces the 0.30.0-0.48.0 "Membership pricing page" block wholesale (all .pubk-membership-pricing/.pubk-mp-* scoped; only patterns/membership.php used it).
   Page root .pubk-briefs, elements .pubk-bf-*. Sections: navy hero + four Brief cards with the client's marks | cream #individual (head, Free bar,
   four tiers, every-paid-membership band) | white #teams (head, seat table, fine print) | cream #join band | white #contact (Chloe's card).
   No in-page Weekly strip (the file has none). Brief card rules use the logo-sampled --mark-* tokens (the homepage cards' keys). Small gold type on
   light surfaces uses --gold-accessible (site rule C-10). */
.pubk-briefs { color: var(--ink); overflow: clip; }
.pubk-briefs *, .pubk-briefs *::before, .pubk-briefs *::after { box-sizing: border-box; }
.pubk-briefs .pubk-container { margin-left: auto; margin-right: auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; width: 100%; }
.pubk-briefs .pubk-bf-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-briefs .pubk-bf-eyebrow-gold { color: var(--gold-soft); margin-bottom: 18px; }
.pubk-briefs .pubk-bf-label-gold { color: var(--gold-label); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 18px; text-transform: uppercase; }
.pubk-briefs .pubk-bf-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; text-wrap: pretty; }
.pubk-briefs .pubk-bf-h2 em { font-style: italic; }
.pubk-briefs .pubk-bf-head { align-items: flex-end; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; margin-bottom: 32px; padding-bottom: 22px; }
.pubk-briefs .pubk-bf-head-lede { color: var(--slate); font-size: 15px; line-height: 1.55; margin: 0; max-width: 480px; }
.pubk-briefs .pubk-bf-btns { display: flex; flex-wrap: wrap; gap: 16px; }
.pubk-briefs .pubk-bf-btn, .pubk-briefs .pubk-bf-btn-ghost, .pubk-briefs .pubk-bf-btn-outline, .pubk-briefs .pubk-bf-btn-navy { display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 15px 26px; text-align: center; text-decoration: none; text-transform: uppercase; transition: background 0.2s, border-color 0.2s, color 0.2s; white-space: nowrap; }
.pubk-briefs .pubk-bf-btn { background: var(--red); color: #fff; }
.pubk-briefs .pubk-bf-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-briefs .pubk-bf-btn-ghost { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.pubk-briefs .pubk-bf-btn-ghost:hover { border-color: #fff; color: #fff; }
.pubk-briefs .pubk-bf-btn-outline { border: 1px solid var(--navy); color: var(--navy); }
.pubk-briefs .pubk-bf-btn-outline:hover { background: var(--navy); color: #fff; }
.pubk-briefs .pubk-bf-btn-navy { background: var(--navy); color: #fff; font-size: 12px; padding: 14px 22px; }
.pubk-briefs .pubk-bf-btn-navy:hover { background: var(--navy-mid); color: #fff; }
.pubk-briefs .pubk-bf-btn-sm { padding: 13px 22px; }
/* hero */
.pubk-briefs .pubk-bf-hero { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) var(--navy); color: #fff; }
.pubk-briefs .pubk-bf-hero > .pubk-container { padding-bottom: 64px; padding-top: 60px; }
.pubk-briefs .pubk-bf-hero-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 56px; }
.pubk-briefs .pubk-bf-hero-copy { flex: 1 1 440px; min-width: 0; }
.pubk-briefs .pubk-bf-h1 { color: #fff; font-family: var(--serif); font-size: clamp(38px, 3.75vw, 54px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.08; margin: 0; text-wrap: pretty; }
.pubk-briefs .pubk-bf-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-briefs .pubk-bf-hero-lede { color: var(--on-navy-body); font-size: 17px; line-height: 1.65; margin: 26px 0 34px; max-width: 560px; }
.pubk-briefs .pubk-bf-cards { display: grid; flex: 1 1 480px; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); min-width: 0; }
.pubk-briefs .pubk-bf-card { background: #fff; border-top: 3px solid var(--navy); color: var(--ink); display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 24px; text-decoration: none; transition: transform 0.25s, box-shadow 0.25s; }
.pubk-briefs .pubk-bf-card:hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.25); transform: translateY(-3px); }
.pubk-briefs .pubk-bf-card.is-protests { border-top-color: var(--mark-protests); }
.pubk-briefs .pubk-bf-card.is-cyber { border-top-color: var(--mark-cyber); }
.pubk-briefs .pubk-bf-card.is-compliance { border-top-color: var(--mark-compliance); }
.pubk-briefs .pubk-bf-card.is-transforming { border-top-color: var(--mark-transforming); }
.pubk-briefs .pubk-bf-card img { display: block; height: auto; margin: 0 auto 4px; max-width: 170px; width: 100%; }
.pubk-briefs .pubk-bf-card-k { color: var(--gold-label); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.pubk-briefs .pubk-bf-card-t { color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; }
.pubk-briefs .pubk-bf-card-d { color: var(--slate); flex: 1 1 auto; font-size: 14px; line-height: 1.55; }
.pubk-briefs .pubk-bf-card-a { color: var(--navy); font-size: 13px; font-weight: 700; }
/* individual tiers */
.pubk-briefs .pubk-bf-individual { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-briefs .pubk-bf-individual > .pubk-container, .pubk-briefs .pubk-bf-teams > .pubk-container, .pubk-briefs .pubk-bf-contact > .pubk-container { padding-bottom: 60px; padding-top: 60px; }
.pubk-briefs .pubk-bf-free { align-items: center; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex-wrap: wrap; gap: 28px; margin-bottom: 24px; padding: 24px 28px; }
.pubk-briefs .pubk-bf-free-name { align-items: baseline; display: flex; gap: 16px; margin: 0; }
.pubk-briefs .pubk-bf-free-label { color: var(--navy); font-family: var(--serif); font-size: 26px; font-weight: 460; }
.pubk-briefs .pubk-bf-free-price { color: var(--navy); font-family: var(--serif); font-size: 30px; font-weight: 380; }
.pubk-briefs .pubk-bf-free-list { color: var(--slate); display: flex; flex: 1 1 380px; flex-wrap: wrap; font-size: 14px; gap: 8px 32px; list-style: none; margin: 0; min-width: 0; padding: 0; }
.pubk-briefs .pubk-bf-free-list li { display: flex; gap: 10px; }
.pubk-briefs .pubk-bf-free-list li::before, .pubk-briefs .pubk-bf-tier-list li::before { color: var(--gold); content: "★"; flex: 0 0 auto; }
.pubk-briefs .pubk-bf-tiers { align-items: stretch; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.pubk-briefs .pubk-bf-tier { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--navy); display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 26px; position: relative; }
.pubk-briefs .pubk-bf-tier.is-gold { border-top-color: var(--gold); }
.pubk-briefs .pubk-bf-tier.is-featured { border-top-color: var(--red); }
.pubk-briefs .pubk-bf-tier h3 { color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 460; line-height: 1.2; margin: 0; }
.pubk-briefs .pubk-bf-tier-sub { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; margin: 0; text-transform: uppercase; }
.pubk-briefs .pubk-bf-tier.is-featured .pubk-bf-tier-sub { color: var(--red); }
.pubk-briefs .pubk-bf-price { color: var(--ink); font-family: var(--serif); font-size: 38px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 6px 0 10px; }
.pubk-briefs .pubk-bf-price span { color: var(--slate-light); font-size: 15px; letter-spacing: 0; }
.pubk-briefs .pubk-bf-tier-list { color: var(--slate); display: flex; flex: 1 1 auto; flex-direction: column; font-size: 13px; line-height: 1.5; list-style: none; margin: 0; padding: 0; }
.pubk-briefs .pubk-bf-tier-list li { border-bottom: 1px solid var(--line); display: flex; gap: 10px; padding: 8px 0; }
.pubk-briefs .pubk-bf-tier-list li:last-child { border-bottom: 0; }
.pubk-briefs .pubk-bf-tier-btn { font-size: 12px; margin-top: 12px; padding: 13px 16px; }
.pubk-briefs .pubk-bf-flag { background: var(--red); color: #fff; font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.18em; line-height: 15px; padding: 6px 14px; position: absolute; right: -1px; text-transform: uppercase; top: -27px; }
.pubk-briefs .pubk-bf-perks { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); margin-top: 28px; padding: 28px 32px; }
.pubk-briefs .pubk-bf-perk-list { color: var(--slate); display: grid; font-size: 14px; gap: 12px 32px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); line-height: 1.5; list-style: none; margin: 0; padding: 0; }
.pubk-briefs .pubk-bf-perk-list li { display: flex; gap: 12px; }
.pubk-briefs .pubk-bf-perk-list li::before { color: var(--gold); content: "•"; flex: 0 0 auto; }
.pubk-briefs .pubk-bf-free-list li > span, .pubk-briefs .pubk-bf-tier-list li > span, .pubk-briefs .pubk-bf-perk-list li > span { min-width: 0; }
/* team seats */
.pubk-briefs .pubk-bf-teams { background: var(--paper); }
.pubk-briefs .pubk-bf-seat-wrap { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); overflow-x: auto; }
.pubk-briefs .pubk-bf-seat-table { border-collapse: collapse; color: var(--navy); font-size: 14px; min-width: 680px; width: 100%; }
.pubk-briefs .pubk-bf-seat-table th, .pubk-briefs .pubk-bf-seat-table td { text-align: center; }
.pubk-briefs .pubk-bf-seat-table th:first-child, .pubk-briefs .pubk-bf-seat-table td:first-child { text-align: left; }
.pubk-briefs .pubk-bf-seat-table thead th { border-bottom: 1px solid var(--line); color: var(--navy); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.4; padding: 16px 14px; text-transform: uppercase; }
.pubk-briefs .pubk-bf-seat-table thead th:first-child, .pubk-briefs .pubk-bf-seat-table thead th:last-child { padding-left: 22px; padding-right: 22px; }
.pubk-briefs .pubk-bf-seat-table thead th:nth-child(-n+2) { color: var(--slate-light); }
.pubk-briefs .pubk-bf-seat-table thead th span { color: var(--slate-light); font-weight: 400; letter-spacing: 0; text-transform: none; }
.pubk-briefs .pubk-bf-seat-table tbody th, .pubk-briefs .pubk-bf-seat-table tbody td { border-top: 1px solid var(--line); color: var(--slate); font-weight: 400; padding: 13px 14px; }
.pubk-briefs .pubk-bf-seat-table tbody th { color: var(--navy); font-weight: 600; padding-left: 22px; padding-right: 22px; }
.pubk-briefs .pubk-bf-seat-table tbody td.pubk-bf-seat-disc { color: var(--gold-label); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.pubk-briefs .pubk-bf-seat-table tbody td.pubk-bf-seat-all { color: var(--navy); font-weight: 600; padding-left: 22px; padding-right: 22px; }
.pubk-briefs .pubk-bf-fine { color: var(--slate-light); font-size: 13px; line-height: 1.6; margin: 18px 0 0; }
.pubk-briefs .pubk-bf-fine a { color: var(--red); font-weight: 600; text-decoration: none; }
.pubk-briefs .pubk-bf-fine a:hover { color: var(--red-deep); text-decoration: underline; }
/* join band */
.pubk-briefs .pubk-bf-join { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-briefs .pubk-bf-join > .pubk-container { padding-bottom: 34px; padding-top: 34px; }
.pubk-briefs .pubk-bf-join-row { align-items: center; display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; }
.pubk-briefs .pubk-bf-join-h2 { color: var(--ink); font-family: var(--serif); font-size: 26px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 6px; }
.pubk-briefs .pubk-bf-join-h2 em { font-style: italic; }
.pubk-briefs .pubk-bf-join-copy p { color: var(--slate); font-size: 14px; line-height: 1.5; margin: 0; }
.pubk-briefs .pubk-bf-join .pubk-bf-btns { gap: 14px; }
/* get in touch */
.pubk-briefs .pubk-bf-contact { background: var(--paper); border-top: 1px solid var(--line); }
.pubk-briefs .pubk-bf-contact-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-briefs .pubk-bf-contact-copy { flex: 1 1 440px; min-width: 0; }
.pubk-briefs .pubk-bf-contact-copy .pubk-bf-h2 { line-height: 1.12; margin-bottom: 18px; }
.pubk-briefs .pubk-bf-contact-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin: 0 0 28px; max-width: 520px; }
.pubk-briefs .pubk-bf-person { align-items: center; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex: 0 1 380px; gap: 20px; min-width: 0; padding: 32px; }
.pubk-briefs .pubk-bf-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-briefs .pubk-bf-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-briefs .pubk-bf-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-briefs .pubk-bf-person-mail { font-size: 14px; margin: 6px 0 0; }
.pubk-briefs .pubk-bf-person-mail a { color: var(--slate); font-size: inherit; font-weight: 600; text-decoration: none; }
.pubk-briefs .pubk-bf-person-mail a:hover { color: var(--red); }
@media (max-width: 999px) { .pubk-briefs .pubk-bf-hero-grid, .pubk-briefs .pubk-bf-contact-grid { gap: 40px; } .pubk-briefs .pubk-bf-person { flex-basis: 100%; } }
@media (max-width: 600px) {
  .pubk-briefs .pubk-container { padding-left: 24px; padding-right: 24px; }
  .pubk-briefs .pubk-bf-hero > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-briefs .pubk-bf-individual > .pubk-container, .pubk-briefs .pubk-bf-teams > .pubk-container, .pubk-briefs .pubk-bf-contact > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-briefs .pubk-bf-head { margin-bottom: 24px; padding-bottom: 18px; }
  .pubk-briefs .pubk-bf-free { padding: 20px; }
  .pubk-briefs .pubk-bf-free .pubk-bf-btn-navy { width: 100%; }
  .pubk-briefs .pubk-bf-tier, .pubk-briefs .pubk-bf-perks, .pubk-briefs .pubk-bf-person { padding: 22px 20px; }
  .pubk-briefs .pubk-bf-tier.is-featured { margin-top: 20px; }
  .pubk-briefs .pubk-bf-join-row .pubk-bf-btns, .pubk-briefs .pubk-bf-join-row .pubk-bf-btns a, .pubk-briefs .pubk-bf-hero .pubk-bf-btns a, .pubk-briefs .pubk-bf-contact .pubk-bf-btn { width: 100%; }
}

/* ---------- News hub previews (member + visitor) ---------- */
.pubk-news,
.pubk-news * { box-sizing: border-box; }
.pubk-news {
  background: var(--paper);
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 380;
  line-height: 1.55;
  margin: 0 !important;
  max-width: none !important;
  overflow: clip;
  width: 100%;
}
.pubk-news .pubk-news-content { margin: 0; }
.pubk-news .screen-reader-text {
  border: 0;
  clip: rect(1px,1px,1px,1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}
.pubk-news h1,
.pubk-news h2,
.pubk-news h3,
.pubk-news h4,
.pubk-news h3,
.pubk-news p,
.pubk-news ul { margin: 0; }
.pubk-news a { color: inherit; text-decoration: none; transition: color .2s; }
.pubk-news a:hover { color: var(--red); }
.pubk-news .news-container { margin: 0 auto; max-width: 1280px; padding: 0 32px; width: 100%; }
.pubk-news .eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.pubk-news .section-title { color: var(--ink); font-family: var(--serif); font-size: clamp(30px,3.6vw,46px); font-weight: 380; letter-spacing: -.01em; line-height: 1.05; }
.pubk-news .section-title em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-news .weekly-strip { background: var(--cream); border-bottom: 1px solid var(--line); padding: 28px 0; position: relative; }
.pubk-news .weekly-strip::before { background: linear-gradient(90deg,var(--gold) 0%,var(--gold) 50%,var(--red) 50%,var(--red) 100%); content: ""; height: 3px; left: 0; position: absolute; right: 0; top: 0; }
.pubk-news .weekly-strip-inner { align-items: center; display: flex; gap: 48px; justify-content: space-between; position: relative; }
.pubk-news .weekly-strip-left { align-items: center; display: flex; flex: 1; gap: 28px; min-width: 0; }
.pubk-news .weekly-badge { align-items: center; color: var(--navy); display: flex; font-family: var(--serif); font-size: 26px; font-style: italic; font-weight: 380; gap: 10px; letter-spacing: -.01em; white-space: nowrap; }
.pubk-news .weekly-badge::before { color: var(--gold); content: "★"; font-size: 14px; font-style: normal; }
.pubk-news .weekly-strip-text { border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; line-height: 1.4; padding-left: 24px; }
.pubk-news .weekly-strip-text strong { color: var(--ink); font-size: 14px; font-weight: 600; }
.pubk-news .weekly-strip-text span { color: var(--gray); font-size: 13px; }
.pubk-news .weekly-strip-text span em { color: var(--navy); font-family: var(--serif); font-size: 14px; font-style: italic; }
.pubk-news .weekly-strip-form { display: flex; flex-shrink: 0; gap: 10px; } /* 0.12.4: match the site-wide field/button gap */
.pubk-news .weekly-strip-input { background: #fff; border: 1px solid var(--line); color: var(--ink); font-family: var(--sans); font-size: 14px; min-width: 280px; outline: none; padding: 14px 18px; }
.pubk-news .weekly-strip-input:focus { border-color: var(--navy); }
.pubk-news .news-form-button { align-items: center; background: var(--red); border: 0; border-radius: 0; color: #fff; cursor: pointer; display: inline-flex; font-family: var(--sans); font-size: 12px; font-weight: 700; justify-content: center; letter-spacing: .14em; line-height: inherit; padding: 15px 26px; text-transform: uppercase; transition: background-color .25s, color .25s; }
.pubk-news .news-form-button:hover { background: var(--red-deep); }
.pubk-news .weekly-strip-submit::after { content: "→"; margin-left: 8px; }
.pubk-news .ad-leaderboard-wrap { padding-top: 24px; }
.pubk-news .ad-leaderboard-wrap.is-visitor { padding-top: 36px; }
.pubk-news .ad-slot > div { max-width: 100%; }
.pubk-news .ad-slot { align-items: center; background: #F4F1E8; border: 1px solid var(--line); color: var(--gray); display: flex; font-size: 11px; font-weight: 700; justify-content: center; letter-spacing: .18em; text-align: center; text-transform: uppercase; }
.pubk-news .ad-leaderboard { height: 120px; margin: 0 0 8px; }
.pubk-news .ad-inline { height: 200px; margin: 0 0 42px; }
.pubk-news .imgph { align-items: center; background: linear-gradient(135deg,#E8E3D6,#DBD5C5); color: #A39B86; display: flex; font-size: 10px; font-weight: 700; justify-content: center; letter-spacing: .2em; text-transform: uppercase; }
.pubk-news .imgph img { display: block; height: 100%; object-fit: cover; width: 100%; }
.pubk-news .news-layout-wrap { padding-bottom: 8px; padding-top: 44px; }
.pubk-news .layout { align-items: start; display: grid; gap: 48px; grid-template-columns: minmax(0,1fr) 320px; }
.pubk-news .layout-main { min-width: 0; }
.pubk-news .layout-main .sec { border-bottom: 1px solid var(--line); margin-bottom: 42px; padding: 0 0 42px; }
.pubk-news .layout-main .sec:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.pubk-news .layout-main .sec .news-container { max-width: none; padding: 0; }
.pubk-news .sec-head { align-items: baseline; border-bottom: 2px solid var(--navy); display: flex; gap: 20px; justify-content: space-between; margin-bottom: 28px; padding-bottom: 14px; }
.pubk-news .sec-head-left { display: flex; flex-direction: column; gap: 6px; }
.pubk-news .sec-readmore { color: var(--red); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.pubk-news a.sec-readmore::after { content: " →"; }
.pubk-news .sec-readmore.is-locked { color: var(--gray); }
.pubk-news .feature-row { display: grid; gap: 44px; grid-template-columns: 1.4fr 1fr; }
.pubk-news .mini-list { display: flex; flex-direction: column; margin-top: 0; }
.pubk-news .mini-item { border-top: 1px solid var(--line); display: flex; gap: 14px; padding: 14px 0; }
.pubk-news .mini-item .imgph { flex-shrink: 0; height: 64px; width: 84px; }
.pubk-news .mini-headline { color: var(--ink); font-family: var(--serif); font-size: 14.5px; font-weight: 420; line-height: 1.3; }
.pubk-news .mini-item:hover .mini-headline { color: var(--navy); }
.pubk-news .mini-date { color: var(--gray); font-size: 10.5px; font-weight: 600; letter-spacing: .06em; margin-top: 5px; text-transform: uppercase; }
.pubk-news .card-grid { display: grid; gap: 30px 26px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pubk-news .card { display: flex; flex-direction: column; min-width: 0; }
.pubk-news .card .imgph { aspect-ratio: 16/10; margin-bottom: 14px; width: 100%; }
.pubk-news .card-meta { color: var(--red); font-size: 10px; font-weight: 700; letter-spacing: .11em; margin-bottom: 8px; text-transform: uppercase; }
.pubk-news .card-headline { color: var(--ink); font-family: var(--serif); font-size: 19px; font-weight: 420; line-height: 1.28; margin-bottom: 8px; }
.pubk-news .card-link:hover .card-headline { color: var(--navy); }
.pubk-news .card-excerpt { color: var(--gray); font-size: 13.5px; line-height: 1.55; margin-bottom: 10px; }
.pubk-news .card-lead .imgph { aspect-ratio: 16/9; }
.pubk-news .card-lead .card-headline { font-size: 26px; font-weight: 400; line-height: 1.18; }
.pubk-news .card-lead .card-excerpt { font-size: 15px; }
.pubk-news .card-standalone .card-headline { font-size: 20px; }
.pubk-news .sidebar { display: flex; flex-direction: column; gap: 32px; position: sticky; top: 24px; }
.pubk-news .side-block { background: var(--cream-soft); border: 1px solid var(--line); }
.pubk-news .side-block-head { background: var(--navy); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .18em; padding: 13px 18px; text-transform: uppercase; }
.pubk-news .side-nav { list-style: none; padding: 0; }
.pubk-news .side-nav li { border-top: 1px solid var(--line); }
.pubk-news .side-nav li:first-child { border-top: 0; }
.pubk-news .side-nav a { align-items: center; background: #fff; color: var(--navy); display: flex; font-size: 13.5px; font-weight: 600; justify-content: space-between; letter-spacing: .02em; padding: 13px 18px; }
.pubk-news .side-nav a::after { color: var(--gold); content: "→"; opacity: 0; transform: translateX(-6px); transition: opacity .18s, transform .18s; }
.pubk-news .side-nav a:hover { color: var(--red); padding-left: 24px; }
.pubk-news .side-nav a:hover::after { opacity: 1; transform: translateX(0); }
.pubk-news .side-ad { flex-direction: column; gap: 6px; height: 250px; margin: 0 auto; width: 300px; }
.pubk-news .side-ad-tall { height: 600px; }
.pubk-news .side-block-pad { padding: 18px; }
.pubk-news .side-list-entry { border-top: 1px solid var(--line); display: block; padding: 12px 0; }
.pubk-news .side-list-entry:first-of-type { border-top: 0; padding-top: 0; }
.pubk-news .side-list-headline { color: var(--ink); font-family: var(--serif); font-size: 14px; font-weight: 420; line-height: 1.3; }
.pubk-news .side-list-entry:hover .side-list-headline { color: var(--navy); }
.pubk-news .side-list-meta { color: var(--gray); font-size: 10px; font-weight: 600; letter-spacing: .05em; margin-top: 4px; text-transform: uppercase; }
.pubk-news .side-cta { background: var(--navy); padding: 24px 20px; text-align: center; }
.pubk-news .side-cta :is(h2, h3, h4) { color: #fff; font-family: var(--serif); font-size: 20px; font-weight: 380; line-height: 1.2; margin-bottom: 8px; }
.pubk-news .side-cta :is(h2, h3, h4) em { color: var(--gold-soft); font-style: italic; }
.pubk-news .side-cta p { color: #A8B4C7; font-size: 12.5px; line-height: 1.5; margin-bottom: 16px; }
.pubk-news .side-cta .wp-block-button { display: inline-block; }
.pubk-news .dual-sec { background: var(--cream-soft); border-bottom: 1px solid var(--line); padding: 64px 0 56px; }
.pubk-news .dual-grid { display: grid; gap: 56px; grid-template-columns: 1.15fr 1fr; }
.pubk-news .dual-head { align-items: baseline; border-bottom: 2px solid var(--navy); display: flex; gap: 16px; justify-content: space-between; margin-bottom: 24px; padding-bottom: 12px; }
.pubk-news .dual-head h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(26px,2.6vw,34px); font-weight: 380; letter-spacing: -.01em; }
.pubk-news .dual-head h2 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-news .analysis-feature { border-bottom: 1px solid var(--line); display: block; margin-bottom: 22px; padding-bottom: 22px; }
.pubk-news .analysis-kicker { color: var(--gold-label); font-size: 10px; font-weight: 700; letter-spacing: .12em; margin-bottom: 10px; text-transform: uppercase; }
.pubk-news .analysis-feature h3 { color: var(--ink); font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.2; margin-bottom: 10px; }
.pubk-news .analysis-feature:hover h3 { color: var(--navy); }
.pubk-news .analysis-dek { color: var(--gray); font-size: 14.5px; line-height: 1.6; margin-bottom: 12px; }
.pubk-news .move-list { display: flex; flex-direction: column; }
.pubk-news .move-item { align-items: flex-start; border-top: 1px solid var(--line); display: flex; gap: 16px; padding: 18px 0; }
.pubk-news .move-item:first-child { border-top: 0; }
.pubk-news .move-avatar { align-items: center; background: linear-gradient(135deg,var(--navy),var(--navy-mid)); border-radius: 50%; color: var(--gold-soft); display: flex; flex-shrink: 0; font-family: var(--serif); font-size: 18px; font-style: italic; height: 52px; justify-content: center; width: 52px; }
.pubk-news .move-body { min-width: 0; }
.pubk-news .move-name { color: var(--ink); font-family: var(--serif); font-size: 17px; font-weight: 420; line-height: 1.2; }
.pubk-news .move-detail { color: var(--ink-soft); font-size: 13.5px; line-height: 1.5; margin-top: 3px; }
.pubk-news .move-detail strong { color: var(--navy); font-weight: 600; }
.pubk-news .move-tag { background: #fff; border: 1px solid var(--line); color: var(--gray); display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: .12em; margin-top: 7px; padding: 3px 8px; text-transform: uppercase; }
.pubk-news .move-tag.hire { border-color: rgba(200,16,46,.3); color: var(--red); }
.pubk-news .move-tag.promo { border-color: rgba(194,162,88,.4); color: var(--gold-label); }
.pubk-news .submit-bar { align-items: center; background: var(--navy); display: flex; flex-wrap: wrap; gap: 28px; justify-content: space-between; margin-top: 48px; padding: 28px 36px; }
.pubk-news .submit-bar-text { display: flex; flex-direction: column; gap: 4px; }
.pubk-news .submit-bar-text strong { color: #fff; font-family: var(--serif); font-size: 20px; font-weight: 380; }
.pubk-news .submit-bar-text span { color: #A8B4C7; font-size: 13px; }
.pubk-news .submit-bar-actions,
.pubk-news .brief-cta-actions { align-items: center; display: flex; flex-shrink: 0; gap: 14px; }
.pubk-news .preview-note { background: var(--cream); border-bottom: 1px solid var(--line); padding: 18px 0; }
.pubk-news .preview-note-inner { align-items: center; color: var(--ink-soft); display: flex; flex-wrap: wrap; font-size: 13px; gap: 12px; justify-content: center; text-align: center; }
.pubk-news .preview-note-inner strong { color: var(--navy); font-family: var(--serif); font-size: 15px; font-style: italic; font-weight: 380; }
.pubk-news .trending { background: var(--navy); color: #E8EDF4; padding: 40px 0; }
.pubk-news .trending .eyebrow { color: var(--gold-soft); }
.pubk-news .trending-cols { align-items: start; display: grid; gap: 56px; grid-template-columns: minmax(0,1fr) 380px; }
.pubk-news .trending-title { color: #fff; font-family: var(--serif); font-size: clamp(26px,3vw,38px); font-weight: 380; margin: 6px 0 26px; }
.pubk-news .trending-title em { color: var(--gold-soft); font-style: italic; font-weight: 300; }
.pubk-news .trending-list { display: grid; grid-template-columns: 1fr; }
.pubk-news .trending-item { border-top: 1px solid rgba(255,255,255,.14); display: flex; gap: 18px; padding: 18px 0; }
.pubk-news .trending-num { color: var(--gold-soft); flex-shrink: 0; font-family: var(--serif); font-size: 30px; font-style: italic; line-height: 1; opacity: .85; width: 34px; }
.pubk-news .trending-headline { color: #D7DEEA; font-family: var(--serif); font-size: 17px; font-weight: 400; line-height: 1.3; }
.pubk-news .signin-card { background: var(--cream-soft); border: 1px solid rgba(255,255,255,.12); padding: 34px 32px; }
.pubk-news .signin-card :is(h2, h3) { color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 400; line-height: 1.55; margin-bottom: 6px; }
.pubk-news .signin-card .sub { color: var(--gray); font-size: 13px; margin-bottom: 22px; }
.pubk-news .signin-card label { color: var(--navy); display: block; font-size: 11px; font-weight: 700; letter-spacing: .1em; margin: 0 0 7px; text-transform: uppercase; }
.pubk-news .signin-card input { background: #fff; border: 1px solid var(--line); color: var(--ink); font-family: var(--sans); font-size: 14px; margin-bottom: 16px; min-height: 44px; outline: none; padding: 13px 15px; width: 100%; }
.pubk-news .signin-card input:focus { border-color: var(--navy); }
.pubk-news .signin-card .signin-submit { width: 100%; }
.pubk-news .signin-row { align-items: center; display: flex; font-size: 12px; justify-content: space-between; margin-top: 16px; }
.pubk-news .signin-row span { align-items: center; display: flex; }
.pubk-news .signin-row input { margin: 0 6px 0 0; width: auto; }
.pubk-news .signin-row label { color: var(--gray); display: inline; font-weight: 400; letter-spacing: 0; margin: 0; text-transform: none; }
.pubk-news .signin-row a { color: var(--navy); font-weight: 600; }
.pubk-news .signin-divider { align-items: center; color: var(--gray); display: flex; font-size: 11px; font-weight: 600; gap: 14px; letter-spacing: .12em; margin: 22px 0; text-transform: uppercase; }
.pubk-news .signin-divider::before,
.pubk-news .signin-divider::after { background: var(--line); content: ""; flex: 1; height: 1px; }
.pubk-news .join-line { color: var(--ink-soft); font-size: 13px; text-align: center; }
.pubk-news .join-line a { color: var(--red); font-weight: 700; }
.pubk-news .locked { position: relative; }
.pubk-news .teaser-list { position: relative; }
.pubk-news .teaser-item { border-top: 1px solid var(--line); display: flex; gap: 16px; padding: 15px 0; }
.pubk-news .teaser-item:first-child { border-top: 0; padding-top: 4px; }
.pubk-news .teaser-headline { color: var(--ink); font-family: var(--serif); font-size: 17px; font-weight: 420; line-height: 1.3; }
.pubk-news .teaser-meta { color: var(--gray); font-size: 10.5px; font-weight: 600; letter-spacing: .06em; margin-top: 6px; text-transform: uppercase; }
.pubk-news .ghost-row { align-items: center; border-top: 1px solid var(--line); display: flex; filter: blur(3px); gap: 16px; opacity: .5; padding: 15px 0; user-select: none; }
.pubk-news .ghost-stack { display: flex; flex: 1; flex-direction: column; gap: 8px; }
.pubk-news .ghost-bar { background: linear-gradient(90deg,#E8E3D6,#DBD5C5); border-radius: 2px; height: 13px; }
.pubk-news .ghost-bar.w1 { width: 78%; }
.pubk-news .ghost-bar.w2 { width: 62%; }
.pubk-news .ghost-bar.w3 { width: 88%; }
.pubk-news .ghost-bar.w4 { width: 54%; }
.pubk-news .teaser-fade { background: linear-gradient(to bottom,rgba(255,255,255,0),var(--paper) 86%); bottom: 0; height: 120px; left: 0; pointer-events: none; position: absolute; right: 0; }
/* Pin base type — the same card also renders inside .art-body's serif scope on article pages. */
.pubk-news .brief-cta { align-items: center; background: var(--navy); color: #E8EDF4; display: flex; flex-wrap: wrap; font-family: var(--sans); font-weight: 380; gap: 24px; justify-content: space-between; line-height: 1.55; margin-top: 18px; overflow: hidden; padding: 26px 30px; position: relative; }
.pubk-news .brief-cta::before { background: linear-gradient(180deg,var(--red),var(--gold)); bottom: 0; content: ""; left: 0; position: absolute; top: 0; width: 5px; }
.pubk-news .brief-cta-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; padding-left: 8px; }
.pubk-news .brief-cta-text .k { color: var(--gold-soft); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.pubk-news .brief-cta-text strong { color: #fff; font-family: var(--serif); font-size: 21px; font-weight: 380; line-height: 1.2; }
.pubk-news .brief-cta-text > span:last-child { color: #A8B4C7; font-size: 13px; line-height: 1.45; }
.pubk-news .price-tag { color: #9CA9BD; font-size: 12px; white-space: nowrap; }
.pubk-news .price-tag b { color: var(--gold-soft); font-family: var(--serif); font-size: 16px; font-style: italic; font-weight: 380; }
.pubk-news .sec-lock { align-items: center; background: var(--cream-soft); border: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; margin-top: 8px; padding: 18px 22px; }
.pubk-news .sec-lock-text { align-items: center; display: flex; font-size: 13px; gap: 12px; }
.pubk-news .sec-lock-text strong { color: var(--navy); font-weight: 600; }
.pubk-news .mini-btn { color: var(--red); font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pubk-news .mini-btn::after { content: " →"; }
.pubk-news .side-weekly-copy { color: var(--ink-soft); font-size: 13px; line-height: 1.55; margin-bottom: 14px; }
.pubk-news .side-weekly-form { display: flex; flex-direction: column; gap: 10px; }
.pubk-news .side-weekly-form input { background: #fff; border: 1px solid var(--line); color: var(--ink); font-family: var(--sans); font-size: 13px; min-height: 44px; outline: none; padding: 12px 14px; width: 100%; }
.pubk-news .join { background: var(--cream-soft); border-bottom: 1px solid var(--line); padding: 64px 0; }
.pubk-news .join-head { margin: 0 auto 44px; max-width: 680px; text-align: center; }
.pubk-news .join-head .eyebrow { display: block; margin-bottom: 12px; }
.pubk-news .join-head h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px,3.6vw,44px); font-weight: 380; letter-spacing: -.01em; line-height: 1.08; margin-bottom: 14px; }
.pubk-news .join-head h2 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-news .join-head p { color: var(--gray); font-size: 15px; line-height: 1.6; }
.pubk-news .tier-grid { align-items: stretch; display: grid; gap: 24px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.pubk-news .tier { background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; padding: 32px 28px; position: relative; }
.pubk-news .tier.featured { border-color: var(--navy); border-width: 2px; box-shadow: 0 18px 40px -24px rgba(11,37,69,.4); }
.pubk-news .tier-flag { background: var(--navy); color: #fff; font-size: 10px; font-weight: 700; left: 50%; letter-spacing: .14em; padding: 6px 16px; position: absolute; text-transform: uppercase; top: -12px; transform: translateX(-50%); white-space: nowrap; }
.pubk-news .tier h3 { color: var(--ink); font-family: var(--serif); font-size: 23px; font-weight: 400; line-height: 1.55; margin-bottom: 6px; }
.pubk-news .tier-desc { color: var(--gray); font-size: 13px; line-height: 1.5; margin-bottom: 20px; min-height: 40px; }
.pubk-news .price { align-items: baseline; display: flex; gap: 6px; margin-bottom: 4px; }
.pubk-news .price .amt { color: var(--navy); font-family: var(--serif); font-size: 40px; font-weight: 380; line-height: 1; }
.pubk-news .price .per { color: var(--gray); font-size: 13px; }
.pubk-news .price-note { color: var(--gray); font-size: 11.5px; margin-bottom: 22px; }
.pubk-news .tier ul { flex: 1; list-style: none; margin: 0 0 26px; padding: 0; }
.pubk-news .tier li { border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 13.5px; line-height: 1.4; padding: 9px 0 9px 26px; position: relative; }
.pubk-news .tier li:first-child { border-top: 0; }
.pubk-news .tier li::before { color: var(--gold); content: "✓"; font-weight: 700; left: 0; position: absolute; top: 9px; }
.pubk-news .tier .wp-block-button,
.pubk-news .tier .wp-block-button__link { justify-content: center; width: 100%; }
.pubk-news .briefings { border-bottom: 1px solid var(--line); padding: 64px 0; }
.pubk-news .briefings-head { align-items: baseline; border-bottom: 2px solid var(--navy); display: flex; gap: 20px; justify-content: space-between; margin-bottom: 10px; padding-bottom: 14px; }
.pubk-news .briefings-head h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(26px,3vw,38px); font-weight: 380; letter-spacing: -.01em; }
.pubk-news .briefings-head h2 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-news .briefings-sub { color: var(--gray); font-size: 14px; line-height: 1.6; margin: 14px 0 30px; max-width: 680px; }
.pubk-news .brief-grid { display: grid; gap: 18px; grid-template-columns: repeat(5,minmax(0,1fr)); }
.pubk-news .brief { background: var(--cream-soft); border: 1px solid var(--line); display: flex; flex-direction: column; padding: 24px 20px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.pubk-news .brief:hover { background: #fff; border-color: var(--navy); }
.pubk-news .brief-eyebrow { color: var(--red); font-size: 9.5px; font-weight: 700; letter-spacing: .14em; margin-bottom: 10px; text-transform: uppercase; }
.pubk-news .brief h3 { color: var(--ink); font-family: var(--serif); font-size: 19px; font-weight: 420; line-height: 1.55; margin-bottom: 10px; }
.pubk-news .brief-freq { color: var(--gray); font-size: 11px; font-weight: 600; letter-spacing: .04em; margin-bottom: 12px; }
.pubk-news .brief-desc { color: var(--gray); flex: 1; font-size: 12.5px; line-height: 1.5; margin-bottom: 18px; }
.pubk-news .brief-add {
  align-items: center;
  background: var(--red);
  border: 0;
  border-radius: 0;
  color: #fff;
  display: inline-flex;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  justify-content: center;
  letter-spacing: .14em;
  line-height: inherit;
  padding: 15px 26px;
  text-align: center;
  text-transform: uppercase;
  width: 100%;
}
.pubk-news .brief-add::after { content: " →"; }
@media (max-width: 1024px) {
  .pubk-news .layout { grid-template-columns: 1fr; gap: 40px; }
  .pubk-news .sidebar { flex-direction: row; flex-wrap: wrap; position: static; }
  .pubk-news .sidebar > * { flex: 1; min-width: 260px; }
  .pubk-news .feature-row { gap: 32px; grid-template-columns: 1fr; }
  .pubk-news .dual-grid { gap: 44px; grid-template-columns: 1fr; }
  .pubk-news .trending-cols { gap: 36px; grid-template-columns: 1fr; }
  .pubk-news .tier-grid { grid-template-columns: 1fr; margin: 0 auto; max-width: 460px; }
  .pubk-news .tier.featured { order: -1; }
  .pubk-news .brief-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .pubk-news .news-container { padding: 0 20px; }
  .pubk-news .weekly-strip-inner { align-items: stretch; flex-direction: column; gap: 20px; }
  .pubk-news .weekly-strip-left { align-items: flex-start; flex-direction: column; gap: 14px; }
  .pubk-news .weekly-strip-text { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 14px; }
  .pubk-news .weekly-strip-form { width: 100%; }
  .pubk-news .weekly-strip-input { flex: 1; min-width: 0; width: 1px; }
  .pubk-news .news-form-button { min-height: 44px; }
  .pubk-news .sec-head,
  .pubk-news .dual-head,
  .pubk-news .briefings-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .pubk-news .card-grid,
  
  .pubk-news .sidebar { flex-direction: column; }
  .pubk-news .submit-bar,
  .pubk-news .brief-cta { align-items: flex-start; flex-direction: column; gap: 18px; padding: 24px; }
  .pubk-news .submit-bar-actions,
  .pubk-news .brief-cta-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .pubk-news .submit-bar-actions .wp-block-button,
  .pubk-news .submit-bar-actions .wp-block-button__link,
  .pubk-news .brief-cta-actions .wp-block-button,
  .pubk-news .brief-cta-actions .wp-block-button__link { justify-content: center; width: 100%; }
  .pubk-news .brief-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .pubk-news .weekly-strip-form { flex-direction: column; }
  .pubk-news .weekly-strip-input { width: 100%; }
  .pubk-news .mini-item .imgph { height: 56px; width: 70px; }
  .pubk-news .signin-card { padding: 28px 22px; }
  .pubk-news .price .amt { font-size: 35px; }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-news a,
  .pubk-news .news-form-button,
  .pubk-news .brief { transition: none; }
}

/* ---------- Brief landing pages ---------- */
.pubk-brief-page {
  --pubk-brief-accent: var(--brief-cyber);
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 380;
  line-height: 1.55;
}
.pubk-brief-protests-claims { --pubk-brief-accent: var(--brief-protests); }
.pubk-brief-compliance-enforcement { --pubk-brief-accent: var(--brief-compliance); }
.pubk-brief-transforming-procurement { --pubk-brief-accent: var(--brief-transforming); }
.pubk-brief-page *,
.pubk-brief-page *::before,
.pubk-brief-page *::after { box-sizing: border-box; }
.pubk-brief-page img { display: block; max-width: 100%; }
.pubk-brief-page a { color: inherit; text-decoration: none; transition: color .2s ease; }
.pubk-brief-page a:hover { color: var(--pubk-brief-accent); }
.pubk-brief-page :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.pubk-brief-container { margin: 0 auto; max-width: 1180px; padding: 0 32px; }
.pubk-brief-eyebrow {
  color: var(--pubk-brief-accent);
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.pubk-brief-page h1,
.pubk-brief-page h2,
.pubk-brief-page h3 { font-family: var(--serif); letter-spacing: -.01em; line-height: 1.1; margin: 0; }
.pubk-brief-section-title { color: var(--ink); font-size: clamp(32px,4vw,52px); font-weight: 380; letter-spacing: -.02em; line-height: 1.05; }
.pubk-brief-section-title em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-brief-page-hero {
  background: var(--navy);
  border-bottom: 4px solid var(--gold);
  color: #fff;
  overflow: hidden;
  padding: 80px 0;
  position: relative;
}
.pubk-brief-page-hero::before {
  background: radial-gradient(circle,rgba(194,162,88,.12) 0%,transparent 62%);
  content: "";
  height: 620px;
  pointer-events: none;
  position: absolute;
  right: -140px;
  top: -160px;
  width: 620px;
}
.pubk-brief-page-hero .pubk-brief-container { position: relative; z-index: 1; }
.pubk-brief-hero-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: minmax(0,1.35fr) minmax(0,.9fr); }
.pubk-brief-crumb { align-items: center; color: var(--gold-soft); display: inline-flex; font-size: 11px; font-weight: 700; gap: 10px; letter-spacing: .2em; margin-bottom: 26px; text-transform: uppercase; }
.pubk-brief-crumb a { align-items: center; color: var(--gold-soft); display: inline-flex; min-height: 44px; }
.pubk-brief-crumb a:hover { color: #fff; }
.pubk-brief-crumb span { opacity: .5; }
.pubk-brief-page-hero h1 { color: #fff; font-size: clamp(40px,5vw,64px); font-weight: 400; letter-spacing: -.015em; line-height: 1.04; }
.pubk-brief-page-hero h1 em { color: var(--gold-soft); font-style: italic; font-weight: 300; }
.pubk-brief-page-hero-sub { color: var(--on-navy-body); font-size: 19px; font-weight: 340; line-height: 1.55; margin: 24px 0 0; max-width: 560px; }
.pubk-brief-page-hero-sub em { color: #fff; font-style: italic; font-weight: 400; }
.pubk-brief-hero-cadence { color: var(--gold-soft); font-family: var(--serif); font-size: 17px; font-style: italic; line-height: 1.5; margin: 22px 0 0; max-width: 560px; }
.pubk-brief-hero-cadence b { color: #fff; font-style: normal; font-weight: 600; }
.pubk-brief-trial-card { background: var(--cream-soft); box-shadow: 0 24px 60px rgba(6,18,41,.4); color: var(--ink); padding: 36px 34px; position: relative; text-align: center; }
.pubk-brief-trial-card::before { background: linear-gradient(90deg,var(--navy) 0%,var(--navy) 50%,var(--pubk-brief-accent) 50%,var(--pubk-brief-accent) 100%); content: ""; height: 5px; left: 0; position: absolute; right: 0; top: 0; }
.pubk-brief-trial-flag { color: var(--pubk-brief-accent); font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pubk-brief-trial-logo { padding: 10px 0; text-align: center; }
.pubk-brief-trial-logo img { height: auto; margin: 0 auto; max-width: 240px; width: 100%; }
.pubk-brief-trial-price { align-items: baseline; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: flex; gap: 8px; justify-content: center; margin: 18px 0; padding: 18px 0; }
.pubk-brief-trial-price b { color: var(--ink); font-family: var(--serif); font-size: 42px; font-weight: 400; line-height: 1; }
.pubk-brief-trial-price span { color: var(--gray); font-size: 13px; }
.pubk-brief-btn { border: 0; border-radius: 0; cursor: pointer; justify-content: center; }
.pubk-brief-btn-primary { background: var(--pubk-brief-accent); color: #fff; }
.pubk-brief-btn-primary:hover { background: var(--navy); color: #fff !important; }
.pubk-brief-btn-outline-dark { background: transparent; border: 1px solid rgba(11,37,69,.35); color: var(--navy); }
.pubk-brief-btn-outline-dark:hover { background: var(--navy); border-color: var(--navy); color: #fff !important; }
/* Resting text color must out-specify the `.pubk-brief-page a { color: inherit }` rule above. */
.pubk-brief-page a.pubk-brief-btn-primary, .pubk-brief-page a.pubk-brief-signup-submit { color: #fff; }
.pubk-brief-page a.pubk-brief-btn-outline-dark { color: var(--navy); }
.pubk-brief-btn-arrow::after { content: "→"; font-size: 14px; transition: transform .25s; }
.pubk-brief-btn-arrow:hover::after { transform: translateX(4px); }
.pubk-brief-trial-card .pubk-brief-btn { margin-top: 4px; width: 100%; }
.pubk-brief-trial-fine { color: var(--gray); font-family: var(--serif); font-size: 12px; font-style: italic; margin: 14px 0 0; text-align: center; }
.pubk-brief-block { padding: 88px 0; }
.pubk-brief-coverage { background: var(--paper); }
.pubk-brief-coverage-grid { align-items: center; display: grid; gap: 72px; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); }
.pubk-brief-coverage-intro .pubk-brief-eyebrow { display: block; margin-bottom: 16px; }
.pubk-brief-coverage-lede { color: var(--ink-soft); font-size: 18px; line-height: 1.6; margin: 22px 0 30px; max-width: 440px; }
.pubk-brief-coverage-lede em { color: var(--navy); font-style: italic; }
.pubk-brief-coverage-points { border-top: 1px solid var(--line); list-style: none; margin: 0; padding: 0; }
.pubk-brief-coverage-points li { border-bottom: 1px solid var(--line); color: var(--ink); font-family: var(--serif); font-size: 20px; font-weight: 380; letter-spacing: -.01em; line-height: 1.3; padding: 22px 0 22px 40px; position: relative; }
.pubk-brief-coverage-points li::before { background: var(--pubk-brief-accent); content: ""; height: 2px; left: 0; position: absolute; top: 30px; width: 16px; }
.pubk-brief-team.pubk-brief-tan { background: var(--cream); padding-bottom: 64px; }
.pubk-brief-team-grid { align-items: center; display: grid; gap: 72px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.pubk-brief-team .pubk-brief-eyebrow { display: block; margin-bottom: 16px; }
.pubk-brief-team h2 { color: var(--ink); font-size: clamp(30px,3.6vw,46px); font-weight: 380; letter-spacing: -.02em; line-height: 1.06; }
.pubk-brief-team h2 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-brief-team-lede { color: var(--ink-soft); font-size: 17px; line-height: 1.6; max-width: none; }
.pubk-brief-team-cta { align-items: center; display: flex; flex-wrap: wrap; gap: 22px; margin-top: 32px; }
.pubk-brief-team-cta .pubk-brief-fine { color: var(--gray); font-family: var(--serif); font-size: 14px; font-style: italic; }
.pubk-brief-perk-card { background: #fff; border: 1px solid var(--line); margin-top: 52px; padding: 52px 60px; }
.pubk-brief-perk-card h3 { color: var(--ink); font-size: 30px; font-weight: 380; margin-bottom: 26px; }
.pubk-brief-perk-cols { column-gap: 80px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.pubk-brief-perk-item { align-items: baseline; border-bottom: 1px solid var(--line); color: var(--ink-soft); display: flex; font-size: 16.5px; gap: 16px; line-height: 1.5; padding: 17px 0; }
.pubk-brief-perk-item .pubk-brief-st { color: var(--gold-label); flex: none; font-size: 15px; }
.pubk-brief-perk-fine { color: var(--gray); font-size: 15px; line-height: 1.6; margin: 26px 0 0; }
.pubk-brief-perk-fine b { color: var(--ink); }
.pubk-brief-more-news { background: var(--cream); padding-top: 0; }
.pubk-brief-more-news-head { margin-bottom: 48px; max-width: 680px; }
.pubk-brief-more-news-head .pubk-brief-eyebrow { display: block; margin-bottom: 16px; }
.pubk-brief-more-news-sub { color: var(--ink-soft); font-size: 17px; line-height: 1.6; margin: 18px 0 0; }
.pubk-brief-more-news-grid { display: grid; gap: 20px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.pubk-brief-news-card { background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; padding: 28px 24px 24px; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.pubk-brief-news-card:hover { border-color: var(--gray-light); box-shadow: 0 18px 38px rgba(11,37,69,.12); transform: translateY(-4px); }
.pubk-brief-news-logo { align-items: center; display: flex; margin-bottom: 16px; min-height: 74px; }
.pubk-brief-news-logo img { height: auto; max-width: 180px; width: 100%; }
.pubk-brief-news-card p { color: var(--gray); flex: 1; font-size: 14px; line-height: 1.5; margin: 0; }
.pubk-brief-news-add { color: var(--pubk-brief-accent); font-size: 11px; font-weight: 700; letter-spacing: .12em; margin-top: 18px; text-transform: uppercase; }
.pubk-brief-signup { background: var(--navy); color: #fff; overflow: hidden; padding: 84px 0; position: relative; }
.pubk-brief-signup::before { background: radial-gradient(circle,rgba(194,162,88,.1) 0%,transparent 60%); content: ""; height: 520px; left: -80px; pointer-events: none; position: absolute; top: -120px; width: 520px; }
.pubk-brief-signup .pubk-brief-container { position: relative; z-index: 1; }
.pubk-brief-signup-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); }
.pubk-brief-signup-eyebrow { color: var(--gold-soft); font-size: 11px; font-weight: 700; letter-spacing: .22em; margin-bottom: 18px; text-transform: uppercase; }
.pubk-brief-signup h2 { color: #fff; font-size: clamp(30px,3.6vw,46px); font-weight: 380; letter-spacing: -.02em; line-height: 1.06; }
.pubk-brief-signup h2 em { color: var(--gold-soft); font-style: italic; font-weight: 300; }
.pubk-brief-signup-sub { color: var(--on-navy-body); font-size: 17px; line-height: 1.6; margin: 20px 0 0; max-width: 480px; }
.pubk-brief-signup-form { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); padding: 34px; }
.pubk-brief-signup-form-label { color: var(--gold-soft); display: block; font-size: 11px; font-weight: 700; letter-spacing: .2em; margin-bottom: 18px; text-transform: uppercase; }
.pubk-brief-signup-submit { align-items: center; background: var(--pubk-brief-accent); color: #fff; display: inline-flex; font-size: 13px; font-weight: 700; gap: 10px; justify-content: center; letter-spacing: .1em; min-height: 48px; padding: 16px; text-align: center; text-transform: uppercase; width: 100%; }
.pubk-brief-signup-submit:hover { background: #fff; color: var(--navy) !important; }
.pubk-brief-signup-fine { color: var(--on-navy-muted); font-size: 12.5px; line-height: 1.5; margin: 16px 0 0; }
.pubk-brief-signup-fine b { color: #fff; }
@media (max-width: 980px) {
  .pubk-brief-hero-grid,
  .pubk-brief-team-grid,
  .pubk-brief-signup-grid,
  .pubk-brief-coverage-grid { gap: 44px; grid-template-columns: minmax(0,1fr); }
  .pubk-brief-more-news-grid { gap: 18px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pubk-brief-perk-cols { grid-template-columns: minmax(0,1fr); }
  .pubk-brief-perk-card { padding: 36px 28px; }
}
@media (max-width: 600px) {
  .pubk-brief-container { padding: 0 22px; }
  .pubk-brief-page-hero { padding: 60px 0; }
  .pubk-brief-block { padding: 60px 0; }
  .pubk-brief-coverage-points li { font-size: 18px; }
  .pubk-brief-more-news-grid { grid-template-columns: minmax(0,1fr); }
  .pubk-brief-trial-card,
  .pubk-brief-signup-form { padding: 28px 22px; }
  .pubk-brief-team-cta { align-items: stretch; flex-direction: column; }
  .pubk-brief-team-cta .pubk-brief-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-brief-page *,
  .pubk-brief-page *::before,
  .pubk-brief-page *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
}

/* ---------- Community Jobs + Calendar ---------- */
.pubk-comm,
.pubk-comm *,
.pubk-comm *::before,
.pubk-comm *::after { box-sizing: border-box; }
.pubk-comm { color: var(--ink-soft); font-family: var(--sans); font-size: 16px; font-weight: 380; line-height: 1.55; }
.pubk-comm h1,
.pubk-comm h2,
.pubk-comm h3,
.pubk-comm h4,
.pubk-comm h3,
.pubk-comm p { margin: 0; }
.pubk-comm a { color: inherit; text-decoration: none; transition: color .2s; }
.pubk-comm button,
.pubk-comm input { border-radius: 0; font-family: var(--sans); }
.pubk-comm button { cursor: pointer; }
.pubk-comm-container { margin: 0 auto !important; max-width: 1280px; padding: 0 32px; width: 100%; }
.pubk-comm-head { background: var(--navy); color: #fff; overflow: hidden; padding: 84px 0 76px; position: relative; }
.pubk-comm-head::before { background: linear-gradient(90deg,var(--navy) 0 33%,var(--red) 33% 66%,var(--gold) 66% 100%); content: ""; height: 3px; inset: 0 0 auto; position: absolute; }
.pubk-comm-head::after { bottom: -100px; color: rgba(255,255,255,.03); content: "Jobs"; font-family: var(--serif); font-size: 340px; font-style: italic; font-weight: 300; letter-spacing: -.04em; line-height: .9; pointer-events: none; position: absolute; right: -10px; }
.pubk-comm-head.is-calendar::after { bottom: -90px; content: "Calendar"; font-size: 300px; right: -20px; }
.pubk-comm-head .pubk-comm-container > * { margin-left: 0 !important; margin-right: 0 !important; }
.pubk-comm-eyebrow { align-items: center; color: var(--gold-soft); display: inline-flex; font-size: 13px; font-weight: 700; gap: 14px; letter-spacing: .28em; margin-bottom: 22px; text-transform: uppercase; }
.pubk-comm-eyebrow::before { background: currentColor; content: ""; height: 1px; opacity: .6; width: 36px; }
.pubk-comm-head h1 { color: #fff; font-family: var(--serif); font-size: clamp(40px,5vw,68px); font-weight: 300; letter-spacing: -.025em; line-height: 1.04; margin-bottom: 24px; max-width: 880px; position: relative; z-index: 1; }
.pubk-comm-head h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-comm-head p { color: var(--on-navy-body); font-size: 18px; font-weight: 300; line-height: 1.65; max-width: 600px; position: relative; z-index: 1; }
.pubk-comm-head-cta { display: flex; margin-top: 28px; position: relative; z-index: 1; }
.pubk-comm-head-meta { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 40px; position: relative; z-index: 1; }
.pubk-comm-head-stat { display: flex; flex-direction: column; gap: 4px; }
.pubk-comm-head-num { color: #fff; font-family: var(--serif); font-size: 34px; font-weight: 300; line-height: 1; }
.pubk-comm-head-label { color: var(--gold-soft); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.pubk-comm-board { background: var(--cream-soft); padding: 90px 0 110px; position: relative; }
.pubk-comm-layout { align-items: start; display: grid; gap: 56px; grid-template-columns: minmax(0,1fr) 320px; }
.pubk-comm-main { min-width: 0; }
.pubk-comm-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; margin-bottom: 28px; }
.pubk-comm-toolbar h2,
.pubk-comm-month-nav h2 { color: var(--ink); font-family: var(--serif); font-size: 30px; font-weight: 380; letter-spacing: -.01em; }
.pubk-comm-month-nav { align-items: center; display: flex; gap: 18px; }
.pubk-comm-month-nav button { align-items: center; background: #fff; border: 1px solid var(--line); color: var(--navy); display: flex; font-size: 15px; height: 44px; justify-content: center; width: 44px; }
.pubk-comm-month-nav button:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.pubk-comm-view-toggle { border: 1px solid var(--line); display: flex; }
.pubk-comm-view-toggle button { background: #fff; border: 0; color: var(--gray); font-size: 11px; font-weight: 700; letter-spacing: .14em; min-height: 44px; padding: 10px 18px; text-transform: uppercase; }
.pubk-comm-view-toggle button.is-active { background: var(--navy); color: #fff; }
.pubk-comm-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.pubk-comm-filter { background: transparent; border: 1px solid var(--line); color: var(--gray); font-size: 11px; font-weight: 700; letter-spacing: .16em; min-height: 44px; padding: 10px 18px; text-transform: uppercase; }
.pubk-comm-filter:hover { border-color: var(--navy); color: var(--navy); }
.pubk-comm-filter.is-active { background: var(--navy); border-color: var(--navy); color: #fff; }
.pubk-comm-group-label { align-items: center; color: var(--gray); display: flex; font-size: 11px; font-weight: 700; gap: 14px; letter-spacing: .2em; margin: 0 0 14px 2px; text-transform: uppercase; }
.pubk-comm-group-label::after { background: var(--line); content: ""; flex: 1; height: 1px; }
.pubk-comm-list + .pubk-comm-group-label { margin-top: 40px; }
.pubk-comm-list { background: var(--paper); border: 1px solid var(--line); }
.pubk-comm-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 36px; grid-template-columns: 120px minmax(0,1fr) auto; padding: 28px 36px; transition: background .25s,padding .25s; }
.pubk-comm-item:last-child { border-bottom: 0; }
.pubk-comm-item:hover { background: var(--cream-soft); padding-left: 44px; }
.pubk-comm-date { align-items: flex-start; border-right: 1px solid var(--line); display: flex; flex-direction: column; padding-right: 24px; }
.pubk-comm-month { color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.pubk-comm-day { color: var(--navy); font-family: var(--serif); font-size: 42px; font-weight: 300; letter-spacing: -.02em; line-height: .95; }
.pubk-comm-date-note { color: var(--gray); font-family: var(--serif); font-size: 12px; font-style: italic; margin-top: 2px; }
.pubk-comm-item-content :is(h3, h4) { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 380; letter-spacing: -.01em; line-height: 1.25; margin: 0 0 6px; }
.pubk-comm-meta { align-items: center; color: var(--gray); display: flex; flex-wrap: wrap; font-size: 12px; gap: 14px; margin-bottom: 8px; }
.pubk-comm-cat { background: var(--cream); color: var(--navy); font-size: 10px; font-weight: 700; letter-spacing: .16em; padding: 3px 10px; text-transform: uppercase; }
.pubk-comm-cat.is-lawfirm,
.pubk-comm-cat.is-compliance { background: rgba(200,16,46,.08); color: var(--red); }
.pubk-comm-cat.is-inhouse,
.pubk-comm-cat.is-cyber { background: rgba(31,64,104,.08); color: #1F4068; }
.pubk-comm-cat.is-government,
.pubk-comm-cat.is-protests { background: rgba(194,162,88,.12); color: #7A5B1A; }
.pubk-comm-cat.is-nonprofit,
.pubk-comm-cat.is-procurement { background: rgba(45,90,76,.08); color: #2D5A4C; }
.pubk-comm-format { color: var(--ink-soft); font-family: var(--serif); font-size: 13px; font-style: italic; }
.pubk-comm-location { font-size: 12px; }
.pubk-comm-location::before { color: var(--gray-light); content: "·"; margin-right: 8px; }
.pubk-comm-access { border: 1px solid var(--line); color: var(--gray); font-size: 10px; font-weight: 700; letter-spacing: .14em; padding: 2px 8px; text-transform: uppercase; }
.pubk-comm-access.is-featured,
.pubk-comm-access.is-members { border-color: var(--navy); color: var(--navy); }
.pubk-comm-org { color: var(--navy); font-family: var(--serif); font-size: 15px; font-style: italic; }
.pubk-comm-item-action a { align-items: center; color: var(--navy); display: inline-flex; font-size: 11px; font-weight: 700; gap: 8px; letter-spacing: .16em; min-height: 44px; text-transform: uppercase; }
.pubk-comm-item-action a::after { content: "→"; }
.pubk-comm-item:hover .pubk-comm-item-action a { color: var(--red); }
.pubk-comm-foot { align-items: center; color: var(--gray); display: flex; font-size: 13px; justify-content: space-between; margin-top: 32px; padding: 24px 0; }
.pubk-comm-foot em { color: var(--navy); font-family: var(--serif); font-style: italic; }
.pubk-comm-text-link { align-items: center; color: var(--navy); display: inline-flex; font-size: 12px; font-weight: 700; gap: 8px; letter-spacing: .14em; min-height: 44px; text-transform: uppercase; }
.pubk-comm-text-link::after { content: "→"; }
.pubk-comm-side { display: flex; flex-direction: column; gap: 28px; position: sticky; top: 24px; }
.pubk-comm-side-card { background: #fff; border: 1px solid var(--line); padding: 28px; }
.pubk-comm-side-card.is-feature { background: var(--navy); border-color: var(--navy); color: #fff; overflow: hidden; position: relative; }
.pubk-comm-side-card.is-feature::before { background: linear-gradient(90deg,var(--gold),var(--red)); content: ""; height: 3px; inset: 0 0 auto; position: absolute; }
.pubk-comm-side-card h3 { color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 380; line-height: 1.2; margin-bottom: 6px; }
.pubk-comm-side-card.is-feature h3 { color: #fff; }
.pubk-comm-side-eyebrow { color: var(--red); display: block; font-size: 10px; font-weight: 700; letter-spacing: .2em; margin-bottom: 14px; text-transform: uppercase; }
.pubk-comm-side-card.is-feature .pubk-comm-side-eyebrow { color: var(--gold-soft); }
.pubk-comm-side-card p { color: var(--gray); font-size: 14px; line-height: 1.6; margin-bottom: 18px; }
.pubk-comm-side-card p b { color: var(--ink); font-weight: 600; }
.pubk-comm-side-card.is-feature p { color: var(--on-navy-body); }
.pubk-comm-side-meta { display: flex; flex-direction: column; gap: 12px; margin-bottom: 22px; }
.pubk-comm-side-meta-row { align-items: baseline; color: var(--on-navy-body); display: flex; font-size: 13px; gap: 12px; }
.pubk-comm-side-meta-row b { color: #fff; font-family: var(--serif); font-size: 14px; font-style: italic; font-weight: 600; }
.pubk-comm-legend { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.pubk-comm-legend-row { align-items: center; color: var(--ink-soft); display: flex; font-size: 13px; gap: 12px; }
.pubk-comm-legend-dot { border-radius: 2px; flex: 0 0 11px; height: 11px; }
.pubk-comm-legend-dot.is-lawfirm,
.pubk-comm-legend-dot.is-compliance { background: var(--red); }
.pubk-comm-legend-dot.is-inhouse,
.pubk-comm-legend-dot.is-cyber { background: #1F4068; }
.pubk-comm-legend-dot.is-government,
.pubk-comm-legend-dot.is-protests { background: var(--gold); }
.pubk-comm-legend-dot.is-nonprofit,
.pubk-comm-legend-dot.is-procurement { background: #2D5A4C; }
.pubk-comm-btn { border-radius: 0; cursor: pointer; justify-content: center; }
.pubk-comm-btn.is-primary { background: var(--red); color: #fff; }
.pubk-comm-btn.is-primary:hover { background: #fff; color: var(--navy); }
.pubk-comm-btn.is-outline { background: transparent; border: 1px solid rgba(11,37,69,.35); color: var(--navy); }
.pubk-comm-btn.is-outline:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.pubk-comm-btn.is-arrow::after { content: "→"; }
@media (max-width: 1100px) {
  .pubk-comm-layout { gap: 48px; grid-template-columns: minmax(0,1fr); }
  .pubk-comm-side { position: static; }
}
@media (max-width: 680px) {
  .pubk-comm-container { padding: 0 20px; }
  .pubk-comm-head { padding: 56px 0 52px; }
  .pubk-comm-head-meta { gap: 28px; }
  .pubk-comm-board { padding: 60px 0; }
  .pubk-comm-toolbar { align-items: stretch; flex-direction: column; }
  .pubk-comm-month-nav { justify-content: space-between; }
  .pubk-comm-month-nav h2 { font-size: 24px; }
  .pubk-comm-view-toggle { align-self: flex-start; }
  .pubk-comm-item { gap: 20px; grid-template-columns: 80px minmax(0,1fr); padding: 22px 20px; }
  .pubk-comm-item:hover { padding-left: 20px; }
  .pubk-comm-item-action { grid-column: 1/-1; }
  .pubk-comm-day { font-size: 32px; }
  .pubk-comm-foot { align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (max-width: 420px) {
  .pubk-comm-head-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pubk-comm-month-nav { gap: 10px; }
  .pubk-comm-month-nav h2 { font-size: 21px; text-align: center; }
  .pubk-comm-filters { gap: 6px; }
  .pubk-comm-filter { font-size: 10px; padding: 9px 12px; }
  .pubk-comm-item { grid-template-columns: 64px minmax(0,1fr); padding-left: 14px; padding-right: 14px; }
  .pubk-comm-date { padding-right: 12px; }
  .pubk-comm-meta { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-comm *,
  .pubk-comm *::before,
  .pubk-comm *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
}

/* ---------- 0.51.0: Community Jobs + Calendar shells (Patrick's Claude Design files "Pub K Job Board" + "Pub K Community Calendar" 2026-09-15; build notes data/2026-09-15-091526-round/r7-0510/) ----------
   Both pages keep their boards untouched (.pubk-comm-board — the jobs board = theme shortcodes, the calendar = the page's own JS-driven list); the shell
   around them is rebuilt to the files: navy hero (.pubk-cb-hero; jobs keeps the stats in the file's ruled column) | cream Weekly bar (.pubk-cb-bar) |
   board | cream Weekly sign-up band (.pubk-cb-signup). The in-page Weekly strip above the hero and the navy .pubk-comm-signup section are gone from
   both pages (their .pubk-comm rules removed from the block above); .pubk-comm-head stays for the Post a Job / dashboard pages. Line-heights follow
   the files (1.6 body, buttons inherit) so the sections measure to the design dumps. */
.pubk-comm .pubk-cb-hero { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) var(--navy); color: #fff; padding: 72px 0 76px; position: relative; }
.pubk-comm .pubk-cb-hero-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 56px; }
.pubk-comm .pubk-cb-hero-copy { flex: 1 1 480px; min-width: 0; }
.pubk-comm .pubk-cb-eyebrow { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.6; margin: 0 0 16px; text-transform: uppercase; }
.pubk-comm .pubk-cb-eyebrow-red { color: var(--red); margin-bottom: 8px; }
.pubk-comm .pubk-cb-h1 { color: #fff; font-family: var(--serif); font-size: clamp(34px, 3.2vw, 46px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 720px; text-wrap: pretty; }
.pubk-comm .pubk-cb-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-comm .pubk-cb-lede { color: var(--on-navy-body); font-size: 16px; font-weight: 380; line-height: 1.6; margin: 20px 0 28px; max-width: 620px; }
.pubk-comm .pubk-cb-btns { display: flex; flex-wrap: wrap; gap: 16px; }
.pubk-comm .pubk-cb-btn, .pubk-comm .pubk-cb-btn-ghost, .pubk-comm .pubk-cb-btn-navy { display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.6; padding: 15px 26px; text-align: center; text-decoration: none; text-transform: uppercase; transition: background .2s, color .2s, border-color .2s; white-space: nowrap; }
.pubk-comm .pubk-cb-btn { background: var(--red); color: #fff; }
.pubk-comm .pubk-cb-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-comm .pubk-cb-btn-ghost { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.pubk-comm .pubk-cb-btn-ghost:hover { border-color: #fff; color: #fff; }
.pubk-comm .pubk-cb-btn-navy { background: var(--navy); color: #fff; font-size: 12px; padding: 12px 22px; }
.pubk-comm .pubk-cb-btn-navy:hover { background: var(--navy-mid); color: #fff; }
.pubk-comm .pubk-cb-stats { border-left: 1px solid rgba(255, 255, 255, 0.18); display: flex; flex: 0 1 300px; flex-direction: column; min-width: 0; padding-left: 40px; }
.pubk-comm .pubk-cb-stat { border-bottom: 1px solid rgba(255, 255, 255, 0.12); display: flex; flex-direction: column; padding: 14px 0; }
.pubk-comm .pubk-cb-stat:last-child { border-bottom: 0; }
.pubk-comm .pubk-cb-stat-num { color: #fff; font-family: var(--serif); font-size: 36px; font-weight: 380; line-height: 1.6; }
.pubk-comm .pubk-cb-stat-label { color: var(--on-navy-muted); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.6; text-transform: uppercase; }
.pubk-comm .pubk-cb-bar { background: var(--cream); border-bottom: 1px solid var(--line); padding: 22px 0; }
.pubk-comm .pubk-cb-bar-inner { align-items: center; display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; }
.pubk-comm .pubk-cb-bar-copy { align-items: baseline; display: flex; flex-wrap: wrap; gap: 16px; line-height: 1.6; margin: 0; }
.pubk-comm .pubk-cb-bar-label { color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.pubk-comm .pubk-cb-bar-text { color: var(--slate); font-size: 15px; }
.pubk-comm .pubk-cb-signup { background: var(--cream); border-top: 1px solid var(--line); padding: 40px 0; }
.pubk-comm .pubk-cb-signup-inner { align-items: center; display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; }
.pubk-comm .pubk-cb-signup-copy { max-width: 640px; }
.pubk-comm .pubk-cb-h2 { color: var(--ink); font-family: var(--serif); font-size: 28px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 8px; }
.pubk-comm .pubk-cb-h2 em { font-style: italic; }
.pubk-comm .pubk-cb-signup-text { color: var(--slate); font-size: 14px; line-height: 1.55; margin: 0; }
@media (max-width: 680px) {
  .pubk-comm .pubk-cb-hero { padding: 52px 0 56px; }
  .pubk-comm .pubk-cb-hero-grid { gap: 32px; }
  .pubk-comm .pubk-cb-stats { border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.18); flex: 1 1 100%; flex-direction: row; gap: 16px; padding: 20px 0 0; }
  .pubk-comm .pubk-cb-stat { border-bottom: 0; flex: 1 1 0; padding: 0; }
  .pubk-comm .pubk-cb-stat-num { font-size: 30px; }
  .pubk-comm .pubk-cb-btns > a { flex: 1 1 100%; }
  .pubk-comm .pubk-cb-bar { padding: 20px 0; }
  .pubk-comm .pubk-cb-bar-inner, .pubk-comm .pubk-cb-signup-inner { align-items: stretch; flex-direction: column; gap: 16px; }
  .pubk-comm .pubk-cb-signup { padding: 36px 0 40px; }
}
/* ---------- Team page (/team/) — 0.42.0: Patrick's Claude Design file "Pub K Team" 2026-09-15 (photo banner, seven portrait cards, cream contact band) ---------- */
.pubk-team-hero { border-radius: 0; }
.pubk-team-hero .wp-block-cover__inner-container { width: 100%; }
.pubk-team-hero .wp-block-cover__image-background { object-position: center 22%; }
.pubk-team-hero .wp-block-cover__background {
  background: radial-gradient(600px 380px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%),
    linear-gradient(rgba(11, 37, 69, 0.92), rgba(11, 37, 69, 0.92)) !important;
  opacity: 1 !important;
}
/* Same flat-navy call as the Benchmarking covers: the shared 8% gold screen is dialled down under the .92 scrim. */
.pubk-team-hero.pubk-duotone::after { opacity: 0.03; }
.pubk-team-hero .pubk-team-hero-row { align-items: flex-end; display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; }
.pubk-team-hero .pubk-team-hero-copy { flex: 1 1 520px; max-width: 760px; min-width: 0; }
.pubk-team-hero .pubk-eyebrow { margin-bottom: 16px; }
.pubk-team-hero .pubk-h-hero { font-size: clamp(38px, 3.6vw, 52px) !important; line-height: 1.1; margin: 0 !important; text-wrap: pretty; }
.pubk-team-hero .pubk-h-hero em { color: var(--gold-soft); }
.pubk-team-hero .pubk-hero-lede { color: var(--on-navy-body); font-size: 17px !important; line-height: 1.6; margin: 20px 0 0 !important; max-width: 560px; }
.pubk-team-hero .pubk-hero-lede em { font-style: italic; }
.pubk-team-hero .wp-block-buttons { flex: 0 0 auto; margin: 0; }
.pubk-team-hero .wp-block-button__link { font-size: 13px; padding: 14px 24px; white-space: nowrap; }
.pubk-team-hero .pubk-btn-outline-light .wp-block-button__link:hover { border-color: var(--gold-soft); color: var(--gold-soft); }
/* Grid = the file's auto-fit 250px columns: 4 across at 1216, 3 at 1024, 1 on phones. */
.pubk-team-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.pubk-team-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 3px solid var(--navy);
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 26px;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
/* 0.70.0 (Patrick 2026-09-21): the seven bars rotate gold / red / navy down the grid so the colours carry no meaning (they had clustered 3 gold, 1 red, 3 navy by role). Navy = the base rule above. */
.pubk-team-card--red { border-top-color: var(--red); }
.pubk-team-card--gold { border-top-color: var(--gold); }
.pubk-team-card:hover { box-shadow: 0 20px 40px rgba(11, 37, 69, 0.1); transform: translateY(-4px); }
.pubk-team-photo { height: 120px; margin: 0 0 14px; width: 120px; }
.pubk-team-photo img { border-radius: 50%; display: block; height: 100%; object-fit: cover; width: 100%; }
.pubk-team-card-eyebrow {
  color: var(--red);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  line-height: 1.5;
  margin: 0;
  text-transform: uppercase;
}
.pubk-team-card h2 {
  color: var(--ink);
  font-family: var(--wp--preset--font-family--serif);
  font-size: 24px;
  font-weight: 460;
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin: 0;
}
.pubk-team-card-mail { color: var(--slate); font-size: 14px; overflow-wrap: anywhere; text-decoration: none; }
.pubk-team-card-mail:hover, .pubk-team-card-mail:focus { color: var(--red); }
.pubk-team-contact { border-top: 1px solid var(--line); }
.pubk-team-contact .pubk-eyebrow { margin-bottom: 14px; }
.pubk-team-contact .pubk-h-section { font-size: clamp(30px, 3vw, 40px) !important; line-height: 1.12; margin-bottom: 20px !important; }
.pubk-team-contact-copy { color: var(--slate); font-size: 16px; line-height: 1.6; margin: 0 0 28px !important; max-width: 520px; }
.pubk-team-contact .wp-block-buttons { align-items: center; gap: 16px; }
.pubk-team-contact-card { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--gold); box-sizing: border-box; flex: 0 0 380px !important; max-width: 380px; padding: 32px; }
.pubk-team-contact-card-eyebrow { color: var(--gold-label); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; margin: 0 0 14px !important; text-transform: uppercase; }
.pubk-team-contact-card-copy { color: var(--slate); font-size: 15px; line-height: 1.8; margin: 0 !important; }
.pubk-team-contact-card-copy a { color: var(--navy); font-weight: 600; text-decoration: none; }
.pubk-team-contact-card-copy a:hover { color: var(--red); }
@media (max-width: 781px) { .pubk-team-contact-card { flex-basis: 100% !important; margin-top: 32px; max-width: none; } }
@media (max-width: 720px) {
  .pubk-team-hero { padding-top: 72px !important; padding-bottom: 80px !important; }
  .pubk-team-hero .pubk-team-hero-copy { flex-basis: 100%; }
}

/* ---------- Public Contracting teaser (/monthly-review/) ---------- */
.pubk-magr {
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 380;
  line-height: 1.55;
}
.pubk-magr *,
.pubk-magr *::before,
.pubk-magr *::after { box-sizing: border-box; }
.pubk-magr :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.pubk-magr h1,
.pubk-magr h2,
.pubk-magr h3 { font-family: var(--serif); font-weight: 400; letter-spacing: -.01em; line-height: 1.1; margin: 0; }
.pubk-magr p { margin: 0; }
.pubk-magr-container { margin: 0 auto; max-width: 1180px; padding: 0 32px; }
.pubk-magr-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.pubk-magr-eyebrow.is-light { color: var(--gold-soft); }
.pubk-magr-crumb { align-items: center; color: var(--red); display: inline-flex; font-family: var(--sans); font-size: 11px; font-weight: 700; gap: 10px; letter-spacing: .22em; text-transform: uppercase; }
.pubk-magr-crumb a { align-items: center; color: var(--red); display: inline-flex; min-height: 44px; }
.pubk-magr-crumb a:hover { color: var(--navy); }
.pubk-magr-crumb span { opacity: .5; }
.pubk-magr-hero { background: var(--cream-soft); border-bottom: 1px solid var(--line); padding: 96px 0; }
.pubk-magr-hero-grid { align-items: center; display: grid; gap: 80px; grid-template-columns: .85fr 1.5fr; }
.pubk-magr-cover-wrap { display: flex; justify-content: center; }
.pubk-magr-cover {
  aspect-ratio: 3 / 4.1;
  background: linear-gradient(160deg, rgba(11,37,69,.55) 0%, rgba(6,18,41,.88) 78%), url(assets/img/monthly-review-cover.jpg) center/cover;
  box-shadow: 0 30px 60px rgba(6,18,41,.35);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 26px 24px;
  position: relative;
  transform: rotate(-3.5deg);
  width: 300px;
}
.pubk-magr-mc-title { display: block; font-family: var(--serif); font-size: 40px; font-weight: 400; letter-spacing: -.01em; line-height: 1; }
.pubk-magr-mc-review { color: var(--gold-soft); display: block; font-family: var(--serif); font-size: 38px; font-style: italic; font-weight: 300; line-height: 1.15; }
.pubk-magr-mc-meta { color: #E4E9F1; display: flex; font-size: 10.5px; font-weight: 700; justify-content: space-between; letter-spacing: .2em; margin-top: 18px; text-transform: uppercase; }
.pubk-magr-mc-lines { font-size: 13px; line-height: 1.7; }
.pubk-magr-mc-lines b { display: block; font-size: 14px; }
.pubk-magr-flagrow { align-items: baseline; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.pubk-magr-flag { color: var(--gray); font-family: var(--serif); font-size: 16px; font-style: italic; }
.pubk-magr-hero h1 { color: var(--ink); font-size: clamp(36px, 4.4vw, 58px); font-weight: 380; letter-spacing: -.02em; line-height: 1.08; }
.pubk-magr-hero h1 em { color: var(--navy); font-style: italic; font-weight: 300; }
/* Scoped selector so the margin survives the .pubk-magr p reset above. */
.pubk-magr .pubk-magr-lede { color: var(--ink-soft); font-size: 18px; line-height: 1.6; margin-top: 24px; max-width: 640px; }
.pubk-magr-meta { border-top: 1px solid var(--line); color: var(--gray); display: flex; font-size: 16px; gap: 48px; margin: 28px 0; padding: 22px 0; }
.pubk-magr-meta b { color: var(--ink); font-weight: 700; }
.pubk-magr-link { color: var(--red); font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; transition: color .2s ease; }
.pubk-magr-link:hover { color: var(--navy); }
.pubk-magr-inside { background: var(--paper); padding: 88px 0; }
.pubk-magr-block-head { margin-bottom: 48px; max-width: 760px; }
.pubk-magr-block-head .pubk-magr-eyebrow { display: block; margin-bottom: 16px; }
.pubk-magr-inside h2 { color: var(--ink); font-size: clamp(32px, 4vw, 52px); font-weight: 380; letter-spacing: -.02em; line-height: 1.05; }
.pubk-magr-inside h2 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-magr-grid { display: grid; gap: 24px; grid-template-columns: repeat(4, minmax(0,1fr)); }
.pubk-magr-item { border-top: 3px solid var(--navy); padding-top: 22px; }
.pubk-magr-item:nth-child(2) { border-top-color: var(--red); }
.pubk-magr-item:nth-child(3) { border-top-color: var(--gold); }
.pubk-magr-item:nth-child(4) { border-top-color: var(--navy-mid); }
.pubk-magr-item h3 { color: var(--ink); font-size: 23px; letter-spacing: -.01em; margin-bottom: 10px; }
.pubk-magr-item p { color: var(--gray); font-size: 14.5px; line-height: 1.55; }
.pubk-magr-cta { background: var(--navy); color: #fff; overflow: hidden; padding: 96px 0; position: relative; }
.pubk-magr-cta::before { background: radial-gradient(circle, rgba(194,162,88,.12) 0%, transparent 62%); content: ""; height: 560px; pointer-events: none; position: absolute; right: -120px; top: -140px; width: 560px; }
.pubk-magr-cta .pubk-magr-container { position: relative; z-index: 1; }
.pubk-magr-cta-head { margin-bottom: 48px; max-width: 620px; }
.pubk-magr-cta-head h2 { color: #fff; font-size: clamp(30px, 3.6vw, 46px); font-weight: 380; letter-spacing: -.02em; line-height: 1.06; margin-top: 16px; }
.pubk-magr-cta-head h2 em { color: var(--gold-soft); font-style: italic; font-weight: 300; }
.pubk-magr-cta-head p { color: var(--on-navy-body); font-size: 17px; line-height: 1.6; margin-top: 18px; }
.pubk-magr-cta-grid { display: grid; gap: 24px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.pubk-magr-cta-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-top: 3px solid var(--gold); padding: 40px 38px; }
.pubk-magr-cta-card:nth-child(2) { border-top-color: var(--red); }
.pubk-magr-cta-card h3 { color: #fff; font-size: 26px; font-weight: 380; letter-spacing: -.01em; }
.pubk-magr-cta-card p { color: var(--on-navy-body); font-size: 15px; line-height: 1.6; margin: 14px 0 26px; }
.pubk-magr-btn-primary { background: var(--red); color: #fff; }
.pubk-magr-btn-primary:hover { background: var(--navy); color: #fff; }
.pubk-magr-btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,.4); color: #fff; }
.pubk-magr-btn-ghost:hover { background: #fff; border-color: #fff; color: var(--navy); }
.pubk-magr-btn-arrow::after { content: "→"; font-size: 14px; transition: transform .25s; }
.pubk-magr-btn-arrow:hover::after { transform: translateX(4px); }
@media (max-width: 980px) {
  .pubk-magr-hero-grid { gap: 56px; grid-template-columns: minmax(0,1fr); }
  .pubk-magr-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .pubk-magr-cta-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 600px) {
  .pubk-magr-container { padding: 0 22px; }
  .pubk-magr-flagrow { flex-wrap: wrap; row-gap: 4px; }
  .pubk-magr-hero, .pubk-magr-cta { padding: 60px 0; }
  .pubk-magr-inside { padding: 60px 0; }
  .pubk-magr-grid { grid-template-columns: minmax(0,1fr); }
  .pubk-magr-meta { flex-direction: column; gap: 10px; }
}

/* ---------- Library topic pages ---------- */
.pubk-lib-page {
  --pubk-lib-accent: var(--mark-protests); /* 0.65.0: the page accent = the Brief mark's tile colour (Patrick 2026-09-18: "On this page" must match the logo) */
  color: var(--ink-soft);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
}
.pubk-lib-cyber-privacy { --pubk-lib-accent: var(--mark-cyber); }
.pubk-lib-compliance-enforcement { --pubk-lib-accent: var(--mark-compliance); }
.pubk-lib-transforming-procurement { --pubk-lib-accent: var(--mark-transforming); }
.pubk-lib-page,
.pubk-lib-page *,
.pubk-lib-page *::before,
.pubk-lib-page *::after { box-sizing: border-box; }
.pubk-lib-page h1,
.pubk-lib-page h2,
.pubk-lib-page h3,
.pubk-lib-page p { margin: 0; }
.pubk-lib-page a { color: inherit; text-decoration: none; }
.pubk-lib-flow,
.pubk-lib-flow > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
.pubk-lib-inner { margin: 0 auto !important; max-width: 1280px; padding: 0 32px; width: 100%; }
.pubk-lib-hero { background: var(--paper); overflow: hidden; padding: 72px 0 64px; position: relative; }
.pubk-lib-hero::before { background: var(--pubk-lib-accent); content: ""; inset: 0; opacity: .09; position: absolute; }
.pubk-lib-hero::after { background: var(--pubk-lib-accent); bottom: 0; content: ""; height: 4px; left: 0; position: absolute; width: min(34vw,520px); }
.pubk-lib-hero-grid { align-items: center; display: grid; gap: 64px; grid-template-columns: minmax(0,1fr) minmax(240px,360px); position: relative; }
.pubk-lib-hero-copy { min-width: 0; }
.pubk-lib-crumb { align-items: center; color: var(--gray); display: flex; flex-wrap: wrap; font-size: 12px; gap: 8px; margin-bottom: 30px; }
.pubk-lib-crumb a { align-items: center; color: var(--navy); display: inline-flex; font-weight: 700; min-height: 44px; min-width: 44px; }
.pubk-lib-crumb a:hover { color: var(--pubk-lib-accent); }
.pubk-lib-eyebrow,
.pubk-lib-jump-label { color: var(--pubk-lib-accent); display: block; font-size: 11px; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; }
.pubk-lib-hero h1 { color: var(--ink); font-family: var(--serif); font-size: clamp(44px,6vw,76px); font-weight: 300; letter-spacing: -.035em; line-height: .98; margin-top: 12px; max-width: 850px; }
.pubk-lib-hero p { color: var(--ink-soft); font-size: clamp(17px,2vw,20px); font-weight: 350; line-height: 1.6; margin-top: 24px; max-width: 650px; }
.pubk-lib-hero-logo { background: rgba(255,255,255,.72); border: 1px solid rgba(11,37,69,.12); padding: 28px; }
.pubk-lib-hero-logo img,
.pubk-lib-topic-logo img { display: block; height: auto; max-width: 100%; width: 100%; }
.pubk-lib-jump { background: var(--navy); color: #fff; }
.pubk-lib-jump .pubk-lib-inner { align-items: center; display: flex; gap: 28px; min-height: 84px; }
.pubk-lib-jump-label { color: var(--gold-soft); flex: 0 0 auto; }
.pubk-lib-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 0; }
.pubk-lib-chip { align-items: center; border: 1px solid rgba(255,255,255,.22); color: #fff !important; display: inline-flex; font-size: 12px; font-weight: 650; min-height: 44px; padding: 9px 15px; transition: background .2s,border-color .2s; }
.pubk-lib-chip:hover,
.pubk-lib-chip:focus-visible { background: var(--pubk-lib-accent); border-color: var(--pubk-lib-accent); }
.pubk-lib-body { background: var(--cream-soft); padding: 24px 0 96px; }
.pubk-lib-layout { align-items: start; display: grid; gap: 64px; grid-template-columns: minmax(0,1fr) 320px; }
.pubk-lib-main { min-width: 0; }
.pubk-lib-section { scroll-margin-top: 24px; }
.pubk-lib-section + .pubk-lib-section { margin-top: 72px; }
.pubk-lib-section-head { align-items: baseline; border-bottom: 3px solid var(--pubk-lib-accent); display: flex; gap: 14px; padding-bottom: 14px; }
.pubk-lib-section h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px,3.4vw,42px); font-weight: 380; letter-spacing: -.02em; line-height: 1.05; }
.pubk-lib-articles { background: var(--paper); border: 1px solid var(--line); border-top: 0; }
.pubk-lib-article + .pubk-lib-article { border-top: 1px solid var(--line); }
.pubk-lib-article a { display: grid; gap: 22px; grid-template-columns: minmax(0,1fr) auto; min-height: 112px; padding: 25px 28px; transition: background .2s,padding .2s; }
.pubk-lib-article a:hover,
.pubk-lib-article a:focus-visible { background: color-mix(in srgb,var(--pubk-lib-accent) 7%,white); padding-left: 34px; }
.pubk-lib-article h3 { color: var(--ink); font-family: var(--serif); font-size: 21px; font-weight: 420; letter-spacing: -.01em; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.pubk-lib-article a:hover h3 { color: var(--pubk-lib-accent); }
.pubk-lib-article time { color: var(--gray); font-size: 11px; font-weight: 700; letter-spacing: .08em; padding-top: 5px; text-transform: uppercase; white-space: nowrap; }
.pubk-lib-side { display: flex; flex-direction: column; gap: 32px; position: sticky; top: 24px; }
.pubk-lib-page .side-block { background: var(--cream-soft); border: 1px solid var(--line); }
.pubk-lib-page .side-block-head { background: var(--navy); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .18em; padding: 13px 18px; text-transform: uppercase; }
.pubk-lib-page .side-subtopics .side-block-head { background: var(--pubk-lib-accent); }
.pubk-lib-page .side-nav { list-style: none; margin: 0; padding: 0; }
.pubk-lib-page .side-nav li { border-top: 1px solid var(--line); }
.pubk-lib-page .side-nav li:first-child { border-top: 0; }
.pubk-lib-page .side-nav a { align-items: center; background: #fff; color: var(--navy); display: flex; font-size: 13.5px; font-weight: 600; justify-content: space-between; letter-spacing: .02em; padding: 13px 18px; }
.pubk-lib-page .side-nav a::after { color: var(--gold); content: "→"; opacity: 0; transform: translateX(-6px); transition: opacity .18s, transform .18s; }
.pubk-lib-page .side-nav a:hover { color: var(--red); padding-left: 24px; }
.pubk-lib-page .side-nav a:hover::after { opacity: 1; transform: translateX(0); }
.pubk-lib-page a.pubk-lib-readmore { align-items: center; color: var(--pubk-lib-accent); display: inline-flex; font-size: 11px; font-weight: 700; gap: 8px; letter-spacing: .12em; margin-top: 16px; min-height: 44px; text-transform: uppercase; }
.pubk-lib-page a.pubk-lib-readmore:hover { color: var(--ink); }
.pubk-lib-page a.pubk-lib-readmore:hover span { transform: translateX(4px); }
.pubk-lib-page a.pubk-lib-readmore span { transition: transform .18s; }
.pubk-lib-ad-lead { margin: 0 0 32px; }
.pubk-lib-ad-inline { margin: 72px 0 0; }
.pubk-lib-ad-inline + .pubk-lib-section { margin-top: 72px; }
.pubk-lib-page .ad-slot > div { max-width: 100%; }
.pubk-lib-page .ad-slot { align-items: center; background: #F4F1E8; border: 1px solid var(--line); color: var(--gray); display: flex; font-size: 11px; font-weight: 700; justify-content: center; letter-spacing: .18em; text-align: center; text-transform: uppercase; }
.pubk-lib-page .ad-leaderboard { height: 120px; }
.pubk-lib-page .ad-inline { height: 200px; }
.pubk-lib-page .side-ad { flex-direction: column; gap: 6px; height: 250px; margin: 0 auto; width: 300px; }
.pubk-lib-screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.pubk-lib-explore { background: var(--paper); border-top: 1px solid var(--line); padding: 72px 0 84px; }
.pubk-lib-explore-head { align-items: end; display: flex; justify-content: space-between; margin-bottom: 28px; }
.pubk-lib-explore h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px,3.5vw,44px); font-weight: 380; }
.pubk-lib-explore-grid { display: grid; gap: 18px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.pubk-lib-topic-card { border: 1px solid var(--line); border-top: 4px solid var(--pubk-lib-accent); display: grid; gap: 16px; grid-template-columns: minmax(0,1fr) auto; min-width: 0; padding: 24px; transition: background .2s,transform .2s; }
.pubk-lib-topic-card:hover { background: color-mix(in srgb,var(--pubk-lib-accent) 6%,white); transform: translateY(-3px); }
.pubk-lib-topic-logo { border-bottom: 1px solid var(--line); grid-column: 1/-1; min-height: 76px; padding-bottom: 18px; }
.pubk-lib-topic-logo img { max-height: 58px; object-fit: contain; object-position: left center; }
.pubk-lib-topic-card > span { color: var(--ink); font-family: var(--serif); font-size: 19px; line-height: 1.2; overflow-wrap: anywhere; }
.pubk-lib-topic-card > b { color: var(--pubk-lib-accent); }
@media (max-width: 980px) {
  .pubk-lib-hero-grid { gap: 40px; grid-template-columns: minmax(0,1fr) 280px; }
  .pubk-lib-layout { grid-template-columns: minmax(0,1fr); }
  .pubk-lib-side { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); position: static; }
}
@media (max-width: 700px) {
  .pubk-lib-inner { padding: 0 20px; }
  .pubk-lib-hero { padding: 52px 0 48px; }
  .pubk-lib-hero-grid { grid-template-columns: minmax(0,1fr); }
  .pubk-lib-hero-logo { max-width: 320px; padding: 20px; }
  .pubk-lib-jump .pubk-lib-inner { align-items: flex-start; flex-direction: column; gap: 4px; padding-bottom: 16px; padding-top: 18px; }
  .pubk-lib-body { padding: 20px 0 64px; }
  .pubk-lib-section + .pubk-lib-section { margin-top: 52px; }
  .pubk-lib-article a { gap: 8px; grid-template-columns: minmax(0,1fr); padding: 22px 20px; }
  .pubk-lib-article a:hover,
  .pubk-lib-article a:focus-visible { padding-left: 20px; }
  .pubk-lib-article time { white-space: normal; }
  .pubk-lib-side { display: flex; }
  .pubk-lib-explore { padding: 56px 0 64px; }
  .pubk-lib-explore-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .pubk-lib-explore-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 390px) {
  .pubk-lib-inner { padding: 0 16px; }
  .pubk-lib-chips { width: 100%; }
  .pubk-lib-chip { flex: 1 1 calc(50% - 8px); justify-content: center; min-width: 0; text-align: center; }
  .pubk-lib-topic-card { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-lib-page *,
  .pubk-lib-page *::before,
  .pubk-lib-page *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* ---------- Article pages (member + visitor previews) ---------- */
.pubk-news .state-note { background: var(--navy); border-bottom: 3px solid var(--gold); padding: 10px 0; }
.pubk-news .state-note-inner { align-items: center; color: var(--on-navy-body); display: flex; flex-wrap: wrap; font-size: 12.5px; gap: 12px; justify-content: center; text-align: center; }
.pubk-news .state-note-inner strong { color: #fff; }
.pubk-news .state-note-label { border: 1px solid var(--gold-soft); color: var(--gold-soft); font-size: 9.5px; font-weight: 700; letter-spacing: .16em; padding: 3px 9px; text-transform: uppercase; }
.pubk-news .state-note a { color: var(--gold-soft); font-weight: 700; }
.pubk-news .state-note a:hover { color: #fff; }
.pubk-news .art-crumbs { align-items: center; color: var(--gray); display: flex; font-size: 12px; font-weight: 600; gap: 10px; letter-spacing: .04em; overflow: hidden; padding-top: 26px; white-space: nowrap; }
.pubk-news .art-crumbs a { color: var(--navy); }
.pubk-news .art-crumbs a:hover { color: var(--red); }
.pubk-news .art-crumb-sep { color: var(--gray-light); }
.pubk-news .art-crumb-here { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pubk-news .art-wrap { padding-top: 30px; }
.pubk-news .art { max-width: 760px; }
.pubk-news .art-kicker { align-items: center; color: var(--red); display: flex; flex-wrap: wrap; font-size: 11px; font-weight: 700; gap: 10px; letter-spacing: .18em; text-transform: uppercase; }
.pubk-news .art-kicker .art-topic { color: var(--red); }
.pubk-news .art-kicker .art-topic:hover { color: var(--red-deep); }
.pubk-news .art-kicker-sep { color: var(--gray-light); }
.pubk-news .art-kicker span:not(.art-kicker-sep) { color: var(--gray); }
.pubk-news .art-headline { color: var(--ink); font-family: var(--serif); font-size: clamp(30px,4vw,44px); font-weight: 400; letter-spacing: -.01em; line-height: 1.12; margin: 14px 0 0; }
.pubk-news .art-byline { align-items: center; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 14px; margin: 24px 0 26px; padding: 14px 0; }
.pubk-news .art-avatar { align-items: center; background: linear-gradient(135deg,var(--navy),var(--navy-mid)); border-radius: 50%; color: var(--gold-soft); display: flex; flex-shrink: 0; font-family: var(--serif); font-size: 15px; font-style: italic; height: 44px; justify-content: center; width: 44px; }
.pubk-news .art-byline-body { display: flex; flex-direction: column; gap: 2px; }
.pubk-news .art-author { color: var(--ink); font-size: 13.5px; font-weight: 600; }
.pubk-news .art-date { color: var(--gray); font-size: 12px; }
.pubk-news .art-access-pill { border: 1px solid rgba(194,162,88,.4); color: var(--gold-label); font-size: 9.5px; font-weight: 700; letter-spacing: .14em; margin-left: auto; padding: 4px 10px; text-transform: uppercase; white-space: nowrap; }
.pubk-news .art-locked-pill { border: 1px solid var(--line); color: var(--gray); font-size: 9.5px; font-weight: 700; letter-spacing: .14em; margin-left: auto; padding: 4px 10px; text-transform: uppercase; white-space: nowrap; }
.pubk-news .art-hero { aspect-ratio: 16/9; margin-bottom: 28px; width: 100%; }
.pubk-news .art-body { color: var(--ink-soft); font-family: var(--serif); font-size: 17.5px; font-weight: 400; line-height: 1.72; }
.pubk-news .art-body p { margin: 0 0 22px; }
.pubk-news .art-lede { color: var(--ink); font-size: 20px; line-height: 1.6; }
.pubk-news .art-case { background: var(--cream-soft); border: 1px solid var(--line); border-left: 4px solid var(--gold); display: flex; flex-direction: column; gap: 6px; margin: 0 0 26px; padding: 18px 22px; }
.pubk-news .art-case-k { color: var(--red); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pubk-news .art-case strong { color: var(--ink); font-size: 16.5px; font-weight: 600; line-height: 1.45; }
.pubk-news .art-points { list-style: none; margin: 0 0 26px; padding: 0; }
.pubk-news .art-points li { border-top: 1px solid var(--line); padding: 18px 0; }
.pubk-news .art-points li:first-child { border-top: 0; padding-top: 0; }
.pubk-news .art-points li strong { color: var(--navy); font-weight: 600; }
.pubk-news .art-counsel { border-top: 1px solid var(--line); color: var(--gray); font-family: var(--sans); font-size: 13.5px; line-height: 1.6; margin: 0 0 26px; padding-top: 20px; }
.pubk-news .art-counsel-k { color: var(--gray); display: block; font-size: 10px; font-weight: 700; letter-spacing: .18em; margin-bottom: 8px; text-transform: uppercase; }
.pubk-news a.art-doc { align-items: center; background: var(--navy); color: #fff; display: flex; gap: 18px; margin: 0 0 28px; padding: 20px 24px; transition: background .2s; }
.pubk-news a.art-doc:hover { background: var(--navy-mid); color: #fff; }
.pubk-news .art-doc-icon { border: 1px solid var(--gold-soft); color: var(--gold-soft); flex-shrink: 0; font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .14em; padding: 9px 11px; }
.pubk-news .art-doc-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pubk-news .art-doc-body strong { color: #fff; font-family: var(--serif); font-size: 17px; font-weight: 420; line-height: 1.3; }
.pubk-news .art-doc-body span { color: var(--on-navy-muted); font-family: var(--sans); font-size: 12px; }
.pubk-news .art-doc-arrow { color: var(--gold-soft); flex-shrink: 0; font-size: 18px; margin-left: auto; }
.pubk-news .art-tags { align-items: center; display: flex; flex-wrap: wrap; font-family: var(--sans); gap: 8px; }
.pubk-news .art-tags-k { color: var(--gray); font-size: 10px; font-weight: 700; letter-spacing: .18em; margin-right: 4px; text-transform: uppercase; }
.pubk-news .art-tag { background: #fff; border: 1px solid var(--line); color: var(--ink-soft); font-size: 10px; font-weight: 600; letter-spacing: .08em; padding: 5px 10px; text-transform: uppercase; }
.pubk-news .art-more { margin-top: 44px; max-width: 760px; }
.pubk-news .art-more-title { font-size: clamp(24px,2.6vw,32px); }
.pubk-news .art-locked-wrap { padding-bottom: 6px; position: relative; }
.pubk-news .art-ghost { display: flex; filter: blur(3px); flex-direction: column; gap: 12px; opacity: .5; padding: 14px 0; user-select: none; }
.pubk-news .art-ghost .ghost-bar { height: 14px; }
.pubk-news .art-paywall { margin-bottom: 28px; margin-top: 10px; }
.pubk-news .art-weekly { border-top: 1px solid var(--line); }
/* 0.9.16: brief identity card pinned top-right of article pages (Patrick 08-17) */
.pubk-news a.side-brief { align-items: center; background: var(--cream-soft); border: 1px solid var(--line); border-top: 4px solid var(--navy); display: flex; flex-direction: column; gap: 12px; padding: 20px 18px 18px; text-align: center; transition: border-color .2s,box-shadow .2s; }
.pubk-news a.side-brief.side-brief--protests { border-top-color: var(--brief-protests); }
.pubk-news a.side-brief.side-brief--cyber { border-top-color: var(--brief-cyber); }
.pubk-news a.side-brief.side-brief--compliance { border-top-color: var(--brief-compliance); }
.pubk-news a.side-brief.side-brief--transforming { border-top-color: var(--brief-transforming); }
.pubk-news a.side-brief:hover { box-shadow: 0 12px 28px rgba(11,37,69,.1); }
.pubk-news .side-brief-k { color: var(--gray); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pubk-news .side-brief img { display: block; height: auto; max-width: 220px; width: 100%; }
.pubk-news .side-brief-link { align-items: center; color: var(--red); display: inline-flex; font-size: 11px; font-weight: 700; gap: 8px; letter-spacing: .12em; text-transform: uppercase; }
.pubk-news a.side-brief:hover .side-brief-link { color: var(--red-deep); }
@media (max-width: 680px) {
  .pubk-news .art-byline { align-items: flex-start; flex-direction: column; gap: 10px; }
  .pubk-news .art-access-pill,
  .pubk-news .art-locked-pill { margin-left: 0; }
  .pubk-news .art-crumbs { font-size: 11px; }
  .pubk-news a.art-doc { align-items: flex-start; flex-direction: column; gap: 12px; }
  .pubk-news .art-doc-arrow { margin-left: 0; }
}

/* ---------- Article topic accents + next nav + subtopics (Patrick 08-17 batch 2) ---------- */
.pubk-article-page { --pubk-art-accent: var(--brief-protests); }
.pubk-news.pubk-article-page .art-kicker .art-topic { color: var(--pubk-art-accent); }
.pubk-news.pubk-article-page .art-kicker .art-topic:hover { color: var(--navy); }
.pubk-news.pubk-article-page .art-hero { border-top: 3px solid var(--pubk-art-accent); }
.pubk-news.pubk-article-page .art-case { background: color-mix(in srgb,var(--pubk-art-accent) 8%,white); border-left-color: var(--pubk-art-accent); }
.pubk-news.pubk-article-page .art-case-k { color: var(--pubk-art-accent); }
.pubk-news.pubk-article-page .art-tag { background: color-mix(in srgb,var(--pubk-art-accent) 7%,white); border-color: color-mix(in srgb,var(--pubk-art-accent) 30%,white); color: var(--navy); }
.pubk-news .art-pagenav { margin-top: 34px; }
.pubk-news a.art-next { align-items: center; background: var(--paper); border: 1px solid var(--line); border-left: 4px solid var(--pubk-art-accent); display: flex; gap: 18px; padding: 20px 22px; transition: background .2s,box-shadow .2s; }
.pubk-news a.art-next:hover { background: color-mix(in srgb,var(--pubk-art-accent) 6%,white); box-shadow: 0 10px 24px rgba(11,37,69,.08); }
.pubk-news .art-next-k { color: var(--pubk-art-accent); flex: 0 0 auto; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pubk-news .art-next-t { color: var(--ink); font-family: var(--serif); font-size: 17.5px; line-height: 1.35; min-width: 0; }
.pubk-news .art-next-arrow { color: var(--pubk-art-accent); flex: 0 0 auto; font-size: 18px; margin-left: auto; transition: transform .2s; }
.pubk-news a.art-next:hover .art-next-arrow { transform: translateX(4px); }
.pubk-news .side-subtopics .side-block-head { background: var(--pubk-art-accent); }
@media (max-width: 700px) {
  .pubk-news a.art-next { flex-wrap: wrap; gap: 10px; }
  .pubk-news .art-next-arrow { margin-left: 0; }
}

/* --- News: brief logotypes beside section heads (0.9.23, Patrick 08-18: half size, left of the header, uniform height) --- */
.pubk-news .sec-head--brief { align-items: center; }
.pubk-news .sec-head--brief .sec-head-left { margin-right: auto; }
.pubk-news .sec-logo { flex: 0 0 auto; line-height: 0; }
.pubk-news .sec-logo img { display: block; height: 68px; width: auto; }
@media (max-width: 680px) {
  .pubk-news .sec-head--brief { align-items: center; column-gap: 12px; display: grid; grid-template-columns: auto minmax(0,1fr); row-gap: 10px; }
  .pubk-news .sec-head--brief .sec-readmore { grid-column: 1 / -1; }
  .pubk-news .sec-logo img { height: 44px; }
}

/* --- Article: free-sample state (0.9.25, Patrick 08-21: free teaser articles sell the brief) --- */
.pubk-news .art-free-bar { align-items: center; background: color-mix(in srgb,var(--pubk-art-accent) 7%,white); border: 1px solid color-mix(in srgb,var(--pubk-art-accent) 30%,white); border-left: 4px solid var(--pubk-art-accent); display: flex; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 24px; padding: 12px 18px; }
.pubk-news .art-free-bar-k { color: var(--pubk-art-accent); flex: 0 0 auto; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.pubk-news .art-free-bar-text { color: var(--ink); font-size: 13.5px; line-height: 1.45; min-width: 0; }
.pubk-news a.art-free-bar-link { color: var(--pubk-art-accent); flex: 0 0 auto; font-size: 12px; font-weight: 700; letter-spacing: .06em; margin-left: auto; white-space: nowrap; }
.pubk-news a.art-free-bar-link:hover { color: var(--navy); }
.pubk-news .art-access-pill--free { border-color: color-mix(in srgb,var(--pubk-art-accent) 40%,white); color: var(--pubk-art-accent); }
@media (max-width: 700px) {
  .pubk-news a.art-free-bar-link { margin-left: 0; }
}

/* --- 0.10.0 dynamic articles + archives ------------------------------- */
/* Real post content: classic-editor prose inside .art-body. */
.pubk-news .art-body ul { list-style: none; margin: 0 0 26px; padding: 0; }
.pubk-news .art-body ul li { border-top: 1px solid var(--line); padding: 18px 0; }
.pubk-news .art-body ul li:first-child { border-top: 0; padding-top: 0; }
.pubk-news .art-body ul li strong { color: var(--navy); font-weight: 600; }
.pubk-news .art-body ol { margin: 0 0 26px; padding-left: 22px; }
.pubk-news .art-body ol li { margin-bottom: 12px; }
/* Prose links only — the paywall/free-bar button blocks live inside .art-body and keep their own styling. */
.pubk-news .art-body a:not(.wp-block-button__link) { color: var(--navy); text-decoration: underline; text-decoration-color: var(--gold-soft); text-underline-offset: 3px; }
.pubk-news .art-body a:not(.wp-block-button__link):hover { color: var(--red); text-decoration-color: var(--red); }
.pubk-news .art-body h2, .pubk-news .art-body h3, .pubk-news .art-body h4 { color: var(--navy); font-family: var(--serif); line-height: 1.3; margin: 34px 0 14px; }
.pubk-news .art-body h2 { font-size: 26px; }
.pubk-news .art-body h3 { font-size: 22px; }
.pubk-news .art-body h4 { font-size: 19px; }
.pubk-news .art-body blockquote { border-left: 3px solid var(--gold-soft); color: var(--ink); font-style: italic; margin: 0 0 22px; padding: 4px 0 4px 20px; }
.pubk-news .art-hero-img { margin: 0 0 28px; }
.pubk-news .art-hero-img img { display: block; height: auto; max-height: 520px; object-fit: cover; width: 100%; }
/* Library sections with no posts yet (partial archive). */
.pubk-lib-page .pubk-lib-empty { border-top: 1px solid var(--line); color: var(--gray); font-family: var(--sans); font-size: 14px; font-style: italic; margin: 0; padding: 18px 0 4px; }
/* Category archive pagination. */
.pubk-lib-page .pubk-lib-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.pubk-lib-page .pubk-lib-pagination .page-numbers { border: 1px solid var(--line); color: var(--navy); display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: .04em; padding: 9px 14px; text-decoration: none; }
.pubk-lib-page .pubk-lib-pagination a.page-numbers:hover { border-color: var(--navy); color: var(--red); }
.pubk-lib-page .pubk-lib-pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: #fff; }
.pubk-lib-page .pubk-lib-pagination .page-numbers.dots { border: 0; }

/* ============================================================
   0.11.0 — Jobs board machinery (WP Job Manager, theme-rendered)
   ============================================================ */
/* Board: dynamic bits */
.pubk-comm-jobs .pubk-comm-item-content :is(h3, h4) a { color: inherit; text-decoration: none; }
.pubk-comm-jobs .pubk-comm-item-content :is(h3, h4) a:hover { color: var(--red); }
.pubk-comm-jobs .pubk-comm-empty { border: 1px solid var(--line); color: var(--gray); font-size: 15px; line-height: 1.6; margin: 0; padding: 28px 32px; }
.pubk-comm-jobs .pubk-comm-filter { cursor: pointer; }
.pubk-comm-access.is-filled { border-color: var(--red); color: var(--red); }

/* Job detail page */
.pubk-jobd-crumb { align-items: center; display: flex; font-size: 12px; font-weight: 600; gap: 10px; letter-spacing: .06em; margin: 0 0 18px; text-transform: uppercase; }
.pubk-jobd-crumb a { color: var(--gray); text-decoration: none; }
.pubk-jobd-crumb a:hover { color: var(--red); }
.pubk-jobd-crumb span { color: var(--line-dark, #C9C2B2); }
.pubk-jobd-chips { margin: 0 0 16px; }
.pubk-jobd-head h1 { margin-bottom: 10px; }
.pubk-jobd-org { color: var(--gray); font-size: 16px; font-weight: 600; margin: 0; }
.pubk-jobd-filled-note { background: rgba(194,162,88,.10); border-left: 3px solid var(--gold); color: var(--ink-soft); font-size: 14.5px; line-height: 1.6; margin: 0 0 28px; padding: 14px 18px; }
.pubk-jobd-filled-note a { color: var(--navy); font-weight: 600; }
.pubk-jobd-desc { color: var(--ink-soft); font-family: var(--serif); font-size: 17.5px; line-height: 1.72; }
.pubk-jobd-desc p { margin: 0 0 1.1em; }
.pubk-jobd-apply { border-top: 2px solid var(--navy); margin-top: 36px; padding-top: 24px; }
.pubk-jobd-apply h2 { font-family: var(--serif); font-size: 24px; font-weight: 420; margin: 0 0 8px; }
.pubk-jobd-apply p { color: var(--gray); font-size: 14.5px; margin: 0 0 18px; }
.pubk-jobd-contact { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
/* Plain (white) side cards reuse the featured card's meta rows, which are styled for navy — re-ink them. */
.pubk-jobd .pubk-comm-side-card:not(.is-feature) .pubk-comm-side-meta-row { color: var(--gray); }
.pubk-jobd .pubk-comm-side-card:not(.is-feature) .pubk-comm-side-meta-row b { color: var(--ink); }
/* Crumb sits on the navy head band. */
.pubk-jobd-head .pubk-jobd-crumb a, .pubk-jobform .pubk-jobd-crumb a { color: rgba(255,255,255,.72); }
.pubk-jobd-head .pubk-jobd-crumb a:hover, .pubk-jobform .pubk-jobd-crumb a:hover { color: #fff; }
.pubk-jobd-head .pubk-jobd-crumb span, .pubk-jobform .pubk-jobd-crumb span { color: rgba(255,255,255,.4); }
.pubk-jobd-contact a { color: var(--navy); text-decoration: none; }
.pubk-jobd-contact a:hover { color: var(--red); }
.pubk-jobd-main { min-width: 0; }

/* Submission + dashboard pages (WP Job Manager forms, house style) */
.pubk-jobform-body { padding: 56px 0 88px; }
.pubk-jobform-card { background: var(--paper); border: 1px solid var(--line); box-shadow: 0 10px 30px rgba(11,37,69,.06); margin: 0 auto; max-width: 860px; padding: 44px 48px; }
.pubk-jobform-aside { color: var(--gray); font-size: 14px; margin: 22px auto 0; max-width: 860px; text-align: center; }
.pubk-jobform-aside a { color: var(--navy); font-weight: 600; }
.pubk-jobform-aside a:hover { color: var(--red); }
.pubk-jobform fieldset { border: 0; display: block; margin: 0 0 22px; padding: 0; }
.pubk-jobform .job-manager-form label,
.pubk-jobform .fieldset-header label { color: var(--navy); display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; margin: 0 0 8px; text-transform: uppercase; }
.pubk-jobform .job-manager-form .field small.description { color: var(--gray); display: block; font-size: 12.5px; margin-top: 6px; }
.pubk-jobform .input-text,
.pubk-jobform input[type="text"],
.pubk-jobform input[type="email"],
.pubk-jobform input[type="url"],
.pubk-jobform textarea,
.pubk-jobform select { background: #fff; border: 1px solid var(--line); border-radius: 0; box-sizing: border-box; color: var(--ink); font-family: var(--sans); font-size: 15px; padding: 12px 14px; width: 100%; }
.pubk-jobform .input-text:focus,
.pubk-jobform input:focus,
.pubk-jobform textarea:focus,
.pubk-jobform select:focus { border-color: var(--navy); box-shadow: inset 0 0 0 1px var(--navy); outline: 0; }
.pubk-jobform .job-manager-form .submit-attachment,
.pubk-jobform .job-manager-form input[type="submit"],
.pubk-jobform .job-manager-form .button {
  background: var(--red); border: 0; border-radius: 0; color: #fff; cursor: pointer; display: inline-block;
  font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; padding: 15px 26px; text-transform: uppercase; transition: background .2s;
}
.pubk-jobform .job-manager-form input[type="submit"]:hover,
.pubk-jobform .job-manager-form .button:hover { background: var(--red-deep); color: #fff; }
.pubk-jobform .job-manager-message,
.pubk-jobform .job-manager-error,
.pubk-jobform .job-manager-info { border-left: 3px solid var(--navy); font-size: 14.5px; line-height: 1.6; margin: 0 0 22px; padding: 14px 18px; }
.pubk-jobform .job-manager-error { border-left-color: var(--red); }
.pubk-jobform table.job-manager-jobs { border-collapse: collapse; width: 100%; }
.pubk-jobform table.job-manager-jobs th { border-bottom: 2px solid var(--navy); color: var(--navy); font-size: 11px; font-weight: 700; letter-spacing: .14em; padding: 10px 12px; text-align: left; text-transform: uppercase; }
.pubk-jobform table.job-manager-jobs td { border-bottom: 1px solid var(--line); font-size: 14.5px; padding: 14px 12px; }
.pubk-jobform table.job-manager-jobs td a { color: var(--navy); font-weight: 600; text-decoration: none; }
.pubk-jobform table.job-manager-jobs td a:hover { color: var(--red); }
.pubk-jobform-gate { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.pubk-jobform-path { border: 1px solid var(--line); display: flex; flex-direction: column; padding: 28px 26px; }
.pubk-jobform-path h2 { color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 600; line-height: 1.25; margin: 0 0 10px; }
.pubk-jobform-path p { color: var(--ink); flex-grow: 1; font-size: 14.5px; line-height: 1.6; margin: 0 0 20px; }
.pubk-jobform-path .pubk-comm-btn { align-self: flex-start; margin-top: auto; }
.pubk-jobform-path a.pubk-comm-btn.is-primary:hover { background: var(--red-deep); color: #fff; }
@media (max-width: 680px) {
  .pubk-jobform-card { padding: 28px 20px; }
  .pubk-jobform-gate { grid-template-columns: 1fr; }
}

/* ---- 0.12.0: state-aware library demo (meeting build) ---- */
/* Active primary-category chip in the blue topic-libraries bar. */
.pubk-lib-chip.is-active { background: var(--pubk-lib-accent); border-color: var(--pubk-lib-accent); }
/* Weekly signup banner dropped into library/archive flows (logged-out only). */
.pubk-weekly-banner .weekly-strip { border-top: 1px solid var(--line); }

/* ---- 0.13.0: dynamic community calendar (The Events Calendar data) ---- */
.pubk-comm-time { font-size: 12px; }
.pubk-comm-time::before { color: var(--gray-light); content: "\00b7"; margin-right: 8px; }
.pubk-comm-calendar .pubk-comm-empty { border: 1px solid var(--line); color: var(--gray); font-size: 15px; line-height: 1.6; margin: 0; padding: 28px 32px; }
.pubk-comm-calendar .pubk-comm-filter { cursor: pointer; }
.pubk-comm-calendar .pubk-comm-filter-empty { margin-top: 8px; }

/* ---- Search results + 404 (0.17.0) ---- */
.pubk-search-form { display: flex; gap: 10px; margin-top: 30px; max-width: 560px; }
.pubk-search-form input[type="search"] { appearance: none; background: #fff; border: 1px solid var(--line); border-radius: 0; color: var(--ink); flex: 1; font-family: var(--sans); font-size: 15px; min-height: 48px; min-width: 0; padding: 12px 16px; }
.pubk-search-form input[type="search"]:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
.pubk-search-form button { align-items: center; background: var(--red); border: 0; border-radius: 0; color: #fff; cursor: pointer; display: inline-flex; flex-shrink: 0; font-family: var(--sans); font-size: 12px; font-weight: 700; justify-content: center; letter-spacing: .14em; min-height: 48px; padding: 14px 26px; text-transform: uppercase; transition: background-color .25s, color .25s; }
.pubk-search-form button:hover { background: var(--red-deep); }
.pubk-search-form button:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
.pubk-lib-hero .pubk-search-form + p { margin-top: 18px; }
.pubk-404-page .pubk-lib-body { padding-bottom: 96px; }
.pubk-404-links { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.pubk-404-links a { align-items: center; background: var(--paper); border: 1px solid var(--line); color: var(--ink); display: flex; font-family: var(--sans); font-size: 14px; font-weight: 600; justify-content: space-between; letter-spacing: .02em; min-height: 60px; padding: 16px 22px; transition: border-color .2s; }
.pubk-404-links a::after { color: var(--red); content: "\2192"; }
.pubk-404-links a:hover,
.pubk-404-links a:focus-visible { border-color: var(--navy); }
@media (max-width: 860px) {
  .pubk-404-links { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .pubk-404-links { grid-template-columns: 1fr; }
  .pubk-search-form { flex-direction: column; }
}

/* ============================================================
   Pass 2 — template cleanup (consolidated audit C-02..C-11)
   ============================================================ */

/* ---------- C-05: deliberate tablet nav breakpoint ---------- */
/* 600–999px: force the overlay menu (WP core only shows it below 600px). */
@media (min-width: 600px) and (max-width: 999px) {
  .pubk-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .pubk-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* 1000–1180px: tighten items so the single row always holds. */
@media (min-width: 1000px) and (max-width: 1180px) {
  .pubk-nav .wp-block-navigation-item__content { font-size: 12px; padding: 16px 13px; }
}

/* ---------- C-05: footer reads as groups, not a full page ---------- */
@media (max-width: 999px) {
  .pubk-footer { padding-bottom: 28px !important; padding-top: 44px !important; }
  .pubk-footer > .wp-block-columns { display: grid !important; gap: 26px 24px; grid-template-columns: 1fr 1fr; padding-bottom: 28px !important; }
  .pubk-footer .pubk-footer-brand { font-size: 21px !important; margin-bottom: 14px; }
  .pubk-benefit-badge { margin-top: 14px !important; }
  .pubk-footer-bottom { padding-top: 24px !important; }
  .pubk-footer > .wp-block-columns > .wp-block-column { flex-basis: auto !important; width: auto !important; }
  .pubk-footer > .wp-block-columns > .wp-block-column:first-child { grid-column: 1 / -1; }
  .pubk-footer ul { gap: 10px; }
  .pubk-footer .pubk-footer-heading { margin-bottom: 14px !important; }
}
@media (max-width: 600px) {
  .pubk-footer-bottom { align-items: flex-start !important; flex-direction: column; gap: 14px; }
  .pubk-social a:first-child { margin-left: 0; }
}

/* ---------- C-06: the page's own hero precedes the Weekly promo ---------- */
/* On phones, a leading promo band moves to the end of the page flow. */
@media (max-width: 781px) {
  :is(.wp-block-post-content, .pubk-membership-pricing, .pubk-publications, .pubk-sponsor, .pubk-institute-sponsor, .pubk-community, .pubk-comm-content):has(> :is(.pubk-weekly, .pubk-community-weekly, .pubk-comm-weekly):first-child) {
    display: flex;
    flex-direction: column;
  }
  :is(.wp-block-post-content, .pubk-membership-pricing, .pubk-publications, .pubk-sponsor, .pubk-institute-sponsor, .pubk-community, .pubk-comm-content) > :is(.pubk-weekly, .pubk-community-weekly, .pubk-comm-weekly):first-child { order: 99; }

  /* Section boundaries: one intentional interval instead of two stacked pads. */
  main [style*="padding-top:64px"] { padding-top: 44px !important; }
  main [style*="padding-bottom:64px"] { padding-bottom: 44px !important; }
  main [style*="padding-top:72px"] { padding-top: 48px !important; }
  main [style*="padding-bottom:72px"] { padding-bottom: 48px !important; }
  main [style*="padding-top:80px"] { padding-top: 52px !important; }
  main [style*="padding-top:88px"] { padding-top: 56px !important; }
  main [style*="padding-bottom:88px"] { padding-bottom: 56px !important; }
  main [style*="padding-bottom:90px"] { padding-bottom: 56px !important; }
}
@media (max-width: 700px) {
  .pubk-comm-head { padding: 56px 0 48px; }
  .pubk-comm-board { padding: 56px 0 72px; }
}

/* ---------- C-07: comparison tables stack on phones ---------- */
/* tables.js copies each column header onto its cells (data-th) and flags the
   table; without JS the scroll-wrap fallback below stays untouched. */
@media (max-width: 700px) {
  .pubk-gs-table-wrap:has(.pubk-table-labeled),
  .pubk-mp-seat-wrap:has(.pubk-table-labeled),
  .pubk-bf-seat-wrap:has(.pubk-table-labeled) { overflow-x: visible; }
  table.pubk-table-labeled { border-collapse: separate; border-spacing: 0; min-width: 0 !important; }
  .pubk-table-labeled thead { display: none; }
  .pubk-table-labeled, .pubk-table-labeled tbody, .pubk-table-labeled tfoot, .pubk-table-labeled tr, .pubk-table-labeled th, .pubk-table-labeled td { box-sizing: border-box; display: block; width: 100%; }
  .pubk-table-labeled tbody tr { background: var(--paper); border: 1px solid var(--line); margin: 0 0 12px; padding: 4px 16px 10px; }
  .pubk-table-labeled tbody tr > th { background: none !important; border-bottom: 1px solid var(--ink) !important; font-size: 13px; min-width: 0 !important; padding: 12px 0 8px !important; text-align: left !important; }
  .pubk-table-labeled tbody tr.is-group { background: var(--navy); border: 0; margin: 18px 0 12px; padding: 0; }
  .pubk-table-labeled tbody tr.is-group > th { border: 0 !important; color: #fff; font-family: var(--serif); font-size: 17px; font-weight: 380; padding: 12px 16px !important; }
  .pubk-table-labeled tbody td { align-items: baseline; border: 0 !important; display: flex; gap: 18px; justify-content: space-between; padding: 7px 0 !important; text-align: right !important; }
  .pubk-table-labeled tbody td + td { border-top: 1px solid var(--line) !important; }
  .pubk-table-labeled tbody td::before { color: var(--gray); content: attr(data-th); flex: 0 1 auto; font-size: 12px; font-weight: 600; text-align: left; }
  .pubk-table-labeled tfoot tr { background: none; border: 0; margin: 4px 0 0; padding: 0; }
  .pubk-table-labeled tfoot td { background: var(--paper); border: 1px solid var(--line) !important; margin: 0 0 10px; padding: 14px 16px !important; }
  .pubk-table-labeled tfoot td:empty { display: none; }
  .pubk-table-labeled tfoot td::before { color: var(--gray); content: attr(data-th); display: block; font-size: 12px; font-weight: 600; margin-bottom: 8px; text-align: left; }
  .pubk-table-labeled tfoot .wp-block-button, .pubk-table-labeled tfoot .wp-block-button__link { box-sizing: border-box; display: block; text-align: center; width: 100%; }
  /* stacked cards replace the drag pattern — the scroll cues come off */
  .pubk-institute-sponsor:has(.pubk-table-labeled) .pubk-gs-scroll-hint { display: none !important; }
}

/* ---------- C-08: rails stop with the content ---------- */
/* Short gated teaser (desktop): keep the brief card and the sign-in pitch,
   drop the trailing modules that ran 590–689px past the article. */
@media (min-width: 1025px) {
  .pubk-news .art-wrap .layout:has(.art-paywall) .sidebar > :nth-child(n+3) { display: none; }
}
/* Phones: article rails keep content modules; ads and the Weekly block are
   desktop furniture and made the mobile tail ~1,900px deep. */
@media (max-width: 1024px) {
  .pubk-news .art-wrap .sidebar > div:has(> .ad-slot),
  .pubk-news .art-wrap .sidebar > .side-block:has(.side-weekly-form) { display: none; }
}
/* Long-form measure: job descriptions ran ~92 characters per line. */
.pubk-jobd-desc { max-width: 680px; }

/* ---------- C-10: one deliberate focus + motion system ---------- */
:where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
:where(.pubk-on-dark, .pubk-navy, .pubk-navy-deep, .pubk-footer, .pubk-utility, .pubk-weekly-bar, .pubk-hero, .pubk-comm-head, .has-navy-background-color, .has-navy-deep-background-color) :where(a, button, input, select, textarea, summary):focus-visible { outline-color: var(--gold-soft); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto !important; }
}

/* ---------- C-02: event detail page ---------- */
/* Shares the job-detail shell; the light side cards and the navy head need
   the same color re-scopes the jobd page carries. */
.pubk-eventd .pubk-comm-side-card:not(.is-feature) .pubk-comm-side-meta-row { color: var(--gray); }
.pubk-eventd .pubk-comm-side-card:not(.is-feature) .pubk-comm-side-meta-row b { color: var(--ink); }
.pubk-eventd .pubk-jobd-head .pubk-comm-format { color: var(--on-navy-body); }
.pubk-eventd .pubk-jobd-head .pubk-comm-meta { color: var(--on-navy-muted); }
.pubk-eventd .pubk-comm-side-card h3 { margin: 10px 0 8px; }
.pubk-eventd .pubk-comm-side-card p { color: var(--gray); font-size: 13.5px; line-height: 1.55; margin: 0 0 16px; }

/* ---------- C-11: polish batch ---------- */
/* Signed-out job dashboard: a deliberate gate instead of an inline afterthought. */
.pubk-jobform-card .account-sign-in { align-items: flex-start; display: flex; flex-direction: column; gap: 20px; margin: 0; }
.pubk-jobform-card .account-sign-in .button {
  align-items: center; background: var(--navy); border: 0; border-radius: 0; color: #fff;
  display: inline-flex; font-family: var(--sans); font-size: 12px; font-weight: 700;
  letter-spacing: .14em; min-height: 44px; padding: 12px 26px; text-decoration: none; text-transform: uppercase;
}
.pubk-jobform-card .account-sign-in .button:hover { background: var(--navy-mid); color: #fff; }

/* Community partner rail: manual scroll with the fade cue when the marquee
   can't run (small screens and reduced motion). */
@media (max-width: 781px) {
  .pubk-community .pubk-community-marquee { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .pubk-community .pubk-community-marquee::-webkit-scrollbar { display: none; }
  .pubk-community .pubk-community-marquee-track { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pubk-community .pubk-community-marquee { overflow-x: auto; }
}

/* One-word tails: balance display headings, tidy ledes. */
.pubk-h-section, .pubk-h-feature, .pubk-news .section-title, .pubk-comm-head h1, .pubk-h-hero { text-wrap: balance; }
.pubk-lede, .pubk-hero-lede, .pubk-comm-head p { text-wrap: pretty; }

/* ============ 0.21.0 — Cobb copy round ============ */
/* Homepage ask panel: label above the sample-prompt rows (dark navy panel) */

/* Ask Pub K page: roadmap note + beta notice under the Difference panel */


/* ============ 0.33.0 — Robert round 3 (2026-09-10) ============ */
/* Product sections on the homepage (Ask Pub K, In-House Benchmarking): the product name is now the section heading and the tagline
   moves up into the eyebrow slot, so the product does not get lost. The Ask Pub K heading paints the inline logo at heading scale:
   block-level, 2.2em tall (wordmark cap height ~25% above the heading text), width = height x the logo's 1308:361 aspect. */
.pubk-h-product .pubk-apk { display: block; height: 2.2em; width: 7.97em; vertical-align: baseline; }

/* Ask Pub K page: the three cream sections in a row (why / specialized / trust) read as one long block — halve the gap between them.
   Only the shared edges change; the hero->why and trust->pricing edges keep the 96px rhythm. */

/* ---------- 0.36.0: hand-off fixes (2026-09-11) ---------- */
/* D3: between 1000 and 1279px the constrained shells lost their side gutters (content ran edge to edge, SEARCH flush right). */
@media (min-width: 1000px) and (max-width: 1279px) {
  .pubk-weekly-bar,
  .pubk-utility,
  .pubk-utility-links,
  .pubk-masthead,
  .pubk-hero,
  .pubk-ar-band,
  .pubk-weekly,
  .pubk-footer,
  main .wp-block-post-content > .alignfull.is-layout-constrained,
  main .wp-block-post-content > .wp-block-group.alignfull > .alignfull.is-layout-constrained {
    box-sizing: border-box;
    padding-left: var(--container-pad) !important;
    padding-right: var(--container-pad) !important;
  }
  /* 0.45.0: the masthead's D3 gutters would pin the alignfull nav row (and its rule line) inside them; pull the row back
     out to the viewport edges and keep the cells on the gutter with the same padding. */
  .pubk-masthead > .pubk-nav.alignfull {
    box-sizing: border-box;
    margin-left: calc(-1 * var(--container-pad));
    margin-right: calc(-1 * var(--container-pad));
    padding-left: var(--container-pad);
    padding-right: var(--container-pad);
  }
}

/* D8: real section titles on the utility templates (404, search, archive, job form, dashboard). */
.pubk-404-title { color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.2; margin: 0 0 18px; }
.pubk-jobform-title { color: var(--navy); font-family: var(--serif); font-size: 22px; font-weight: 600; line-height: 1.25; margin: 0 0 18px; }
.pubk-footer p.pubk-footer-heading { margin-top: 0; }

/* D9: gold display text under 24px on light surfaces uses the AA gold. */
.pubk-institute-sponsor .pubk-gs-mag-card h3.has-gold-color { color: var(--gold-label) !important; }

/* M2: prompt-mode chips wrap as whole words; the workspace grid stacks on phones. */

/* M8: current page in the drawer (core only flags id-linked items; see pubk_nav_current_item). */
@media (max-width: 999px) {
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content {
    box-shadow: inset 3px 0 0 var(--gold-soft);
    color: #fff !important;
    padding-left: 14px !important;
  }
  /* M7: 44px tap targets for drawer sub-items and the close control. */
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    align-items: center;
    display: flex;
    min-height: 44px;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
  }
  .pubk-nav .wp-block-navigation__responsive-container-close { min-height: 44px; min-width: 44px; }
}

@media (max-width: 781px) {
  /* M3: the sponsor options strip scrolls; a right-edge fade and end padding say so. */
  .pubk-institute-sponsor .pubk-gs-jump::after { background: linear-gradient(90deg, rgba(247,244,236,0), var(--paper)); bottom: 0; content: ""; pointer-events: none; position: absolute; right: 0; top: 0; width: 56px; }
  .pubk-institute-sponsor .pubk-gs-jump-nav { padding-right: 48px; scroll-padding-right: 48px; }
  /* M4: the job board and calendar already carry the full Weekly band; the relocated strip would stack a second form under it. */
  .pubk-comm-jobs .pubk-comm-weekly,
  .pubk-comm-calendar .pubk-comm-weekly { display: none; }
  /* M6: the stacked Ask Pub K panel needs air above it. */
  .wp-block-column > .pubk-ask-panel { margin-top: 32px; }
  /* M7: footer links become 44px rows. */
  .pubk-footer ul { gap: 0; }
  .pubk-footer ul a { align-items: center; display: inline-flex; min-height: 44px; }
}

@media (max-width: 600px) {
  /* M1 / M5: house creatives carry fixed 970x120 / 970x200 inline geometry; on phones the slot and the creative grow to the copy and stack it above the button. */
  .pubk-news .ad-leaderboard,
  .pubk-lib-page .ad-leaderboard,
  .pubk-news .ad-inline { height: auto; }
  .ad-slot.ad-leaderboard [id^="advads-"] > a,
  .ad-slot.ad-inline [id^="advads-"] > a { height: auto !important; }
  .ad-slot.ad-leaderboard [id^="advads-"] > a > div,
  .ad-slot.ad-inline [id^="advads-"] > a > div { align-items: flex-start !important; flex-direction: column !important; gap: 14px !important; height: auto !important; padding: 18px 20px !important; }
  /* M2: workspace difference cards stack; no mid-word breaks. */
  /* M6: stacked button pairs share one width. */
  .wp-block-post-content .wp-block-buttons { gap: 12px; }
  .wp-block-post-content .wp-block-buttons > .wp-block-button { width: 100%; }
  .wp-block-post-content .wp-block-buttons > .wp-block-button > .wp-block-button__link { box-sizing: border-box; justify-content: center; text-align: center; width: 100%; }
}

/* ---------- 0.36.3 (Patrick 2026-09-11 05:39Z): Amanda's new institute logo ---------- */
/* No rules: the masthead switches to assets/img/logo-pubk-institute.png at 72px in parts/header.html (was logo-pubk.png at 62px) and the
   wp-login badge follows in assets/css/login.css. The lockup is two lines (wordmark + institute tagline), 2153x264 padding-trimmed from Amanda's
   2328x392 LIGHT file, so the masthead grows 10px to keep the tagline caps at 13px. Phones still shrink it to the column (tagline ~7.6px caps);
   a stacked phone variant is on order from Amanda. */

/* ---------- Duotone photo treatment (0.36.1, Patrick 2026-09-11) ----------
   One class on the element that wraps a photograph <img> (never a logo/brief mark). Sits at the END of the sheet on purpose:
   it ties with .pubk-photo-frame::after / .pubk-photo-frame img at (0,1,1) and must win by order.
   z-index on the two layers is required: a filtered <img> paints in the positioned z:0 layer, so an un-indexed ::before
   would sit UNDER the photo (measured 2026-09-11: grayscale only, no tint). isolation keeps the blend inside the wrapper. */
.pubk-duotone { position: relative; overflow: hidden; background: var(--navy); isolation: isolate; }
/* 0.45.0: the duotone tint is RETIRED (Patrick 2026-09-15: "remove the blue duotone from the photos"). Every .pubk-duotone photo now paints
   in colour: no grayscale filter, both tint layers at opacity 0 (kept in the DOM so nothing re-flows). Legibility over photos comes from
   each slot's own scrim, which the tint had been stacking on top of: the cover heroes' .wp-block-cover__background gradients (home, AR band,
   Team, Benchmarking) and the sponsor hero's ::after gradient (restored below). The sponsor gallery figures keep their caption gradient. */
.pubk-duotone img,
.pubk-duotone .wp-block-cover__image-background { display: block; width: 100%; height: 100%; object-fit: cover; filter: none; }
.pubk-duotone::before, .pubk-duotone::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; }
/* Cover blocks (homepage hero): keep the headline layer above the (now transparent) tint layers. Core pins the inner container at z-index 1 via a
   body:not(...) .wp-block-cover:not(:has(...)) selector of specificity (0,6,1), so this is one of the few honest !important uses in the sheet. */
.pubk-duotone.wp-block-cover .wp-block-cover__inner-container { position: relative; z-index: 2 !important; }

/* ---------- Subscribe landing page (0.38.0) ----------
   /subscribe/ (patterns/subscribe.php + templates/page-subscribe.html). Saurabh's HighLevel sign-up form embeds inside
   .pubk-subscribe-slot; until then the slot carries a placeholder. Arrives with ?brief=<slug> from the homepage card links
   (assets/js/subscribe.js marks that row "Selected") and ?email=<address> from every Weekly strip on the site. */
.pubk-subscribe .pubk-subscribe-slot { background: var(--paper); border: 1px solid var(--line); padding: 36px; min-height: 320px; }
.pubk-subscribe .pubk-subscribe-slot-eyebrow { font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--gold-label); margin: 0 0 14px !important; }
.pubk-subscribe .pubk-subscribe-slot-copy { font-size: 17px !important; line-height: 1.6; color: var(--ink); margin: 0 !important; }
.pubk-subscribe .pubk-subscribe-slot-copy a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.pubk-subscribe .pubk-subscribe-list-label { font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--gray); margin: 0 0 14px !important; }
.pubk-subscribe .pubk-subscribe-item { border-top: 1px solid var(--line); padding: 16px 0; }
.pubk-subscribe .pubk-subscribe-item:last-child { border-bottom: 1px solid var(--line); }
.pubk-subscribe .pubk-subscribe-item-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; font-family: var(--serif); font-size: 20px; line-height: 1.2; color: var(--ink); }
.pubk-subscribe .pubk-subscribe-item-head a { color: var(--ink); text-decoration: none; }
.pubk-subscribe .pubk-subscribe-item-head a:hover { color: var(--red); }
.pubk-subscribe .pubk-subscribe-item-cad { font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gray); white-space: nowrap; }
.pubk-subscribe .pubk-subscribe-item p { font-size: 14px !important; line-height: 1.55; color: var(--gray); margin: 6px 0 0 !important; }
.pubk-subscribe .pubk-subscribe-item.is-selected { background: var(--paper); box-shadow: inset 3px 0 0 var(--gold); padding-left: 16px; padding-right: 16px; }
.pubk-subscribe .pubk-subscribe-item-tag { font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-label); margin-left: 10px; vertical-align: 2px; }
@media (max-width: 782px) {
  .pubk-subscribe .pubk-subscribe-slot { padding: 24px; min-height: 0; margin-bottom: 32px; }
}

/* ---------- 0.39.0: homepage redesign (Patrick's Claude Design file, 2026-09-14; opinion + build notes in data/2026-09-14-homepage-redesign/) ----------
   Same sections, same copy; new treatment. Home-only classes: pubk-weekly-home, pubk-home-briefs, pubk-ar-band/-card, pubk-home-ask + pubk-ask-functions,
   pubk-bench, pubk-home-member. The header (utility bars, masthead row, left-aligned nav) and the footer hairline/Subscribe link are site-wide and live above. */

/* Weekly strip: red kicker + 26px serif lede on the left, the form (navy button) on the right; stacks under 782px via the shared .pubk-weekly rules. */
.pubk-weekly-home > .wp-block-group { align-items: center; gap: 32px 48px; }
.pubk-weekly-home .pubk-weekly-copy { flex: 1 1 420px; min-width: 0; }
.pubk-weekly-home .pubk-weekly-kicker { color: var(--red); font-size: 11px !important; font-weight: 700; letter-spacing: 0.22em; margin: 0 0 12px !important; text-transform: uppercase; }
.pubk-weekly-home .pubk-weekly-lede { color: var(--ink); font-family: var(--serif); font-size: 26px !important; font-weight: 380; letter-spacing: -0.01em; line-height: 1.35; margin: 0 !important; max-width: 560px; }
.pubk-weekly-home .pubk-weekly-lede em { font-style: italic; }
.pubk-weekly-home .pubk-weekly-form { flex: 0 1 420px; }
.pubk-weekly-home .pubk-weekly-form input[type="email"] { flex: 1 1 0; min-width: 0; padding: 15px 16px; width: auto; }
.pubk-weekly-home .pubk-weekly-form button { background: var(--navy); font-size: 13px; padding: 15px 22px; white-space: nowrap; }
.pubk-weekly-home .pubk-weekly-form button:hover { background: var(--navy-mid); }

/* Briefs: bordered cards with the mark's own colour on top, the mark at up to 220px, slate copy, plain cadence, navy Subscribe (one colour, my call over the file's four). */
.pubk-home-briefs .pubk-section-head { margin-bottom: 48px; padding-bottom: 28px; }
.pubk-home-briefs .pubk-lede { color: var(--slate); font-size: 15px; line-height: 1.55; margin-bottom: 10px !important; }
.pubk-home-briefs .pubk-textlink { font-size: 13px !important; }
.pubk-home-briefs .pubk-textlink a { color: var(--red); }
.pubk-home-briefs .pubk-card { border: 1px solid var(--line); border-top-width: 3px; gap: 14px; min-height: 0; padding: 24px; }
.pubk-home-briefs .pubk-card-protests { border-top-color: var(--mark-protests); }
.pubk-home-briefs .pubk-card-cyber { border-top-color: var(--mark-cyber); }
.pubk-home-briefs .pubk-card-compliance { border-top-color: var(--mark-compliance); }
.pubk-home-briefs .pubk-card-transforming { border-top-color: var(--mark-transforming); }
.pubk-home-briefs .pubk-card .wp-block-image { text-align: left; }
.pubk-home-briefs .pubk-card img { display: block; height: auto; max-width: 220px; width: 100% !important; }
.pubk-home-briefs .pubk-card h3 { font-size: 21px !important; margin: 0 !important; }
.pubk-home-briefs .pubk-card > p { color: var(--slate); font-size: 14px; }
.pubk-home-briefs .pubk-card-foot { margin-top: 0 !important; padding-top: 14px; }
.pubk-home-briefs .pubk-card-cadence { color: var(--slate-light); font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.pubk-home-briefs .pubk-card-sub { font-size: 12px; }

/* Annual Review: the room photo (duotone) under a .9 navy scrim with a gold glow bottom-left; copy left, white event card right. */
.pubk-ar-band { border-radius: 0; }
.pubk-ar-band .wp-block-cover__inner-container { width: 100%; }
.pubk-ar-band .wp-block-cover__image-background { object-position: center 40%; }
.pubk-ar-band .wp-block-cover__background {
  background: radial-gradient(640px 400px at 8% 108%, rgba(194, 162, 88, 0.22), transparent 70%),
    linear-gradient(rgba(11, 37, 69, 0.9), rgba(11, 37, 69, 0.9)) !important;
  opacity: 1 !important;
}
.pubk-ar-band .pubk-h-section { margin-bottom: 20px; }
.pubk-ar-band .pubk-lede { font-size: 16px; line-height: 1.6; margin-bottom: 28px !important; max-width: 520px; }
.pubk-ar-band .pubk-textlink { font-size: 13px !important; }
.pubk-ar-band .pubk-textlink a { color: var(--gold-soft); }
.pubk-ar-band .pubk-textlink a:hover { color: #fff; }
.pubk-ar-card { align-items: center; background: var(--paper); border-top: 3px solid var(--gold); color: var(--navy); display: flex; flex-direction: column; gap: 18px; padding: 36px 36px 32px; text-align: center; }
.pubk-ar-card p { margin: 0; }
.pubk-ar-card .pubk-ar-badge { color: var(--gold-label); font-size: 11px !important; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; }
.pubk-ar-card .pubk-ar-logo { margin: 0; max-width: 280px; width: 100%; }
.pubk-ar-card .pubk-ar-logo img { display: block; filter: none; height: auto; width: 100%; } /* the band's duotone filter reaches every img in the cover; the card's navy lockup must stay navy */
.pubk-ar-card .pubk-event-date { color: var(--navy); font-family: var(--serif); font-size: 20px !important; font-style: normal; letter-spacing: -0.01em; margin: 0 !important; }
.pubk-ar-card .pubk-ar-meta { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); color: var(--slate); font-size: 13px !important; line-height: 1.7; padding: 12px 0; width: 100%; }
.pubk-ar-card .wp-block-buttons { gap: 12px; justify-content: center; }
.pubk-ar-card .wp-block-button__link { font-size: 13px; padding: 13px 24px; }
.pubk-ar-card .pubk-btn-outline-dark .wp-block-button__link { border-color: var(--navy); }

/* Ask Pub K: copy + lockup left, a short navy prompt panel right (typewriter shared with the product page), the four functions in a row beneath. */
.pubk-home-ask .pubk-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin-bottom: 28px !important; max-width: 540px; }
.pubk-home-ask .pubk-lede + .wp-block-buttons { margin-top: 0; }
.pubk-home-ask .wp-block-buttons { align-items: center; gap: 16px; }
.pubk-home-ask .pubk-ask-panel { background: radial-gradient(360px 240px at 90% -20%, rgba(194, 162, 88, 0.3), transparent 70%) var(--navy); border-top: 0; gap: 0; padding: 40px 36px; }
.pubk-home-ask .pubk-ask-panel::before { content: none; }
.pubk-home-ask .pubk-ask-title { font-size: 24px !important; margin-bottom: 22px !important; }
.pubk-home-ask .pubk-ask-input { background: var(--paper); border: 0; gap: 12px; padding: 15px 18px; }
.pubk-home-ask .pubk-ask-input .prompt { color: var(--navy); flex: 1 1 0; font-family: var(--sans); font-size: 14px; font-style: normal; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pubk-home-ask .pubk-ask-input .prompt .caret { animation: pubk-caret 1s step-end infinite; background: var(--red); display: inline-block; height: 14px; margin-left: 2px; vertical-align: -2px; width: 1px; }
.pubk-home-ask .pubk-ask-input .arrow { color: var(--red); font-size: 15px; }
@keyframes pubk-caret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .pubk-home-ask .pubk-ask-input .prompt .caret { animation: none; } }
.pubk-home-ask .pubk-ask-foot { gap: 14px; justify-content: flex-start; margin-top: 18px; padding-top: 0; }
.pubk-home-ask .pubk-ask-foot .members { color: var(--gold-soft); font-size: 11px; letter-spacing: 0.18em; }
.pubk-home-ask .pubk-ask-foot .modes { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-style: normal; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.pubk-ask-functions { border-top: 1px solid var(--line); display: grid; gap: 32px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 56px; padding-top: 40px; }
.pubk-ask-functions h3 { color: var(--ink); font-family: var(--serif); font-size: 20px; font-weight: 460; letter-spacing: -0.01em; margin: 0 0 10px; }
.pubk-ask-functions p { color: var(--slate); font-size: 14px; line-height: 1.55; margin: 0; }

/* In-House Benchmarking: sand band between two gold rules, kicker + programme badge, navy button, the session photo in a gold hairline frame. */
.pubk-bench { background: var(--sand); border-bottom: 3px solid var(--gold); border-top: 3px solid var(--gold); }
.pubk-bench .pubk-bench-kicker { color: var(--gold-label); flex-wrap: wrap; letter-spacing: 0.22em; margin-bottom: 14px; }
.pubk-bench .pubk-bench-badge { border: 1px solid var(--gold); color: var(--navy); font-size: 10px; letter-spacing: 0.18em; padding: 3px 8px; }
.pubk-bench .pubk-h-section { margin-bottom: 20px; }
.pubk-bench .pubk-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin-bottom: 28px !important; max-width: 560px; }
.pubk-bench .pubk-lede + .wp-block-buttons { margin-top: 0; }
.pubk-bench-photo { background: var(--paper); border: 1px solid var(--gold); padding: 10px; }
.pubk-bench-photo .pubk-duotone { aspect-ratio: 3 / 2; margin: 0; }
.pubk-bench-photo img { display: block; height: 100%; object-fit: cover; width: 100%; }

/* Membership: white band, the community photo (duotone, natural 3:2) with its navy caption tile, red primary + text CTA. */
.pubk-home-member .pubk-member-photo { height: auto; }
.pubk-home-member .pubk-member-photo img { aspect-ratio: 3 / 2; height: auto; }
.pubk-home-member .pubk-photo-caption { font-size: 18px !important; font-style: normal; font-weight: 380; padding: 12px 20px; }
.pubk-home-member .pubk-photo-caption b { color: var(--gold-soft); font-weight: 600; }
.pubk-home-member .pubk-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin-bottom: 28px !important; max-width: 520px; }
.pubk-home-member .pubk-lede + .wp-block-buttons { margin-top: 0; }
.pubk-home-member .wp-block-buttons { align-items: center; gap: 16px; }

/* Phones and tablets: the new sections keep the site's 64px rhythm; the functions row goes 2-up then 1-up. */
@media (max-width: 999px) {
  .pubk-ask-functions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .pubk-hero { padding-top: 72px !important; padding-bottom: 80px !important; }
  .pubk-weekly-home { padding-top: 44px !important; padding-bottom: 44px !important; }
  .pubk-home-briefs, .pubk-home-latest, .pubk-ar-band, .pubk-home-ask, .pubk-bench, .pubk-home-member { padding-top: 64px !important; padding-bottom: 64px !important; }
  .pubk-home-briefs .pubk-section-head { margin-bottom: 32px; }
  .pubk-ar-card { padding: 28px 22px 26px; }
  .pubk-ask-functions { margin-top: 40px; padding-top: 32px; }
  .wp-block-column > .pubk-bench-photo, .wp-block-column > .pubk-member-photo { margin-top: 0; }
}
@media (max-width: 600px) {
  .pubk-ask-functions { gap: 24px; grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 0.41.0: Benchmarking page (Patrick's Claude Design file, 2026-09-15; build notes in data/2026-09-15-benchmarking/) ----------
   /benchmarking/ = patterns/benchmarking.php inside templates/page-benchmarking.html (site-wide header/footer parts). Page scope .pubk-bm;
   hero + Day 3 event card are duotone covers (new assets/img/benchmarking-hero.jpg; the event card reuses annual-review-room.jpg).
   Nav: Benchmarking sits between Ask Pub K and Community (parts/header.html); the home "Explore Benchmarking" button now lands here. */
.pubk-bm-hero { border-radius: 0; }
.pubk-bm-hero .wp-block-cover__inner-container { width: 100%; }
.pubk-bm-hero .wp-block-cover__image-background { object-position: center 30%; }
.pubk-bm-hero .wp-block-cover__background {
  background: radial-gradient(700px 420px at 88% -10%, rgba(194, 162, 88, 0.28), transparent 70%),
    linear-gradient(rgba(11, 37, 69, 0.84), rgba(11, 37, 69, 0.84)) !important;
  opacity: 1 !important;
}
.pubk-bm-hero .pubk-eyebrow { margin-bottom: 18px; }
.pubk-bm-hero .pubk-h-hero { font-size: clamp(38px, 3.75vw, 54px) !important; line-height: 1.1; max-width: 900px; text-wrap: pretty; } /* balance split "in-house" at its hyphen */
.pubk-bm-hero .pubk-hero-lede { margin-bottom: 36px !important; max-width: 680px; }
.pubk-bm-hero .wp-block-buttons { gap: 16px; }
.pubk-bm-hero .wp-block-button__link { font-size: 13px; padding: 15px 26px; }
/* Both covers sit under the shared duotone (navy multiply + 8% gold screen); the file wants a flatter, deeper navy, so the gold lift is dialled down here only. */
.pubk-bm-hero.pubk-duotone::after, .pubk-bm-event.pubk-duotone::after { opacity: 0.03; }

/* The Program: section head with the note bottom-right, then four bordered cards (gold top rule, pictogram + gold hairline, tag foot). */
.pubk-bm-program .pubk-section-head { margin-bottom: 44px; padding-bottom: 28px; }
/* Head row = the file's flex-wrap: the 40px heading takes its natural width, the 440px note sits bottom-right when it fits and drops under the heading (left) when it does not — at 1216 it drops, exactly as the design file renders. */
.pubk-bm-head { align-items: flex-end; gap: 40px; }
.pubk-bm-head-copy { flex: 0 1 auto; min-width: 0; }
.pubk-bm-head-note { flex: 0 1 440px; }
.pubk-bm-program .pubk-h-section { font-size: clamp(30px, 3vw, 40px) !important; margin-bottom: 0 !important; }
.pubk-bm-head-note { color: var(--slate); font-size: 15px !important; line-height: 1.55; margin: 0 !important; max-width: 440px; }
.pubk-bm-cards { display: grid; gap: 24px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pubk-bm-cards > .pubk-bm-card { margin: 0; }
.pubk-bm-card { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex-direction: column; gap: 10px; padding: 26px; }
.pubk-bm-card-icon { align-items: center; display: flex; gap: 14px; margin-bottom: 4px; }
.pubk-bm-card-icon svg { display: block; flex: 0 0 auto; height: 44px; width: 56px; }
.pubk-bm-card-icon::after { background: linear-gradient(90deg, var(--gold), transparent); content: ""; flex: 1; height: 1px; }
.pubk-bm-card h3 { color: var(--ink); font-size: 20px !important; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0 !important; }
.pubk-bm-card-copy { color: var(--slate); flex: 1; font-size: 14px !important; line-height: 1.6; margin: 0 !important; }
.pubk-bm-card-tag { color: var(--gold-label); font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: 0.18em; margin: 0 !important; text-transform: uppercase; }

/* Day 3: label rule, the navy event card (cover over the Annual Review room photo), then the bordered detail box with three hairline rows. */
.pubk-bm-label { align-items: center; color: var(--red); display: flex; font-family: var(--sans); font-size: 12px !important; font-weight: 700; gap: 18px; letter-spacing: 0.22em; margin: 0 auto 22px !important; text-transform: uppercase; } /* auto sides: the constrained layout centres children by margin, and a hard 0 would pin the label to the viewport edge */
.pubk-bm-label::after { background: var(--line); content: ""; flex: 1; height: 1px; }
.pubk-bm-day3 .pubk-bm-event { border-radius: 0; border-top: 3px solid var(--gold); box-shadow: 0 18px 44px rgba(11, 37, 69, 0.14); min-height: 0; }
.pubk-bm-event .wp-block-cover__inner-container { width: 100%; }
.pubk-bm-event .wp-block-cover__image-background { object-position: center top; }
.pubk-bm-event .wp-block-cover__background {
  background: radial-gradient(600px 380px at 92% -10%, rgba(194, 162, 88, 0.28), transparent 70%),
    linear-gradient(rgba(11, 37, 69, 0.86), rgba(11, 37, 69, 0.86)) !important;
  opacity: 1 !important;
}
.pubk-bm-event .pubk-eyebrow { margin-bottom: 16px; }
.pubk-bm-event-title { color: #fff; font-size: 32px !important; letter-spacing: -0.02em; line-height: 1.18; margin: 0 !important; max-width: 820px; }
.pubk-bm-event-title em { color: var(--gold-soft); font-style: italic; font-weight: 380; }
.pubk-bm-event-lede { color: var(--on-navy-body); font-size: 16px !important; line-height: 1.6; margin: 18px 0 6px !important; max-width: 660px; }
.pubk-bm-event-meta { align-items: center; color: #fff; display: flex; flex-wrap: wrap; font-size: 14px !important; font-weight: 600; gap: 10px; margin: 16px 0 26px !important; }
.pubk-bm-event-meta .pubk-bm-dot { color: var(--gold); }
.pubk-bm-event .wp-block-buttons { gap: 16px; }
.pubk-bm-event .wp-block-button__link { font-size: 13px; padding: 14px 24px; }
.pubk-bm-event-fine { border-top: 1px solid rgba(255, 255, 255, 0.15); color: var(--on-navy-muted); font-size: 12px !important; line-height: 1.6; margin: 26px 0 0 !important; max-width: 720px; padding-top: 16px; }
.pubk-bm-detail { border: 1px solid var(--line); border-top: 0; padding: 0 56px 12px; }
.pubk-bm-row { border-bottom: 1px solid var(--line); gap: 48px; margin: 0 !important; padding: 40px 0; }
.pubk-bm-row:first-child { padding-top: 44px; }
.pubk-bm-row:last-child { border-bottom: 0; }
.pubk-bm-detail .pubk-eyebrow { margin-bottom: 12px; }
.pubk-bm .pubk-eyebrow.pubk-bm-eyebrow-gold { color: var(--gold-label); margin-bottom: 16px; }
.pubk-bm-h3 { color: var(--ink); font-size: 28px !important; font-weight: 380; letter-spacing: -0.02em; line-height: 1.15; margin: 0 !important; }
.pubk-bm-h3 em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-bm-copy { color: var(--slate); font-size: 15px !important; line-height: 1.65; margin: 0 0 16px !important; }
.pubk-bm-copy:last-child { margin-bottom: 0 !important; }
.pubk-bm-bullets { color: var(--slate); display: flex; flex-direction: column; font-size: 15px; gap: 12px; line-height: 1.55; list-style: none; margin: 22px 0 0; padding: 0; }
.pubk-bm-bullets li { padding-left: 24px; position: relative; }
.pubk-bm-bullets li::before { color: var(--gold); content: "•"; left: 0; position: absolute; }
.pubk-bm-note { background: var(--cream); border-left: 3px solid var(--gold); color: var(--slate); font-size: 14px !important; line-height: 1.6; margin: 24px 0 0 !important; padding: 16px 20px; }
.pubk-bm-note strong { color: var(--navy); }
.pubk-bm-takes { counter-reset: take; list-style: none; margin: 0; padding: 0; }
.pubk-bm-takes li { align-items: baseline; border-top: 1px solid var(--line); color: var(--navy); counter-increment: take; display: flex; font-size: 14px; gap: 16px; line-height: 1.5; padding: 12px 0; }
.pubk-bm-takes li::before { color: var(--gold-label); content: counter(take, decimal-leading-zero); flex: 0 0 auto; font-family: var(--serif); font-size: 14px; }
.pubk-bm-row .wp-block-buttons { margin-top: 22px; }
.pubk-bm-row .wp-block-button__link { font-size: 13px; padding: 13px 22px; }
.pubk-bm-faq details { border-top: 1px solid var(--line); padding: 0; }
.pubk-bm-faq summary { align-items: baseline; color: var(--navy); cursor: pointer; display: flex; font-family: var(--serif); font-size: 18px; font-weight: 460; gap: 16px; justify-content: space-between; letter-spacing: -0.01em; line-height: 1.3; list-style: none; padding: 14px 0; }
.pubk-bm-faq summary::-webkit-details-marker { display: none; }
.pubk-bm-faq summary::after { color: var(--gold); content: "▼"; flex: 0 0 auto; font-family: var(--sans); font-size: 10px; }
.pubk-bm-faq details[open] summary::after { content: "▲"; }
.pubk-bm-faq details p { color: var(--slate); font-size: 14px !important; line-height: 1.6; margin: 0 !important; padding: 0 0 16px; }

/* Membership CTA strip. */
.pubk-bm-cta { border-top: 1px solid var(--line); }
.pubk-bm-cta > .wp-block-group { align-items: center; gap: 24px 32px; }
.pubk-bm-cta-copy-wrap { flex: 1 1 420px; min-width: 0; }
.pubk-bm-cta .wp-block-buttons { flex: 0 0 auto; }
.pubk-bm-cta-title { color: var(--ink); font-size: 26px !important; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 6px !important; }
.pubk-bm-cta-title em { color: var(--navy); font-style: italic; font-weight: 300; }
.pubk-bm-cta-copy { color: var(--slate); font-size: 14px !important; line-height: 1.5; margin: 0 !important; }
.pubk-bm-cta .wp-block-button__link { font-size: 13px; padding: 13px 22px; white-space: nowrap; }

@media (min-width: 1000px) and (max-width: 1279px) {
  .pubk-bm-hero { box-sizing: border-box; padding-left: var(--container-pad) !important; padding-right: var(--container-pad) !important; }
}
@media (max-width: 1180px) {
  .pubk-bm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
  .pubk-bm-day3 .pubk-bm-event { padding-left: 32px !important; padding-right: 32px !important; }
  .pubk-bm-detail { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 781px) {
  .pubk-bm-hero { padding-top: 72px !important; padding-bottom: 80px !important; }
  .pubk-bm-program, .pubk-bm-day3 { padding-top: 64px !important; padding-bottom: 64px !important; }
  .pubk-bm-day3 .pubk-bm-event { padding: 36px 24px 32px !important; }
  .pubk-bm-detail { padding: 0 24px 8px; }
  .pubk-bm-row { gap: 28px; padding: 32px 0; }
  .pubk-bm-row:first-child { padding-top: 32px; }
  .pubk-bm-cta > .wp-block-group { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  .pubk-bm-cards { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Pub K Weekly registration (/weekly/) — 0.52.0: the page IS Saurabh's HighLevel form (Patrick 2026-09-15 16:55Z: "embed it in the page
   and remove the duplicate content from our page"). 0.43.0–0.51.0 wrapped the embed in the design file's navy pitch column + white card; the
   HighLevel widget carries the same pitch and its own card, so the copy column, the card chrome, the ghost mark and the duplicate note are gone.
   The navy ground and the gold glow stay so the widget's navy card reads as the page; 640px column centred (the section's own 24/32px
   gutters below 1280 keep it off the edges — no padding of its own, or the phone gutter doubles). ---------- */
.pubk-wk { overflow: hidden; position: relative; }
.pubk-wk::before { background: radial-gradient(circle, rgba(194, 162, 88, 0.15), transparent 60%); content: ""; height: 640px; pointer-events: none; position: absolute; right: -140px; top: -180px; width: 640px; }
.pubk-wk .pubk-wk-embed { margin: 0 auto; max-width: 640px; min-height: 788px; position: relative; z-index: 1; }
.pubk-wk .pubk-wk-embed iframe { border: 0; display: block; min-height: 788px; width: 100%; }
/* phones: the site's global rule (main [style*="padding-top:64px"] -> 44px / 72 -> 48px) sets the section rhythm; no override here. */

/* ---------- 0.46.0: Ask Pub K — Schedule a Demo (/ask-pub-k/demo/, patterns/ask-pub-k-demo.php; Patrick's Claude Design file 2026-09-15) ----------
   Cream page, two columns (pitch 1fr 380 | white card 1fr 440 max 560, 64px gap) that wrap under 1000px. Card = 3px red top rule on the
   --line border. Labels are the file's 12px/700/0.1em navy caps; fields 1px --line, navy on focus. The form posts JSON (askpubk-pages.js). */
.pubk-demo { background: var(--cream); }
.pubk-demo .pubk-demo-wrap { padding-bottom: 96px; padding-top: 80px; }
.pubk-demo .pubk-demo-grid { align-items: flex-start; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-demo .pubk-demo-pitch { flex: 1 1 380px; min-width: 0; }
.pubk-demo .pubk-demo-h1 { color: var(--ink); font-family: var(--serif); font-size: clamp(34px, 3.2vw, 44px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 18px; text-wrap: pretty; }
.pubk-demo .pubk-demo-h1 em { font-style: italic; }
.pubk-demo .pubk-demo-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin: 0 0 28px; max-width: 480px; }
.pubk-demo .pubk-demo-points { color: var(--slate); display: flex; flex-direction: column; font-size: 15px; gap: 12px; line-height: 1.5; list-style: none; margin: 0; max-width: 460px; padding: 0; }
.pubk-demo .pubk-demo-points li { display: flex; gap: 12px; }
.pubk-demo .pubk-demo-points li::before { color: var(--gold); content: "→"; flex: 0 0 auto; }
.pubk-demo .pubk-demo-card { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--red); box-sizing: border-box; flex: 1 1 440px; max-width: 560px; min-width: 0; padding: 36px; }
.pubk-demo .pubk-demo-form { display: flex; flex-direction: column; gap: 18px; margin: 0; }
.pubk-demo .pubk-demo-booking { margin: 0 0 12px; } /* 0.78.0: Patrick's HighLevel booking calendar in the request card (0.59.0-0.77.1 held the Calendly widget), the note under it */
.pubk-demo .pubk-demo-booking iframe { display: block; min-height: 700px; } /* askpubk-pages.js sets the height to the calendar (about 780-800px); without that script the iframe stays at this 700px floor and scrolls inside */
.pubk-demo .pubk-demo-row { display: flex; flex-wrap: wrap; gap: 18px; }
.pubk-demo .pubk-demo-row > .pubk-demo-field { flex: 1 1 200px; }
.pubk-demo .pubk-demo-field { color: var(--navy); display: flex; flex-direction: column; font-family: var(--sans); font-size: 12px; font-weight: 700; gap: 6px; letter-spacing: 0.1em; min-width: 0; text-transform: uppercase; }
.pubk-demo .pubk-demo-field input, .pubk-demo .pubk-demo-field textarea { background: #fff; border: 1px solid var(--line); border-radius: 0; box-sizing: border-box; color: var(--ink); font-family: var(--sans); font-size: 14px; font-weight: 400; letter-spacing: 0; line-height: 1.4; margin: 0; padding: 12px 14px; text-transform: none; width: 100%; }
.pubk-demo .pubk-demo-field input::placeholder, .pubk-demo .pubk-demo-field textarea::placeholder { color: var(--slate-light); }
.pubk-demo .pubk-demo-field input:focus, .pubk-demo .pubk-demo-field textarea:focus { border-color: var(--navy); outline: none; }
.pubk-demo .pubk-demo-field textarea { min-height: 112px; resize: vertical; }
.pubk-demo .pubk-demo-hp { left: -9999px; position: absolute; top: auto; width: 1px; height: 1px; overflow: hidden; }
.pubk-demo .pubk-demo-btn { background: var(--red); border: 0; border-radius: 0; color: #fff; cursor: pointer; display: block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; margin: 0; padding: 15px 26px; text-align: center; text-transform: uppercase; transition: background 0.2s; width: 100%; }
.pubk-demo .pubk-demo-btn:hover { background: var(--red-deep); }
.pubk-demo .pubk-demo-btn:disabled { cursor: default; opacity: 0.7; }
.pubk-demo .pubk-demo-note { color: var(--slate-light); font-size: 12px; line-height: 1.5; margin: 0; }
.pubk-demo .pubk-demo-note a { color: var(--slate); font-size: inherit; font-weight: 600; text-decoration: none; }
.pubk-demo .pubk-demo-note a:hover { color: var(--red); }
.pubk-demo .pubk-demo-status { border: 1px solid var(--line); border-left: 3px solid var(--navy); color: var(--ink); font-size: 14px; line-height: 1.5; margin: 0; padding: 12px 14px; }
.pubk-demo .pubk-demo-status.is-bad { border-left-color: var(--red); }
.pubk-demo .pubk-demo-status.is-ok { border-left-color: var(--gold); }
@media (max-width: 999px) { .pubk-demo .pubk-demo-grid { gap: 48px; } }
@media (max-width: 600px) {
  .pubk-demo .pubk-demo-wrap { padding-bottom: 56px; padding-top: 52px; }
  .pubk-demo .pubk-demo-card { padding: 28px 22px 26px; }
  .pubk-demo .pubk-demo-booking { margin-left: -16px; margin-right: -16px; } /* 0.78.0: the HighLevel calendar needs 297px (narrower, it clips its Fri/Sat columns and the next-month arrow), so on phones it runs 16px into the card's side padding: 328px wide at 390, 298 at 360 */
}
@media (max-width: 359px) { .pubk-demo .pubk-demo-card { border-left: 0; border-right: 0; margin-left: -24px; margin-right: -24px; } } /* 0.78.0: under 360px the card runs edge to edge so the calendar still gets 308px */

/* ---------- 0.54.0: Ask Pub K — Resource Library (/ask-pub-k/resource-library/, patterns/resource-library.php; Patrick's second Claude Design file, 2026-09-15 afternoon set) ----------
   Replaces the 0.46.0 block wholesale (search box, popular chips, Get Started + Coming Soon categories are gone). Navy hero (gold radial; 0.55.0: eyebrow + h1 only — lede + owl removed, Patrick 2026-09-16)
   | cream knowledge base (head, eleven topic chips, question list 1fr | 40 | answer panel 1.3fr — one topic and one answer shown at a time by
   askpubk-pages.js; without JS every panel and answer is on the page) | white video section (head + red Schedule a Demo, five 16:9 cards, inert until the
   videos arrive) | cream Try band. Tokens map 1:1 to the file's rgb values; the file has no phone styles, phones get the site's 52/56 rhythm. */
.pubk-rl-hero { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) var(--navy); color: #fff; }
.pubk-rl-hero > .pubk-container { padding-bottom: 52px; padding-top: 48px; }
.pubk-rl .pubk-rl-hero-row { align-items: center; display: flex; flex-wrap: wrap; gap: 48px; }
.pubk-rl .pubk-rl-hero-copy { flex: 1 1 520px; min-width: 0; }
.pubk-rl .pubk-rl-eyebrow { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.pubk-rl .pubk-rl-h1 { color: #fff; font-family: var(--serif); font-size: clamp(32px, 4vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 780px; text-wrap: pretty; } /* the file's 40px from 1000 up, 32 on phones */
.pubk-rl-kb { background: var(--cream); border-bottom: 1px solid var(--line); }
.pubk-rl-kb > .pubk-container { padding-bottom: 72px; padding-top: 72px; }
.pubk-rl .pubk-rl-head { align-items: flex-end; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 40px; justify-content: space-between; margin-bottom: 40px; padding-bottom: 26px; scroll-margin-top: 56px; }
.pubk-rl .pubk-rl-kicker { color: var(--red); }
.pubk-rl .pubk-rl-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.8vw, 38px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; }
.pubk-rl .pubk-rl-topics { display: flex; flex-wrap: wrap; gap: 8px; }
.pubk-rl .pubk-rl-topic { background: #fff; border: 1px solid var(--line); color: var(--slate); font-family: var(--sans); font-size: 13px; font-weight: 600; line-height: 1.55; padding: 8px 14px; text-decoration: none; transition: border-color 0.2s, color 0.2s, background 0.2s; }
.pubk-rl .pubk-rl-topic:hover { border-color: var(--navy); color: var(--navy); }
.pubk-rl .pubk-rl-topic.is-on, .pubk-rl .pubk-rl-topic.is-on:hover { background: var(--navy); border-color: var(--navy); color: #fff; }
.pubk-rl .pubk-rl-kb-body { margin-top: 32px; }
.pubk-rl .pubk-rl-panel { align-items: flex-start; display: flex; flex-wrap: wrap; gap: 40px; }
.pubk-rl .pubk-rl-panel + .pubk-rl-panel { margin-top: 40px; } /* no-JS: the panels stack */
.pubk-rl .pubk-rl-kb-body.is-js .pubk-rl-panel:not(.is-on) { display: none; }
.pubk-rl .pubk-rl-kb-body.is-js .pubk-rl-panel + .pubk-rl-panel { margin-top: 0; }
.pubk-rl .pubk-rl-qs { display: flex; flex: 1 1 320px; flex-direction: column; min-width: 0; }
.pubk-rl .pubk-rl-q { background: transparent; border-left: 3px solid var(--line); color: var(--navy); display: block; font-family: var(--sans); font-size: 14px; font-weight: 400; line-height: 1.45; padding: 13px 16px; text-decoration: none; transition: color 0.2s; }
.pubk-rl .pubk-rl-q:hover { color: var(--red); }
.pubk-rl .pubk-rl-q.is-on { background: var(--cream); border-left-color: var(--red); font-weight: 600; }
.pubk-rl .pubk-rl-answers { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); box-sizing: border-box; flex: 1.3 1 420px; min-width: 0; padding: 32px 36px; }
.pubk-rl .pubk-rl-answer + .pubk-rl-answer { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 28px; } /* no-JS: the answers stack */
.pubk-rl .pubk-rl-kb-body.is-js .pubk-rl-answer:not(.is-on) { display: none; }
.pubk-rl .pubk-rl-kb-body.is-js .pubk-rl-answer + .pubk-rl-answer { border-top: 0; margin-top: 0; padding-top: 0; }
.pubk-rl .pubk-rl-answer-eyebrow { color: var(--gold-label); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 12px; text-transform: uppercase; }
.pubk-rl .pubk-rl-answer-h3 { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.3; margin: 0 0 16px; }
.pubk-rl .pubk-rl-answer p:not(.pubk-rl-answer-eyebrow) { color: var(--slate); font-size: 15px; line-height: 1.65; margin: 0 0 14px; } /* :not — a plain p rule after the eyebrow rule out-ordered its gold at equal specificity */
.pubk-rl .pubk-rl-answer p:last-child { margin-bottom: 0; }
.pubk-rl .pubk-rl-answer a { color: var(--red); font-weight: 600; text-decoration: none; }
.pubk-rl .pubk-rl-answer a:hover { color: var(--red-deep); text-decoration: underline; }
.pubk-rl-videos-sec { background: var(--paper); }
.pubk-rl-videos-sec > .pubk-container { padding-bottom: 88px; padding-top: 88px; }
.pubk-rl .pubk-rl-btn { background: var(--red); color: #fff; display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 14px 24px; text-decoration: none; text-transform: uppercase; transition: background 0.2s; white-space: nowrap; }
.pubk-rl .pubk-rl-btn:hover, .pubk-rl .pubk-rl-try-btn:hover { background: var(--red-deep); color: #fff; }
.pubk-rl .pubk-rl-videos { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.pubk-rl .pubk-rl-video { background: var(--paper); border: 1px solid var(--line); transition: transform 0.25s, box-shadow 0.25s; }
.pubk-rl .pubk-rl-video.is-playable { cursor: pointer; }
.pubk-rl .pubk-rl-video.is-playable:hover { box-shadow: 0 14px 34px rgba(11, 37, 69, 0.09); transform: translateY(-4px); }
.pubk-rl .pubk-rl-thumb { align-items: center; aspect-ratio: 16 / 9; background: radial-gradient(220px 140px at 85% -20%, rgba(194, 162, 88, 0.35), transparent 70%) var(--navy); display: flex; justify-content: center; position: relative; }
.pubk-rl .pubk-rl-play { align-items: center; border: 1px solid var(--gold-soft); color: var(--gold-soft); display: inline-flex; font-size: 14px; height: 46px; justify-content: center; width: 46px; }
.pubk-rl .pubk-rl-len { background: rgba(255, 255, 255, 0.95); bottom: 10px; color: var(--navy); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; padding: 4px 8px; position: absolute; right: 10px; text-transform: uppercase; }
.pubk-rl .pubk-rl-video-body { padding: 18px 20px 20px; }
.pubk-rl .pubk-rl-video-body h3 { color: var(--ink); font-family: var(--serif); font-size: 19px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 8px; }
.pubk-rl .pubk-rl-video-body p { color: var(--slate); font-size: 13px; line-height: 1.55; margin: 0; }
.pubk-rl-try { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-rl-try > .pubk-container { padding-bottom: 34px; padding-top: 34px; }
.pubk-rl .pubk-rl-try-row { align-items: center; display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; }
.pubk-rl .pubk-rl-try-h2 { color: var(--ink); font-family: var(--serif); font-size: 26px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 6px; }
.pubk-rl .pubk-rl-try-p { color: var(--slate); font-size: 14px; line-height: 1.5; margin: 0; }
.pubk-rl .pubk-rl-try-btn { background: var(--red); color: #fff; display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 13px 22px; text-decoration: none; text-transform: uppercase; transition: background 0.2s; white-space: nowrap; }
.pubk-rl .pubk-apk { vertical-align: -0.42em; }
.pubk-rl .pubk-rl-h1 .pubk-apk { vertical-align: -0.38em; }
.pubk-rl-modal { align-items: center; background: rgba(6, 18, 41, 0.86); display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 1000; }
.pubk-rl-modal-box { max-width: 1100px; position: relative; width: 100%; }
.pubk-rl-modal-frame { aspect-ratio: 16 / 9; background: #000; width: 100%; }
.pubk-rl-modal-frame iframe { border: 0; height: 100%; width: 100%; }
.pubk-rl-modal-close { background: none; border: 0; color: #fff; cursor: pointer; font-size: 32px; line-height: 1; padding: 8px; position: absolute; right: -6px; top: -48px; }
body.pubk-rl-modal-open { overflow: hidden; }
@media (max-width: 600px) {
  .pubk-rl-kb > .pubk-container, .pubk-rl-videos-sec > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-rl .pubk-rl-head { margin-bottom: 28px; padding-bottom: 20px; }
  .pubk-rl .pubk-rl-answers { padding: 24px 20px; }
}

/* ============ 0.53.0 — Annual Review sponsor form (/annual-review-sponsors/sponsor-form/; Patrick's Claude Design file "Pub K Sponsor Form", 2026-09-15) ============
   Gravity Forms renders the form (gravity-theme markup); functions.php wraps each design card in .pubk-sf-card via gform_field_container.
   Everything here is scoped to .pubk-sponsor-form so no other form or page changes. */
.pubk-sponsor-form { --sf-line: var(--line); --sf-slate: #3D4F68; --sf-muted: #7C8BA3; }
/* hero */
.pubk-sponsor-form .pubk-sf-hero { background: var(--navy) radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) no-repeat; color: #fff; }
.pubk-sponsor-form .pubk-sf-hero > .pubk-container { box-sizing: border-box; padding-bottom: 76px; padding-top: 72px; }
.pubk-sponsor-form .pubk-sf-hero-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-sponsor-form .pubk-sf-hero-copy { flex: 1 1 520px; min-width: 0; }
.pubk-sponsor-form .pubk-sf-eyebrow { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 16px; text-transform: uppercase; }
.pubk-sponsor-form .pubk-sf-h1 { color: #fff; font-family: var(--serif); font-size: 46px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 760px; text-wrap: pretty; }
.pubk-sponsor-form .pubk-sf-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-sponsor-form .pubk-sf-hero-lede { color: #C8D2E0; font-size: 17px; line-height: 1.6; margin: 22px 0 0; max-width: 640px; }
.pubk-sponsor-form .pubk-sf-hero-logo { display: flex; flex: 0 1 320px; justify-content: center; min-width: 0; }
.pubk-sponsor-form .pubk-sf-hero-logo img { display: block; height: auto; max-width: 300px; width: 100%; }
/* body */
.pubk-sponsor-form .pubk-sf-body { background: var(--cream); border-image: linear-gradient(90deg, var(--navy) 33.3%, var(--red) 33.3% 66.6%, var(--gold) 66.6%) 1; border-top: 3px solid; }
.pubk-sponsor-form .pubk-sf-wrap { margin: 0 auto; max-width: 880px; padding: 72px 32px 96px; }
.pubk-sponsor-form .pubk-sf-wrap p:empty { display: none; }
/* Gravity Forms shell */
.pubk-sponsor-form .gform_wrapper.gravity-theme { font-family: var(--sans); }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_fields { grid-column-gap: 0; grid-row-gap: 40px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_heading { display: none; }
/* cards: one grid item each, laying out their own fields on the 12-column grid the ready classes expect */
.pubk-sponsor-form .pubk-sf-card { background: var(--paper); border: 1px solid var(--sf-line); border-top: 3px solid var(--navy); display: grid; grid-column: 1 / -1; grid-template-columns: repeat(12, 1fr); column-gap: 20px; row-gap: 20px; min-width: 0; padding: 40px; }
.pubk-sponsor-form .pubk-sf-c2 { border-top-color: var(--gold); }
.pubk-sponsor-form .pubk-sf-c3 { border-top-color: var(--red); }
.pubk-sponsor-form .pubk-sf-c3:not(:has(.gfield:not([style*="display: none"]):not(.pubk-sf-anchor-field))) { display: none; }
.pubk-sponsor-form .pubk-sf-c4 { background: var(--navy) radial-gradient(500px 300px at 92% 110%, rgba(194, 162, 88, 0.28), transparent 70%) no-repeat; border: 0; color: #fff; padding: 40px 40px 0; row-gap: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-card .gfield { grid-column: span 12; min-width: 0; }
@media (min-width: 641px) {
  .pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-card .gfield--width-half { grid-column: span 6; }
  .pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-card .gfield--width-third { grid-column: span 4; }
}
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield--type-html { margin: 0; }
.pubk-sponsor-form .pubk-sf-anchor-field { display: none !important; }
/* headings + copy inside cards */
.pubk-sponsor-form .pubk-sf-h2 { color: var(--ink); font-family: var(--serif); font-size: 24px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 6px; }
.pubk-sponsor-form .pubk-sf-p { color: var(--sf-slate); font-size: 14px; line-height: 1.55; margin: 0; }
.pubk-sponsor-form .pubk-sf-head .pubk-sf-p { margin: 0 0 6px; }
.pubk-sponsor-form .pubk-sf-head .pubk-sf-p-tight { margin: 0 0 8px; }
.pubk-sponsor-form .pubk-sf-head .pubk-sf-p-last { margin: 0; }
.pubk-sponsor-form .pubk-sf-sub { border-top: 1px solid var(--sf-line); color: var(--gold-label); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin-top: 10px; padding-top: 28px; text-transform: uppercase; }
.pubk-sponsor-form .pubk-sf-sub span { color: var(--sf-muted); letter-spacing: 0.1em; }
.pubk-sponsor-form .pubk-sf-sub-red { color: var(--red); }
.pubk-sponsor-form .pubk-sf-sub-tm { border-top: 0; margin-top: 2px; max-width: 560px; padding-top: 0; }
.pubk-sponsor-form .pubk-sf-eyebrow-gold { color: var(--gold-label); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; text-transform: uppercase; }
.pubk-sponsor-form .pubk-sf-eyebrow-gold span { color: var(--gold-label); }
/* labels + inputs (the design's .pubk-label / .pubk-input) */
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield_label { color: var(--sf-slate); display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.4; margin: 0 0 7px; padding: 0; text-transform: uppercase; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield .gfield_label .gfield_required, .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield .gfield_required { display: none; } /* GF's own .gfield_label .gfield_required rule loads after the theme */
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield--label-hidden .gfield_label, .pubk-sponsor-form .gform_wrapper.gravity-theme .hidden_label .gfield_label { clip: rect(1px, 1px, 1px, 1px); height: 1px; overflow: hidden; position: absolute; width: 1px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .ginput_container { margin: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input[type="text"], .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input[type="email"], .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input[type="tel"], .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input[type="url"], .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield select { appearance: none; -webkit-appearance: none; background: #fff; border: 1px solid var(--sf-line); border-radius: 0; box-shadow: none; box-sizing: border-box; color: var(--navy); font-family: var(--sans); font-size: 15px; height: auto; line-height: 1.3; margin: 0; min-height: 0; outline: none; padding: 12px 14px; transition: border-color 0.2s ease; width: 100%; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input:focus, .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield select:focus { border-color: var(--navy); box-shadow: none; outline: 2px solid transparent; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield select { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%237c8ba3'/></svg>"); background-position: right 14px center; background-repeat: no-repeat; padding-right: 36px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield input::placeholder { color: var(--sf-muted); opacity: 1; }
/* level choices (product radio): bordered rows, selected = navy border on cream */
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gfield_radio { display: flex; flex-direction: column; gap: 10px; max-width: 560px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice { align-items: center; background: #fff; border: 1px solid var(--sf-line); display: flex; gap: 12px; margin: 0; padding: 12px 14px; position: relative; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice:has(input:checked) { background: var(--cream); border-color: var(--navy); }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice input[type="radio"] { accent-color: var(--red); flex: 0 0 16px; height: 16px; margin: 0; width: 16px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice label { align-items: center; color: var(--ink); cursor: pointer; display: flex; flex: 1 1 auto; font-family: var(--sans); font-size: 14px; font-weight: 600; gap: 12px; line-height: 1.3; margin: 0; max-width: none; min-width: 0; padding: 0; }
.pubk-sponsor-form .pubk-sf-lv-name { flex: 1 1 auto; }
.pubk-sponsor-form .pubk-sf-lv-slots { color: var(--sf-muted); font-size: 12px; font-weight: 400; }
.pubk-sponsor-form .pubk-sf-lv-price { font-family: var(--serif); font-size: 16px; font-weight: 400; }
.pubk-sponsor-form .pubk-sf-lv-price.is-platinum { color: #6E7B8B; }
.pubk-sponsor-form .pubk-sf-lv-price.is-diamond { color: #5A7FA8; }
.pubk-sponsor-form .pubk-sf-lv-price.is-gold { color: var(--gold); }
.pubk-sponsor-form .pubk-sf-lv-price.is-silver { color: #8A8F98; }
.pubk-sponsor-form .pubk-sf-lv-price.is-bronze { color: #A66A2E; }
.pubk-sponsor-form .pubk-sf-lv-price.is-specialty { color: var(--sf-muted); }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice:nth-child(6) { margin-top: 46px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice:nth-child(6)::before { color: var(--gold-label); content: "Specialty Sponsorships (non-speaking)"; font-size: 11px; font-weight: 700; left: 0; letter-spacing: 0.22em; line-height: 1.4; position: absolute; text-transform: uppercase; top: -32px; white-space: nowrap; }
/* benefits summary */
.pubk-sponsor-form .pubk-sf-benefits { background: var(--cream); border: 1px solid var(--sf-line); margin-top: 4px; padding: 22px 26px 20px; }
.pubk-sponsor-form .pubk-sf-benefits-head { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 12px; }
.pubk-sponsor-form .pubk-sf-benefits-head a { color: var(--red); font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.pubk-sponsor-form .pubk-sf-benefits-head a:hover { text-decoration: underline; }
.pubk-sponsor-form .pubk-sf-benefits-list { column-gap: 40px; columns: 260px 2; }
.pubk-sponsor-form .pubk-sf-ben { break-inside: avoid; color: var(--sf-slate); display: flex; font-size: 13px; gap: 10px; line-height: 1.45; padding: 5px 0; }
.pubk-sponsor-form .pubk-sf-ben-check { color: var(--gold); flex: 0 0 auto; }
.pubk-sponsor-form .pubk-sf-note { background: var(--cream); border-left: 3px solid var(--gold); color: var(--sf-slate); font-size: 13px; line-height: 1.55; margin: 2px 0 0; padding: 14px 18px; }
.pubk-sponsor-form .pubk-sf-panels-label { color: var(--navy); font-size: 13px; font-weight: 700; margin: 4px 0 -6px; }
.pubk-sponsor-form .pubk-sf-panels-label span { color: var(--sf-muted); font-weight: 400; }
/* speaker blocks: the eyebrow sits on a rule */
.pubk-sponsor-form .pubk-sf-c3 .pubk-sf-sub { margin-top: 10px; padding-top: 28px; }
/* navy total block */
.pubk-sponsor-form .pubk-sf-h2-navy { color: #fff; font-size: 26px; font-weight: 380; margin: 0 0 22px; }
.pubk-sponsor-form .pubk-sf-h2-navy em { color: var(--gold-soft); font-style: italic; }
.pubk-sponsor-form .pubk-sf-line { border-bottom: 1px solid rgba(255, 255, 255, 0.15); color: #C8D2E0; display: flex; font-size: 15px; gap: 20px; justify-content: space-between; margin-bottom: 12px; padding-bottom: 12px; }
.pubk-sponsor-form .pubk-sf-line span:last-child { color: #fff; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-total { align-items: baseline; display: flex; gap: 20px; justify-content: space-between; margin: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-total .gfield_label { color: #fff; font-family: var(--serif); font-size: 24px; font-weight: 400; letter-spacing: 0; margin: 0; text-transform: none; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-total .ginput_container_total { margin: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-total .ginput_total, .pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-total input.ginput_total { background: transparent; border: 0; box-shadow: none; color: var(--gold-soft); font-family: var(--serif); font-size: 24px; height: auto; line-height: 1.2; margin: 0; min-height: 0; padding: 0; text-align: right; width: auto; }
.pubk-sponsor-form .pubk-sf-pay-rule { border-top: 1px solid rgba(255, 255, 255, 0.15); margin-top: 28px; padding-top: 26px; }
.pubk-sponsor-form .pubk-sf-pay-head { color: var(--gold-soft); margin-bottom: 14px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-pay .gfield_radio { display: flex; flex-wrap: wrap; gap: 24px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-pay .gchoice { align-items: center; display: flex; gap: 10px; margin: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-pay .gchoice input[type="radio"] { accent-color: var(--red); height: 16px; margin: 0; width: 16px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-pay .gchoice label { color: #fff; cursor: pointer; font-size: 14px; font-weight: 400; margin: 0; max-width: none; padding: 0; white-space: nowrap; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer { background: var(--navy); margin: 0; padding: 28px 40px 40px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer .gform_button, .pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer .button { background: var(--red); border: 0; border-radius: 0; color: #fff; cursor: pointer; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; margin: 0; padding: 16px 34px; text-transform: uppercase; transition: background 0.2s ease; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer .gform_button:hover, .pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer .button:hover { background: var(--red-deep); }
/* validation */
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_submission_error { background: #fff; border: 1px solid var(--sf-line); border-left: 3px solid var(--red); color: var(--red-deep); font-family: var(--sans); font-size: 14px; font-weight: 600; line-height: 1.5; margin: 0 0 28px; padding: 14px 18px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield_error input, .pubk-sponsor-form .gform_wrapper.gravity-theme .gfield_error select { border-color: var(--red); }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield_error .gfield_label { color: var(--red-deep); }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gfield_validation_message, .pubk-sponsor-form .gform_wrapper.gravity-theme .validation_message { background: transparent; border: 0; color: var(--red-deep); font-size: 12px; font-weight: 600; margin: 6px 0 0; padding: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors { background: #fff; border: 1px solid var(--sf-line); border-left: 3px solid var(--red); border-radius: 0; box-shadow: none; margin: 0 0 28px; max-width: none; padding: 16px 20px; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 { color: var(--red-deep); font-family: var(--sans); font-size: 14px; font-weight: 600; line-height: 1.5; margin: 0; padding: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 .gform-icon { display: none; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors > h2 + ol, .pubk-sponsor-form .gform_wrapper.gravity-theme .validation_list { color: var(--sf-slate); font-size: 13px; line-height: 1.6; margin: 8px 0 0 18px; padding: 0; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors .gform_validation_error_link { color: var(--red-deep); font-weight: 600; text-decoration: underline; }
.pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors ~ .gform_submission_error, .pubk-sponsor-form .gform_wrapper.gravity-theme .gform_validation_errors + form .gform_submission_error { display: none; }
/* confirmation card (replaces the form after submit) */
.pubk-sponsor-form .pubk-sf-done { background: var(--paper); border: 1px solid var(--sf-line); border-top: 3px solid var(--gold); padding: 56px 48px; text-align: center; }
.pubk-sponsor-form .pubk-sf-done .pubk-sf-eyebrow-gold { margin-bottom: 14px; }
.pubk-sponsor-form .pubk-sf-done-h2 { color: var(--ink); font-family: var(--serif); font-size: 32px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 12px; }
.pubk-sponsor-form .pubk-sf-done-h2 em { color: var(--gold-accessible); font-style: italic; } /* 0.72.0: display type (the 32px serif heading tail on the post-submit card), not a small label — stays on the AA gold (Palino cross-review) */
.pubk-sponsor-form .pubk-sf-done p { color: var(--sf-slate); font-size: 15px; line-height: 1.6; margin: 0; }
.pubk-sponsor-form .pubk-sf-done a { color: var(--red); font-weight: 600; }
/* tablets + phones */
@media (max-width: 1279px) { .pubk-sponsor-form .pubk-sf-hero > .pubk-container { padding-left: 32px; padding-right: 32px; } }
@media (max-width: 999px) { .pubk-sponsor-form .pubk-sf-hero > .pubk-container { padding-left: 24px; padding-right: 24px; } .pubk-sponsor-form .pubk-sf-h1 { font-size: 38px; } }
@media (max-width: 640px) {
  .pubk-sponsor-form .pubk-sf-hero > .pubk-container { padding-bottom: 52px; padding-top: 52px; }
  .pubk-sponsor-form .pubk-sf-hero-grid { gap: 32px; }
  .pubk-sponsor-form .pubk-sf-h1 { font-size: 32px; }
  .pubk-sponsor-form .pubk-sf-hero-logo { flex-basis: 100%; }
  .pubk-sponsor-form .pubk-sf-wrap { padding: 44px 20px 64px; }
  .pubk-sponsor-form .pubk-sf-card { padding: 28px 20px; }
  .pubk-sponsor-form .pubk-sf-c4 { padding: 28px 20px 0; }
  .pubk-sponsor-form .gform_wrapper.gravity-theme .gform_footer { padding: 24px 20px 28px; }
  .pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice { flex-wrap: wrap; }
  .pubk-sponsor-form .gform_wrapper.gravity-theme .pubk-sf-levels .gchoice:nth-child(6)::before { white-space: normal; }
  .pubk-sponsor-form .pubk-sf-benefits { padding: 18px 18px 14px; }
  .pubk-sponsor-form .pubk-sf-benefits-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .pubk-sponsor-form .pubk-sf-done { padding: 40px 22px; }
  .pubk-sponsor-form .pubk-sf-done-h2 { font-size: 26px; }
}

/* ============================================================================
   0.60.0 (Patrick 2026-09-16 part 3, Lane HOME) — homepage + nav.
   Ask Pub K section: the Ask Pub K page's animated product card (.pubk-askp-* markup inside .pubk-home-askp, same ask-pubk.js
   typewriter) replaces the navy prompt panel; Briefs cards: the mark is the card link, the cadence is the card's number and the
   same stat is enlarged wherever it appears; membership stats strip under the two columns. Community nav parent = label (header.html).
   ============================================================================ */
/* Ask Pub K product card on the 42% column. Since 0.75.0 the card itself is styled by the /ask-pub-k/ card rules (0.62.0 block, shared
   selectors: Patrick 2026-09-23 "update to the animation that exists on /ask-pub-k/"); this keeps only the column fit and the caption. */
.pubk-home-askp { width: 100%; }
.pubk-home-askp *, .pubk-home-askp *::before, .pubk-home-askp *::after { box-sizing: border-box; }
.pubk-home-askp .pubk-askp-caption { color: var(--slate); font-size: 13px; line-height: 1.5; margin: 14px 0 0 !important; text-align: center; }
@media (prefers-reduced-motion: reduce) { .pubk-ask .pubk-askp-caret, .pubk-home-askp .pubk-askp-caret { animation: none; } }
@media (min-width: 782px) and (max-width: 999px) {
  .pubk-home-ask .wp-block-columns { flex-wrap: wrap !important; }
  .pubk-home-ask .wp-block-columns > .wp-block-column { flex-basis: 100% !important; }
  .wp-block-column > .pubk-home-askp { margin-top: 32px; }
}
/* Briefs cards: the mark carries the card link (stretched over the card, the foot stays above it); the cadence is the card's number */
.pubk-home-briefs .pubk-card .wp-block-image a.pubk-card-link { display: block; }
.pubk-home-briefs .pubk-card .wp-block-image a.pubk-card-link::after { content: ""; inset: 0; position: absolute; }
.pubk-home-briefs .pubk-card-cadence { color: var(--navy); font-size: 16px; font-weight: 700; }
/* The same issue-count stat everywhere else it appears */
.pubk-briefs .pubk-bf-card-k { font-size: 15px; }
.pubk-publications .pubk-publications-frequency { font-size: 14px; }
.pubk-brief-hero-cadence b { font-size: 21px; }
/* Membership stats strip under the two columns */
.pubk-home-member .pubk-home-stats { border-top: 1px solid var(--line); display: grid; gap: 28px 32px; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 56px 0 0; padding: 40px 0 0; }
.pubk-home-member .pubk-home-stats li { margin: 0; padding: 0; }
.pubk-home-member .pubk-home-stat-num { color: var(--navy); display: block; font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-style: italic; font-weight: 380; letter-spacing: -0.02em; line-height: 1; }
.pubk-home-member .pubk-home-stat-label { color: var(--gold-label); display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.4; margin-top: 12px; text-transform: uppercase; }
@media (max-width: 999px) { .pubk-home-member .pubk-home-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px) {
  .wp-block-column > .pubk-home-askp { margin-top: 32px; }
  .pubk-home-member .pubk-home-stats { gap: 24px; margin-top: 40px; padding-top: 32px; }
}
@media (max-width: 640px) {
  .pubk-home-member .pubk-home-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pubk-home-member .pubk-home-stats li:last-child { grid-column: 1 / -1; }
}

/* === part3 lane BRIEFS (Palino) === */
/* /briefs/ hero: the sub-line keeps .pubk-bf-hero-lede; the body paragraph (.pubk-bf-hero-body; -copy is the existing wrapper div) is one step smaller, its four links underlined in gold on the navy. */
.pubk-briefs .pubk-bf-hero-lede { margin-bottom: 0; }
.pubk-briefs .pubk-bf-hero-body { color: var(--on-navy-body); font-size: 15px; line-height: 1.65; margin: 14px 0 34px; max-width: 560px; }
.pubk-briefs .pubk-bf-hero-body a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold-soft); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pubk-briefs .pubk-bf-hero-body a:hover, .pubk-briefs .pubk-bf-hero-body a:focus { color: var(--gold-soft); }
/* Tier cards without their lists: the button rides the bottom of the stretched card so all four sit on one baseline. */
.pubk-briefs .pubk-bf-tier .pubk-bf-tier-btn { margin-top: auto; }
.pubk-briefs .pubk-bf-tier .pubk-bf-price { margin-bottom: 22px; }
/* Get in Touch: the two action lines' links. */
.pubk-briefs .pubk-bf-contact-lede a { color: var(--navy); font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pubk-briefs .pubk-bf-contact-lede a:hover, .pubk-briefs .pubk-bf-contact-lede a:focus { color: var(--red); }
/* /team/: bigger heads, still left-aligned and circular (was 120px). */
.pubk-team-photo { height: 176px; width: 176px; }
@media (max-width: 781px) { .pubk-team-photo { height: 144px; width: 144px; } }
/* === /part3 lane BRIEFS === */

/* === part3 lane MEMBERSHIP (Palino) === */
/* /membership/ hero: the second paragraph sits a step under the lede (16px vs 18px); the lede gives up most of its bottom margin to it. */
.pubk-about .pubk-abt-hero-lede { margin-bottom: 14px; }
.pubk-about .pubk-abt-hero-sub { color: var(--on-navy-body); font-size: 16px; line-height: 1.6; margin: 0 0 34px; max-width: 640px; }
/* Stats band moved under the navy hero: cream, navy numbers, accessible-gold labels, hairline dividers; the 3px tricolour rule on top stays; a hairline on the bottom edge against the paper about section. */
.pubk-about .pubk-abt-stats { background: var(--cream); border-bottom: 1px solid var(--line); color: var(--navy); }
.pubk-about .pubk-abt-stat { border-right-color: var(--line); }
.pubk-about .pubk-abt-stat-num { color: var(--navy); }
.pubk-about .pubk-abt-stat-label { color: var(--gold-label); }
@media (max-width: 600px) { .pubk-about .pubk-abt-stat { border-bottom-color: var(--line); } }
/* Join section: the line to the left of Become a Member (it wraps to two lines beside the button where the column is narrow); stacks with the line above the button under 640px. */
.pubk-about .pubk-abt-join-cta { align-items: center; display: flex; flex-wrap: wrap; gap: 16px 28px; }
.pubk-about .pubk-abt-join-copy .pubk-abt-join-cta .pubk-abt-join-line { color: var(--navy); flex: 1 1 240px; font-family: var(--serif); font-size: 20px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.3; margin: 0; max-width: 460px; text-wrap: pretty; }
.pubk-about .pubk-abt-join-cta .pubk-abt-btn { flex: 0 0 auto; }
@media (max-width: 640px) { .pubk-about .pubk-abt-join-cta { align-items: flex-start; flex-direction: column; } }
/* === /part3 lane MEMBERSHIP === */

/* === part3 lane BENCHMARKING (Gibson) === */
.pubk-bm-card-link { color: var(--red); font-family: var(--sans); font-size: 11px !important; font-weight: 700; letter-spacing: 0.18em; margin: 0 !important; text-transform: uppercase; }
.pubk-bm-card-link a { color: var(--red); text-decoration: none; }
.pubk-bm-card-link a:hover { color: var(--red-deep); }
.pubk-bm-card h3 a { color: inherit; text-decoration: none; }
.pubk-bm-card h3 a:hover { color: var(--navy); }
.pubk-bm-card-tag-soon { color: var(--red) !important; }
/* === /part3 lane BENCHMARKING === */

/* 0.60.1 (Patrick 2026-09-17 03:47Z): the /team/ portraits are centred in their cards (0.60.0 made them 176px but left them flush left). */
.pubk-team-photo { margin-left: auto; margin-right: auto; }

/* ============================================================================
   0.61.0 (Patrick 2026-09-17 04:28Z batch, Lane HOME): homepage Subscribe links red; hairlines between the four Ask Pub K feature boxes
   (a 1px rule centred in the 32px gap via ::before on boxes 2-4; odd boxes lose it at the 2-column width, all lose it at one column).
   ============================================================================ */
.pubk-home-briefs .pubk-card-sub a { color: var(--red); }
.pubk-home-briefs .pubk-card-sub a:hover, .pubk-home-briefs .pubk-card-sub a:focus { color: var(--red-deep); }
.pubk-ask-functions > .wp-block-group { position: relative; }
.pubk-ask-functions > .wp-block-group + .wp-block-group::before { background: var(--line); bottom: 0; content: ""; left: -16px; position: absolute; top: 0; width: 1px; }
/* The odd/all drops below assume the grid's 4 -> 2 -> 1 column ladder (999px / 600px); revisit if a 3-column step is ever added. */
@media (max-width: 999px) { .pubk-ask-functions > .wp-block-group:nth-child(odd)::before { content: none; } }
@media (max-width: 600px) { .pubk-ask-functions > .wp-block-group + .wp-block-group::before { content: none; } }

/* === round2 lane BRIEFS-2 (Palino) === */
/* /briefs/ hero cards: the cadence sits centred under the mark, 13px (the 0.60.0 sweep had it at 15px), in the Established 1999 gold instead of the AA dark gold. */
.pubk-briefs .pubk-bf-card-k { align-self: center; color: var(--gold-label); font-size: 13px; text-align: center; }
/* Free $0 bar, inverse: navy under the 3px gold rule; white label + price; list on-navy with gold-soft stars; the Subscribe Free button white on navy (the tier cards' navy buttons are outside this scope). */
.pubk-briefs .pubk-bf-free { background: var(--navy); border-color: var(--navy); border-top-color: var(--gold); }
.pubk-briefs .pubk-bf-free .pubk-bf-free-label, .pubk-briefs .pubk-bf-free .pubk-bf-free-price { color: #fff; }
.pubk-briefs .pubk-bf-free .pubk-bf-free-list { color: var(--on-navy-body); }
.pubk-briefs .pubk-bf-free .pubk-bf-free-list strong { color: #fff; }
.pubk-briefs .pubk-bf-free .pubk-bf-free-list li::before { color: var(--gold-soft); }
.pubk-briefs .pubk-bf-free .pubk-bf-btn-navy { background: #fff; color: var(--navy); }
.pubk-briefs .pubk-bf-free .pubk-bf-btn-navy:hover, .pubk-briefs .pubk-bf-free .pubk-bf-btn-navy:focus { background: var(--cream); color: var(--navy); }
/* Ready to join band, inverse: navy; h2 white with the em in gold-soft; copy on-navy; the red button stays; the outline button goes white. Padding unchanged. */
.pubk-briefs .pubk-bf-join { background: var(--navy); border-top-color: var(--navy); }
.pubk-briefs .pubk-bf-join-h2 { color: #fff; }
.pubk-briefs .pubk-bf-join-h2 em { color: var(--gold-soft); }
.pubk-briefs .pubk-bf-join-copy p { color: var(--on-navy-body); }
.pubk-briefs .pubk-bf-join .pubk-bf-btn-outline { border-color: #fff; color: #fff; }
.pubk-briefs .pubk-bf-join .pubk-bf-btn-outline:hover, .pubk-briefs .pubk-bf-join .pubk-bf-btn-outline:focus { background: #fff; color: var(--navy); }
/* === /round2 lane BRIEFS-2 === */

/* ============================================================================
   0.61.1 (Amanda via Patrick 2026-09-17 13:25Z): /weekly/ pitch column + white card restored around the HighLevel form (the 0.43.0 rules that 0.52.0
   dropped, minus the retired placeholder-form rules), once Saurabh's embed carries only the form fields.
   ============================================================================ */
/* ---------- Pub K Weekly registration (/weekly/) — 0.43.0: Patrick's Claude Design file "Weekly Registration" 2026-09-15 (navy pitch + white registration card) ---------- */
.pubk-wk .pubk-wk-ghost { bottom: -58px; color: rgba(255, 255, 255, 0.03); font-family: var(--wp--preset--font-family--serif); font-size: 200px; font-style: italic; left: 0; line-height: 1; margin: 0 !important; max-width: none !important; pointer-events: none; position: absolute; right: 0; user-select: none; white-space: nowrap; }
.pubk-wk .pubk-wk-grid { position: relative; z-index: 1; }
.pubk-wk .pubk-eyebrow { margin-bottom: 22px; }
.pubk-wk .pubk-h-hero { font-size: clamp(40px, 4.8vw, 62px) !important; letter-spacing: -0.025em; line-height: 1.04; margin: 0 0 20px !important; text-wrap: wrap; } /* plain wrap = the file's render ("Register for Pub K" / "Weekly."); pretty pulled "K" onto the second line */
.pubk-wk .pubk-h-hero em { color: var(--gold-soft); }
.pubk-wk .pubk-hero-lede { color: var(--on-navy-body); font-size: 17px !important; line-height: 1.7; margin: 0 0 32px !important; max-width: 520px; }
.pubk-wk .pubk-wk-perks { border-top: 1px solid rgba(255, 255, 255, 0.14); list-style: none; margin: 0 !important; max-width: 480px; padding: 24px 0 0; }
.pubk-wk .pubk-wk-perks li { color: var(--on-navy-body); display: flex; font-size: 14.5px; gap: 14px; line-height: 1.5; margin: 0; padding: 9px 0; }
.pubk-wk .pubk-wk-perks li::before { color: var(--gold-soft); content: "→"; flex: 0 0 auto; }
/* The card = the file's .reg-card: white, tricolour top rule, deep shadow, 34/36 padding. Everything inside is scoped under .pubk-wk so the on-dark element rules cannot reach in. */
.pubk-wk .pubk-wk-card { background: var(--paper); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4); color: var(--ink); }
.pubk-wk .pubk-wk-form-top { background: linear-gradient(90deg, var(--navy) 0 33.3%, var(--red) 33.3% 66.6%, var(--gold) 66.6% 100%); height: 4px; }
.pubk-wk .pubk-wk-form-body { padding: 34px 36px 32px; }
.pubk-wk .pubk-wk-embed { min-height: 788px; }
.pubk-wk .pubk-wk-embed iframe { display: block; width: 100%; min-height: 788px; border: 0; }
.pubk-wk .pubk-wk-note { color: var(--gray); font-size: 12px; line-height: 1.5; margin: 14px 0 0 !important; text-align: center; }
.pubk-wk .pubk-wk-card a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.pubk-wk .pubk-wk-card a:hover { color: var(--red); }
@media (max-width: 1080px) {
  .pubk-wk .pubk-wk-grid { flex-wrap: wrap !important; }
  .pubk-wk .pubk-wk-grid > .wp-block-column { flex-basis: 100% !important; }
  .pubk-wk .pubk-wk-side { margin-top: 48px; }
}
@media (max-width: 600px) { /* section padding on phones = the site rule for 80/88 sections (52/56), not the file's desktop-only values */
  .pubk-wk .pubk-wk-form-body { padding: 28px 22px 26px; }
  .pubk-wk .pubk-wk-ghost { bottom: -34px; font-size: 120px; }
}

/* === 0.72.0 membership re-sequence (Robert Nichols "Final -- Membership" 2026-09-19 via Patrick 2026-09-21; data/2026-09-21-membership-robert/) === */
/* hero: the product-list paragraph is gone, so the lede takes back its 36px before the button (the part3 lane had shortened it to 14px to seat that paragraph). */
.pubk-about .pubk-abt-hero-lede { margin-bottom: 36px; }
/* the stats band now sits between the paper about band and the cream Why Pub K section: one hairline between them, not two. */
.pubk-about .pubk-abt-stats + .pubk-abt-why { border-top: 0; }
/* Why Pub K = the former #join grid (copy + the Membership Promise) with the five benefit rows under a gold label. */
.pubk-about .pubk-abt-benefits { border-top: 1px solid var(--line); margin-top: 48px; padding-top: 40px; }
.pubk-about .pubk-abt-benefits .pubk-abt-label-gold { margin-bottom: 4px; }
/* How To Join = the former navy History band (#join lives here now) with the include card; the body paragraph and the join line are type on navy. */
.pubk-about .pubk-abt-howjoin .pubk-abt-history-lede { margin-bottom: 20px; }
.pubk-about .pubk-abt-howjoin-body { color: var(--on-navy-body); font-size: 16px; line-height: 1.65; margin: 0 0 28px; max-width: 560px; }
.pubk-about .pubk-abt-howjoin .pubk-abt-join-line { color: #fff; flex: 1 1 240px; font-family: var(--serif); font-size: 20px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.3; margin: 0; max-width: 460px; text-wrap: pretty; }
/* Our Members & Sponsors: the community-spans line under the heading, inside the ruled head. */
.pubk-about .pubk-abt-head-lede { color: var(--slate); font-size: 17px; line-height: 1.6; margin: 18px 0 0; max-width: 760px; }
.pubk-about .pubk-abt-head-lede strong { color: var(--navy); font-weight: 600; }
/* the 28px under the copy column's last paragraph was seating the CTA that moved to How To Join; without it the Membership Promise centres on the text (Palino cross-review). */
.pubk-about .pubk-abt-why .pubk-abt-join-copy p:last-of-type { margin-bottom: 0; }
@media (max-width: 600px) { .pubk-about .pubk-abt-benefits { margin-top: 36px; padding-top: 28px; } }
/* === /0.72.0 === */

/* === 0.74.0 === sprint-audit fixes (Patrick 2026-09-22, thread 28f92014) */
/* Phone menu: Access / Subscribe stay red like the desktop dropdown (Robert 2026-09-18). The drawer is navy-deep, where the brand red (#C8102E)
   reads at 3.2:1, so the drawer uses the same hue lifted to 5:1 (#F0425E). Beats the drawer's !important gold on sub-items by one class. */
@media (max-width: 999px) {
  .pubk-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .pubk-nav-access > .wp-block-navigation-item__content { color: #F0425E !important; }
}
/* === /0.74.0 === */

/* === 0.76.0 === Training Videos (Amanda via Patrick 2026-09-23, PK thread 31fbc442; data/2026-09-23-training-videos/)
   Library cards: a published video's card is a link to its page, with the cover image (or the Vimeo thumbnail) under the play tile.
   Video pages (/ask-pub-k/resource-library/videos/<slug>/, [pubk_training_video] inside .pubk-rl.pubk-tv): the "Video Detail" view of the
   2026-09-15 Resource Library design — breadcrumb, head (eyebrow, h1, lede, pills), 16:9 player + overview | What You'll Learn, Example Prompt
   (Copy), Up Next — then the library's cream Try band. Tokens map 1:1 to the file's values (its gold -> the one gold); phones get the site's rhythm. */
/* auto-fill, not auto-fit: while only one to three videos are published, each card keeps its column width instead of stretching across the row
   (identical to auto-fit once a row is full, so the five placeholders lay out exactly as before) */
.pubk-rl .pubk-rl-videos { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.pubk-rl a.pubk-rl-video { color: inherit; display: block; text-decoration: none; }
.pubk-rl a.pubk-rl-video:hover { box-shadow: 0 14px 34px rgba(11, 37, 69, 0.09); transform: translateY(-4px); }
.pubk-rl a.pubk-rl-video:hover h3 { color: var(--red); }
.pubk-rl a.pubk-rl-video:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.pubk-rl .pubk-rl-thumb.has-img { overflow: hidden; }
.pubk-rl .pubk-rl-thumb-img { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.pubk-rl .pubk-rl-thumb.has-img .pubk-rl-play { background: rgba(11, 37, 69, 0.72); position: relative; }
.pubk-tv *, .pubk-tv *::before, .pubk-tv *::after { box-sizing: border-box; }
.pubk-tv-sec { background: var(--paper); }
.pubk-tv-sec > .pubk-container { padding-bottom: 88px; padding-top: 44px; }
.pubk-tv .pubk-tv-crumb { color: var(--slate-light); font-family: var(--sans); font-size: 12px; line-height: 1.5; margin-bottom: 24px; }
.pubk-tv .pubk-tv-crumb a { color: var(--slate); text-decoration: none; }
.pubk-tv .pubk-tv-crumb a:hover { color: var(--red); }
.pubk-tv .pubk-tv-crumb-here { color: var(--red); }
.pubk-tv .pubk-tv-head { margin-bottom: 28px; max-width: 800px; }
.pubk-tv .pubk-tv-eyebrow { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 12px; text-transform: uppercase; }
.pubk-tv .pubk-tv-h1 { color: var(--ink); font-family: var(--serif); font-size: clamp(32px, 4.2vw, 42px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.12; margin: 0 0 14px; text-wrap: pretty; }
.pubk-tv .pubk-tv-lede { color: var(--slate); font-family: var(--sans); font-size: 16px; line-height: 1.6; margin: 0 0 16px; }
.pubk-tv .pubk-tv-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pubk-tv .pubk-tv-pill { border: 1px solid var(--line); color: var(--slate-light); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.4; padding: 4px 8px; text-transform: uppercase; }
.pubk-tv .pubk-tv-grid { align-items: flex-start; display: flex; flex-wrap: wrap; gap: 40px; }
.pubk-tv .pubk-tv-main { flex: 2 1 520px; min-width: 0; }
.pubk-tv .pubk-tv-side { display: flex; flex: 1 1 320px; flex-direction: column; gap: 24px; min-width: 0; }
.pubk-tv .pubk-tv-player { align-items: center; aspect-ratio: 16 / 9; background: radial-gradient(500px 300px at 88% -15%, rgba(194, 162, 88, 0.32), transparent 70%) var(--navy); border: 1px solid var(--line); display: flex; justify-content: center; position: relative; width: 100%; }
.pubk-tv .pubk-tv-player iframe, .pubk-tv .pubk-tv-player video { border: 0; display: block; height: 100%; inset: 0; position: absolute; width: 100%; }
.pubk-tv .pubk-tv-player video { background: #000; }
.pubk-tv .pubk-tv-play { align-items: center; border: 1px solid var(--gold-soft); color: var(--gold-soft); display: inline-flex; font-size: 22px; height: 72px; justify-content: center; width: 72px; }
.pubk-tv .pubk-tv-soon { bottom: 14px; color: var(--on-navy-body); font-family: var(--sans); font-size: 12px; letter-spacing: 0.08em; left: 16px; position: absolute; }
.pubk-tv .pubk-tv-overview { color: var(--slate); font-family: var(--sans); font-size: 15px; line-height: 1.65; margin: 24px 0 0; max-width: 720px; }
.pubk-tv .pubk-tv-card { border: 1px solid var(--line); padding: 24px; }
.pubk-tv .pubk-tv-card.is-learn { border-top: 3px solid var(--gold); }
.pubk-tv .pubk-tv-card.is-prompt { border-top: 3px solid var(--navy); }
.pubk-tv .pubk-tv-card.is-next { padding: 20px 24px; }
.pubk-tv .pubk-tv-label { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 12px; text-transform: uppercase; }
.pubk-tv .is-learn .pubk-tv-label { color: var(--gold-label); margin-bottom: 16px; }
.pubk-tv .is-prompt .pubk-tv-label { color: var(--navy); margin: 0; }
.pubk-tv .pubk-tv-learn { display: flex; flex-direction: column; gap: 12px; list-style: none; margin: 0; padding: 0; }
.pubk-tv .pubk-tv-learn li { align-items: baseline; color: var(--slate); display: flex; font-family: var(--sans); font-size: 14px; gap: 12px; line-height: 1.5; margin: 0; }
.pubk-tv .pubk-tv-arrow { color: var(--gold); flex: 0 0 auto; }
.pubk-tv .pubk-tv-card-row { align-items: center; display: flex; gap: 12px; justify-content: space-between; margin-bottom: 14px; }
.pubk-tv .pubk-tv-copy { background: none; border: 0; color: var(--red); cursor: pointer; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.4; padding: 0; text-transform: uppercase; }
.pubk-tv .pubk-tv-copy[hidden] { display: none; }
.pubk-tv .pubk-tv-copy:hover, .pubk-tv .pubk-tv-copy.is-done { color: var(--red-deep); }
.pubk-tv .pubk-tv-prompt { background: var(--cream); color: var(--navy); font-family: var(--serif); font-size: 15px; font-style: italic; line-height: 1.6; margin: 0; padding: 16px 18px; white-space: pre-line; }
.pubk-tv .pubk-tv-next { color: var(--navy); font-family: var(--serif); font-size: 17px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.35; text-decoration: none; }
.pubk-tv .pubk-tv-next:hover { color: var(--red); }
@media (max-width: 600px) {
  .pubk-tv-sec > .pubk-container { padding-bottom: 56px; padding-top: 32px; }
  .pubk-tv .pubk-tv-grid { gap: 32px; }
  .pubk-tv .pubk-tv-card { padding: 20px; }
}
/* === /0.76.0 === */
/* === 0.76.1 === Vegeta review R3 (PK thread 84d32ca9; data/2026-09-24-tv-privacy-0761/): text Kristen types (a long link in an Example
   Prompt, a long unbroken title) breaks inside its box instead of widening a phone's page. Only these text elements, not the whole scope: the
   Try band button keeps its natural width. Normal words wrap exactly as before (a break only happens where nothing else fits). */
.pubk-tv .pubk-tv-crumb-here, .pubk-tv .pubk-tv-eyebrow, .pubk-tv .pubk-tv-h1, .pubk-tv .pubk-tv-lede, .pubk-tv .pubk-tv-overview,
.pubk-tv .pubk-tv-learn li, .pubk-tv .pubk-tv-prompt, .pubk-tv .pubk-tv-next, .pubk-rl a.pubk-rl-video h3, .pubk-rl a.pubk-rl-video p { overflow-wrap: anywhere; }
/* Length is free text too (Vegeta): its pill and the library card's length badge stay inside the page and the card */
.pubk-tv .pubk-tv-pill { max-width: 100%; overflow-wrap: anywhere; }
.pubk-rl a.pubk-rl-video .pubk-rl-len { max-width: calc(100% - 20px); overflow-wrap: anywhere; }
/* === /0.76.1 === */
/* === 0.77.0 === Ask Pub K product-overview video (Patrick 2026-09-24, PK thread a4bec61c; data/2026-09-24-askpubk-video-0770/): the hero's video
   panel is a poster link: Patrick's owl-on-cream image fills the panel with a traditional play button centred on it (0.77.1, Patrick 07:57Z;
   data/2026-09-24-askpubk-play-0771/): a red circle with a drawn white triangle; the ▶ glyph in the markup is sized to 0. A click (askpubk-pages.js)
   swaps in the Vimeo player, which 0.62.0 already positions over the whole panel. */
.pubk-ask a.pubk-askp-video-poster { color: inherit; display: block; inset: 0; position: absolute; text-decoration: none; }
.pubk-ask a.pubk-askp-video-poster .pubk-askp-video-img { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play { box-shadow: 0 6px 20px rgba(11, 37, 69, 0.35); font-size: 0; height: 76px; inset: 0; margin: auto; padding: 0; position: absolute; transition: background-color 0.2s, transform 0.2s; width: 76px; }
/* the triangle: 24 x 30; margin-left 8px moves it 4px right of the box centre so its centroid (a third of its width in) sits on the circle's centre */
.pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play::before { border-bottom: 15px solid transparent; border-left: 24px solid #fff; border-top: 15px solid transparent; content: ""; margin-left: 8px; }
.pubk-ask a.pubk-askp-video-poster:hover .pubk-askp-video-play, .pubk-ask a.pubk-askp-video-poster:focus-visible .pubk-askp-video-play { background: var(--red-deep); transform: scale(1.06); }
/* the focus ring is drawn by an overlay above the image (an inset outline would paint under the absolute image; Vegeta) */
.pubk-ask a.pubk-askp-video-poster:focus-visible { outline: none; }
.pubk-ask a.pubk-askp-video-poster:focus-visible::after { border: 2px solid var(--navy); content: ""; inset: 4px; pointer-events: none; position: absolute; z-index: 1; }
.pubk-ask .pubk-askp-video iframe { border: 0; display: block; }
@media (max-width: 600px) { .pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play { height: 60px; width: 60px; } .pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play::before { border-bottom-width: 12px; border-left-width: 19px; border-top-width: 12px; margin-left: 6px; } }
/* forced colours (Windows High Contrast): the UA recolours all three triangle borders, turning it into a solid square (a stop mark; Vegeta) —
   keep the transparent sides, draw the triangle in the reader's link colour, and outline the circle (its red fill and shadow are dropped) */
@media (forced-colors: active) { .pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play { outline: 2px solid LinkText; } .pubk-ask a.pubk-askp-video-poster .pubk-askp-video-play::before { border-bottom-color: transparent; border-left-color: LinkText; border-top-color: transparent; forced-color-adjust: none; } }
/* === /0.77.0 === */
/* === 0.79.0 === Ask Pub K Insights (Patrick 2026-09-24, PK thread 4711f341; lane 285402e6): the section card reuses .side-cta, first in the
   Insights article rail and the /ask-pub-k/insights/ archive rail. The archive rail (.pubk-lib-page) had no .side-cta rules, so it takes the
   article rail's. The h2 is the Ask Pub K lockup (the homepage heading convention), white on navy via .pubk-on-dark; "See how it works" is a
   text link under the button. */
.pubk-lib-page .side-cta { background: var(--navy); padding: 24px 20px; text-align: center; }
.pubk-lib-page .side-cta h2 { color: #fff; font-family: var(--serif); font-size: 20px; font-weight: 380; line-height: 1.2; margin: 0 0 8px; }
.pubk-lib-page .side-cta p { color: #A8B4C7; font-size: 12.5px; line-height: 1.5; margin: 0 0 16px; }
.pubk-lib-page .side-cta .wp-block-button { display: inline-block; }
:is(.pubk-news, .pubk-lib-page) .side-cta-section h2 .pubk-apk { display: block; height: 2.2em; margin: 0 auto; width: 7.97em; }
:is(.pubk-news, .pubk-lib-page) .side-cta-section .side-cta-link { color: #fff; display: block; font-size: 12.5px; font-weight: 600; margin-top: 14px; text-decoration: underline; text-underline-offset: 3px; }
:is(.pubk-news, .pubk-lib-page) .side-cta-section .side-cta-link:hover { color: var(--gold-soft); }
/* === /0.79.0 === */
/* === 0.81.0: member Account page (/account/ = templates/page-account.html + [pubk_account]; Patrick PK thread a9533b3e 2026-09-25) ===
   Page root .pubk-acct, elements .pubk-acct-*. Navy hero | cream Your Briefs (four cards with the client's marks, /briefs/ order, top rule =
   the logo-sampled --mark-* token; Not included cards muted) | white Account details | cream Billing and changes with Chloe's card (the
   /briefs/ #contact card). Built from the Briefs page's type scale and button language; no new tokens. */
.pubk-acct { color: var(--ink); overflow: clip; }
.pubk-acct *, .pubk-acct *::before, .pubk-acct *::after { box-sizing: border-box; }
.pubk-acct .pubk-container { margin-left: auto; margin-right: auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; width: 100%; }
.pubk-acct .pubk-acct-eyebrow { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 18px; text-transform: uppercase; }
.pubk-acct .pubk-acct-h1 { color: #fff; font-family: var(--serif); font-size: clamp(38px, 3.75vw, 54px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.08; margin: 0; overflow-wrap: anywhere; text-wrap: pretty; }
.pubk-acct .pubk-acct-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-acct .pubk-acct-h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(30px, 3.2vw, 40px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; text-wrap: pretty; }
.pubk-acct .pubk-acct-h2 em { font-style: italic; }
.pubk-acct .pubk-acct-btns { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; }
.pubk-acct a.pubk-acct-btn { background: var(--red); color: #fff; display: inline-block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 15px 26px; text-align: center; text-decoration: none; text-transform: uppercase; transition: background 0.2s; }
.pubk-acct a.pubk-acct-btn:hover, .pubk-acct a.pubk-acct-btn:focus { background: var(--red-deep); color: #fff; }
.pubk-acct .pubk-acct-head { align-items: flex-end; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 12px 40px; justify-content: space-between; margin-bottom: 32px; padding-bottom: 22px; }
.pubk-acct .pubk-acct-summary { color: var(--slate); font-size: 15px; line-height: 1.55; margin: 0; max-width: 480px; }
/* hero */
.pubk-acct .pubk-acct-hero { background: radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) var(--navy); color: #fff; }
.pubk-acct .pubk-acct-hero > .pubk-container { padding-bottom: 64px; padding-top: 60px; }
.pubk-acct .pubk-acct-lede { color: var(--on-navy-body); font-size: 17px; line-height: 1.65; margin: 22px 0 30px; overflow-wrap: anywhere; }
.pubk-acct .pubk-acct-lede strong { color: #fff; font-weight: 600; }
/* briefs */
.pubk-acct .pubk-acct-briefs { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-acct .pubk-acct-briefs > .pubk-container, .pubk-acct .pubk-acct-details > .pubk-container, .pubk-acct .pubk-acct-billing > .pubk-container { padding-bottom: 60px; padding-top: 60px; }
.pubk-acct .pubk-acct-cards { display: grid; gap: 20px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pubk-acct .pubk-acct-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--navy); display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 24px; }
.pubk-acct .pubk-acct-card.is-protests { border-top-color: var(--mark-protests); }
.pubk-acct .pubk-acct-card.is-cyber { border-top-color: var(--mark-cyber); }
.pubk-acct .pubk-acct-card.is-compliance { border-top-color: var(--mark-compliance); }
.pubk-acct .pubk-acct-card.is-transforming { border-top-color: var(--mark-transforming); }
.pubk-acct .pubk-acct-card img { display: block; height: auto; margin: 0 auto 8px; max-width: 170px; width: 100%; }
.pubk-acct .pubk-acct-card.is-none img { opacity: 0.45; }
.pubk-acct .pubk-acct-status { margin: 0; }
.pubk-acct .pubk-acct-pill { border: 1px solid var(--navy); color: var(--navy); display: inline-block; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; line-height: 1.3; padding: 5px 10px; text-transform: uppercase; }
.pubk-acct .pubk-acct-card.is-active .pubk-acct-pill { background: var(--navy); color: #fff; }
.pubk-acct .pubk-acct-card.is-ended .pubk-acct-pill { border-color: var(--red); color: var(--red); }
.pubk-acct .pubk-acct-card.is-none .pubk-acct-pill { border-color: var(--gray-light); color: var(--slate-light); }
.pubk-acct .pubk-acct-date { color: var(--slate); flex: 1 1 auto; font-size: 14px; line-height: 1.55; margin: 0; }
.pubk-acct .pubk-acct-card.is-active .pubk-acct-date { color: var(--ink); font-weight: 600; }
.pubk-acct a.pubk-acct-card-a { color: var(--navy); font-size: 13px; font-weight: 700; margin-top: 6px; text-decoration: none; }
.pubk-acct a.pubk-acct-card-a:hover, .pubk-acct a.pubk-acct-card-a:focus { color: var(--red); }
/* details */
.pubk-acct .pubk-acct-details { background: var(--paper); border-top: 1px solid var(--line); }
.pubk-acct .pubk-acct-dl { margin: 0; max-width: 760px; }
.pubk-acct .pubk-acct-dl > div { border-bottom: 1px solid var(--line); display: grid; gap: 4px 24px; grid-template-columns: 160px minmax(0, 1fr); padding: 0 0 16px; }
.pubk-acct .pubk-acct-dl > div + div { padding-top: 16px; }
.pubk-acct .pubk-acct-dl dt { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; line-height: 1.9; text-transform: uppercase; }
.pubk-acct .pubk-acct-dl dd { color: var(--ink); font-size: 16px; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.pubk-acct .pubk-acct-dl dd a, .pubk-acct .pubk-acct-note a { color: var(--navy); font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.pubk-acct .pubk-acct-dl dd a:hover, .pubk-acct .pubk-acct-dl dd a:focus, .pubk-acct .pubk-acct-note a:hover, .pubk-acct .pubk-acct-note a:focus { color: var(--red); }
.pubk-acct .pubk-acct-dd-note { color: var(--slate); display: inline-block; font-size: 14px; margin-left: 12px; }
.pubk-acct .pubk-acct-note { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 20px 0 0; }
/* billing */
.pubk-acct .pubk-acct-billing { background: var(--cream); border-top: 1px solid var(--line); }
.pubk-acct .pubk-acct-billing-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 64px; }
.pubk-acct .pubk-acct-billing-copy { flex: 1 1 440px; min-width: 0; }
.pubk-acct .pubk-acct-billing-copy .pubk-acct-h2 { margin-bottom: 18px; }
.pubk-acct .pubk-acct-billing-lede { color: var(--slate); font-size: 16px; line-height: 1.6; margin: 0 0 28px; max-width: 520px; }
.pubk-acct .pubk-acct-person { align-items: center; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; flex: 0 1 380px; gap: 20px; min-width: 0; padding: 32px; }
.pubk-acct .pubk-acct-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-acct .pubk-acct-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-acct .pubk-acct-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-acct .pubk-acct-person-mail { font-size: 14px; margin: 6px 0 0; overflow-wrap: anywhere; }
.pubk-acct .pubk-acct-person-mail a { color: var(--slate); font-weight: 600; text-decoration: none; }
.pubk-acct .pubk-acct-person-mail a:hover, .pubk-acct .pubk-acct-person-mail a:focus { color: var(--red); }
@media (max-width: 1099px) { .pubk-acct .pubk-acct-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 999px) { .pubk-acct .pubk-acct-billing-grid { gap: 40px; } .pubk-acct .pubk-acct-person { flex-basis: 100%; } }
@media (max-width: 600px) {
  .pubk-acct .pubk-container { padding-left: 24px; padding-right: 24px; }
  .pubk-acct .pubk-acct-hero > .pubk-container { padding-bottom: 48px; padding-top: 44px; }
  .pubk-acct .pubk-acct-briefs > .pubk-container, .pubk-acct .pubk-acct-details > .pubk-container, .pubk-acct .pubk-acct-billing > .pubk-container { padding-bottom: 56px; padding-top: 52px; }
  .pubk-acct .pubk-acct-cards { grid-template-columns: minmax(0, 1fr); }
  .pubk-acct .pubk-acct-dl > div { grid-template-columns: minmax(0, 1fr); }
  .pubk-acct .pubk-acct-dd-note { display: block; margin: 4px 0 0; }
  .pubk-acct .pubk-acct-person { padding: 22px 20px; }
  .pubk-acct a.pubk-acct-btn { width: 100%; }
}
/* === /0.81.0 === */
/* === 0.83.0 === /ask-pub-k/demo/ Kristen card (Patrick 2026-09-25 18:07Z, PK thread fbcebccd): the /ask-pub-k/ contact card under the three
   points. Same values as the 0.62.0 .pubk-ask .pubk-askp-person* rules, demo-scoped; no flex basis (the card spans the pitch column) + 32px above. */
.pubk-demo .pubk-demo-person { align-items: center; background: var(--cream); border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; gap: 20px; margin-top: 32px; min-width: 0; padding: 32px; }
.pubk-demo .pubk-demo-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-demo .pubk-demo-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-demo .pubk-demo-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-demo .pubk-demo-person-mail { font-size: 14px; margin: 6px 0 0; }
.pubk-demo .pubk-demo-person-mail a { color: var(--slate); font-size: inherit; font-weight: 600; text-decoration: none; }
.pubk-demo .pubk-demo-person-mail a:hover { color: var(--red); }
.pubk-demo .pubk-demo-person-note { color: var(--slate-light); font-size: 13px; line-height: 1.5; margin: 4px 0 0; }
@media (max-width: 600px) { .pubk-demo .pubk-demo-person { padding: 24px 20px; } }
/* === /0.83.0 === */
/* === 0.85.0 === */
/* The library's "Watch More Videos →" link (the .pubk-home-latest-more values, right-aligned) and the Video FAQ index ([pubk_video_faq_index]). */
.pubk-rl .pubk-rl-videos-more { font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; margin: 30px 0 0; text-align: right; text-transform: uppercase; }
.pubk-rl .pubk-rl-videos-more a { color: var(--red); text-decoration: none; }
.pubk-rl .pubk-rl-videos-more a:hover,
.pubk-rl .pubk-rl-videos-more a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.pubk-tvi .pubk-tvi-lede { color: var(--slate); font-family: var(--sans); font-size: 16px; line-height: 1.6; margin: 14px 0 0; max-width: 560px; }
.pubk-tvi .pubk-tvi-cat { scroll-margin-top: 56px; }
.pubk-tvi .pubk-tvi-cat + .pubk-tvi-cat { margin-top: 56px; }
.pubk-tvi .pubk-tvi-h2 { align-items: baseline; color: var(--ink); display: flex; flex-wrap: wrap; font-family: var(--serif); font-size: 26px; font-weight: 380; gap: 6px 14px; letter-spacing: -0.02em; line-height: 1.15; margin: 0 0 24px; }
.pubk-tvi .pubk-tvi-count { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; text-transform: uppercase; }
.pubk-tvi .pubk-tvi-empty { color: var(--slate); font-family: var(--sans); font-size: 15px; line-height: 1.6; margin: 0; }
@media (max-width: 781px) {
  .pubk-tvi .pubk-tvi-cat + .pubk-tvi-cat { margin-top: 40px; }
  .pubk-tvi .pubk-tvi-h2 { font-size: 22px; margin-bottom: 20px; }
}
/* === /0.85.0 === */
/* === 0.86.0 === */
/* The Briefs bar: each chip in its own Brief colour on hover / focus (the active chip keeps the page accent = its own colour). */
.pubk-lib-chip--protests:hover, .pubk-lib-chip--protests:focus-visible { background: var(--mark-protests); border-color: var(--mark-protests); }
.pubk-lib-chip--cyber:hover, .pubk-lib-chip--cyber:focus-visible { background: var(--mark-cyber); border-color: var(--mark-cyber); }
.pubk-lib-chip--compliance:hover, .pubk-lib-chip--compliance:focus-visible { background: var(--mark-compliance); border-color: var(--mark-compliance); }
.pubk-lib-chip--transforming:hover, .pubk-lib-chip--transforming:focus-visible { background: var(--mark-transforming); border-color: var(--mark-transforming); }
/* "Recent <Sub-topic> News" (article rails): white card, navy top rule, hairlines. */
.side-recent { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--navy); padding: 24px 22px 22px; }
.side-recent .side-recent-k { color: var(--slate-light); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; line-height: 1.4; margin: 0 0 16px; text-transform: uppercase; }
.side-recent .side-recent-list { list-style: none; margin: 0; padding: 0; }
.side-recent .side-recent-list li { border-top: 1px solid var(--line); margin: 0; padding: 0; }
.side-recent .side-recent-item { display: block; padding: 14px 0 15px; text-decoration: none; }
.side-recent .side-recent-t { color: var(--navy); display: block; font-family: var(--serif); font-size: 17px; font-weight: 400; letter-spacing: -0.005em; line-height: 1.35; }
.side-recent .side-recent-item:hover .side-recent-t, .side-recent .side-recent-item:focus-visible .side-recent-t { color: var(--red); }
.side-recent .side-recent-d { color: var(--slate-light); display: block; font-family: var(--sans); font-size: 13px; line-height: 1.4; margin-top: 8px; }
.side-recent .side-recent-all { color: var(--red); display: inline-block; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; margin-top: 12px; text-decoration: none; text-transform: uppercase; }
.side-recent .side-recent-all:hover, .side-recent .side-recent-all:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
/* The Ask Pub K advertorial (last in every library rail): navy pitch with a gold rule, then the Insights list on a lighter navy panel. */
.side-apk { --side-apk-panel: #1B2E4A; background: var(--side-apk-panel); color: #fff; } /* scoped, not a global token (Lorian 535ca969): the Insights panel as sampled from Patrick's screenshot, lighter than the pitch, not --navy-deep (near-black, what he asked to remove from the Ask Pub K ads) */
.side-apk .side-apk-top { background: radial-gradient(420px 260px at 100% 0%, rgba(194, 162, 88, 0.16), transparent 70%) var(--navy); border-top: 3px solid var(--gold-soft); padding: 28px 22px 22px; }
.side-apk .side-apk-logo { display: block; height: auto; margin: 0 auto; max-width: 100%; width: 240px; }
.side-apk .side-apk-tag { color: var(--gold-soft); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.06em; line-height: 1.4; margin: 6px 0 0; text-align: center; text-transform: uppercase; }
.side-apk .side-apk-h { color: #fff; font-family: var(--serif); font-size: 24px; font-weight: 400; letter-spacing: -0.01em; line-height: 1.2; margin: 26px 0 12px; }
.side-apk .side-apk-h em { color: var(--gold-soft); font-style: italic; }
.side-apk .side-apk-p { color: var(--on-navy-body); font-family: var(--sans); font-size: 15px; line-height: 1.6; margin: 0 0 22px; }
.side-apk .side-apk-btn { background: var(--red); color: #fff; display: block; font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; padding: 16px 12px; text-align: center; text-decoration: none; text-transform: uppercase; transition: background 0.2s; }
.side-apk .side-apk-btn:hover, .side-apk .side-apk-btn:focus-visible { background: var(--red-deep); color: #fff; }
.side-apk .side-apk-note { color: var(--on-navy-faint); font-family: var(--sans); font-size: 12px; line-height: 1.4; margin: 12px 0 0; text-align: center; }
.side-apk .side-apk-list { border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 22px 22px 24px; }
.side-apk .side-apk-k { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.2em; line-height: 1.4; margin: 0 0 14px; text-transform: uppercase; }
.side-apk .side-apk-ol { list-style: none; margin: 0; padding: 0; }
.side-apk .side-apk-ol li { border-top: 1px solid rgba(255, 255, 255, 0.12); margin: 0; padding: 0; }
.side-apk .side-apk-item { color: #fff; display: flex; gap: 14px; padding: 13px 0; text-decoration: none; }
.side-apk .side-apk-n { color: var(--gold-soft); flex: 0 0 auto; font-family: var(--sans); font-size: 14px; line-height: 1.45; }
.side-apk .side-apk-t { color: #fff; font-family: var(--sans); font-size: 15px; line-height: 1.45; }
.side-apk .side-apk-item:hover .side-apk-t, .side-apk .side-apk-item:focus-visible .side-apk-t { color: var(--gold-soft); }
.side-apk .side-apk-all { border-bottom: 1px solid currentColor; color: #fff; display: inline-block; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; margin-top: 12px; padding-bottom: 4px; text-decoration: none; text-transform: uppercase; }
.side-apk .side-apk-all:hover, .side-apk .side-apk-all:focus-visible { color: var(--gold-soft); }
/* C-08 with 0.86.0: a locked article's desktop rail keeps the brief card, the recent list, the sign-in pitch and the advertorial; the
   Briefs list and the ad still drop (the rule above hides every child from the 3rd). */
@media (min-width: 1025px) {
  .pubk-news .art-wrap .layout:has(.art-paywall) .sidebar > :is(.side-recent, .side-cta, .side-apk) { display: block; }
}
/* === /0.86.0 === */

/* === 0.87.0 === /checkout/ + /invoice-thank-you/ (Saurabh's pages in the theme; Patrick GO 2026-09-26 06:20Z, PK thread 08072632).
   His markup sits in <pubk-co> (patterns/checkout.php, patterns/invoice-thank-you.php; a custom element so wptexturize skips it) and his own
   CSS/JS load only on those two pages (assets/css/checkout.css, assets/css/invoice-thank-you.css, assets/js/checkout.js). An unknown element is inline by default: make the wrapper a block, as body was. */
pubk-co { display: block; }
/* No chat launcher on the two checkout pages (functions.php body class pubk-co-page; Lorian ruling 3835df26). masthead.js treats the hidden
   host as no widget, so the header's Ask Claire link falls through to its href there. */
body.pubk-co-page #pubk-chat-host { display: none !important; }
/* === /0.87.0 === */

/* === 0.87.1 === Checkout payment buttons: a visible in-flight state (Patrick 2026-09-26 14:12Z: "no satisfying way to know that the Invoice Me
   button is working"; Lorian ruling 469c00c9). His pkStartCheckout already disables all three and relabels the clicked one ("Sending your
   request\2026"), but his CSS draws a disabled button exactly like an enabled one. While his call is in flight the others dim and the clicked
   one (aria-busy, set by assets/js/checkout.js) keeps full strength with a spinner drawn on the button itself. Resting state: untouched. */
pubk-co :is(#pkTrialBtn, #pkBuyBtn, #pkInvoiceBtn):disabled { cursor: progress; opacity: .45; }
pubk-co :is(#pkTrialBtn, #pkBuyBtn, #pkInvoiceBtn)[aria-busy="true"] { opacity: 1; }
pubk-co :is(#pkTrialBtn, #pkBuyBtn, #pkInvoiceBtn)[aria-busy="true"]::after { animation: pubk-co-spin .8s linear infinite; border: 2px solid currentColor; border-radius: 50%; border-right-color: transparent; content: ""; display: inline-block; flex: none; height: 13px; margin-left: 12px; transform: none; width: 13px; }
@keyframes pubk-co-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { pubk-co :is(#pkTrialBtn, #pkBuyBtn, #pkInvoiceBtn)[aria-busy="true"]::after { animation-duration: 2.4s; } }
/* /welcome/: Chloe's contact box, the /briefs/ #contact card (.pubk-briefs .pubk-bf-person...) re-scoped to his area. Values copied as literals
   (--line #E5E1D6, --gold #c2a258, --red #C8102E, --ink #111827, --slate #3D4F68, the two font stacks): inside pubk-co his CSS redefines
   those names, so the tokens would not give the /briefs/ look. */
pubk-co .pubk-bf-person { align-items: center; background: #fff; border: 1px solid #E5E1D6; border-top: 3px solid #c2a258; display: flex; gap: 20px; max-width: 420px; min-width: 0; padding: 32px; }
pubk-co .pubk-bf-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
pubk-co .pubk-bf-person-role { color: #C8102E; font-family: 'Public Sans', 'Helvetica Neue', Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
pubk-co .pubk-bf-person-name { color: #111827; font-family: 'Newsreader', Georgia, serif; font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
pubk-co .pubk-bf-person-mail { font-size: 14px; margin: 6px 0 0; }
pubk-co .pubk-bf-person-mail a { color: #3D4F68; font-size: inherit; font-weight: 600; text-decoration: none; }
pubk-co .pubk-bf-person-mail a:hover { color: #C8102E; }
@media (max-width: 640px) { pubk-co .pubk-bf-person { padding: 22px 20px; } }
/* === /0.87.1 === */

/* === 0.89.0: the Add Ask Pub K box at checkout (Amanda, monday 13142255319; Lorian build thread 98c655da) ===
   Saurabh's checkout.css loads after this file with the same .addon / .addon.sel specificity, so these rules anchor on the box's id and his
   file stays byte-identical. Resting: tan fill, a 2px navy outline (1.5px snaps to 1px at 1x), his padding. Selected: his gold check box, the cream-soft fill as before, the
   outline stays navy. The inline mark in the 16.5px serif label is sized from the logo's own geometry: 1.6em tall puts the wordmark's cap
   height (152/361 of the SVG) on Newsreader 460's 0.675em cap height, and -0.43em puts its baseline (264/361 from the top) on the text's. */
:where(pubk-co) #addonBox.addon { background: var(--sand, #F3ECD9); border: 2px solid var(--navy); }
:where(pubk-co) #addonBox.addon.sel { background: var(--cream-soft); border-color: var(--navy); }
:where(pubk-co) #addonBox .pubk-apk { height: 1.6em; vertical-align: -0.43em; width: 5.8em; }
/* === /0.89.0 === */
/* === 0.95.2 staff photos (Palino) === */
.pubk-news .art-avatar.has-photo { background: var(--cream-soft, #FBF8F1); overflow: hidden; }
.pubk-news .art-avatar-photo { border-radius: 50%; display: block; height: 100%; object-fit: cover; width: 100%; }
/* === /0.95.2 === */
/* === 0.96.0 news-members (Palino) === */
.pubk-news .news-submit-sec { padding: 48px 0; }
.pubk-news .news-submit-sec .submit-bar { margin-top: 0; }
/* === /0.96.0 === */
/* === 0.96.1 privacy link (Palino) === */
.pubk-footer a.pubk-footer-privacy { color: var(--on-navy-muted); text-decoration: none; }
.pubk-footer a.pubk-footer-privacy:hover { color: #fff; }
/* === /0.96.1 === */
/* === 0.96.6 privacy page (Palino) === */
/* Amanda's mockup (mockup/privacy-standalone.html, measured in mockup/dom.json), under the site header/nav/footer; one gold (var(--gold)). */
.pubk-pv { --pv-body: #3D4F68; --pv-faint: #7C8BA3; color: var(--pv-body); font-family: var(--sans); }
.pubk-pv-wrap { box-sizing: border-box; margin: 0 auto; max-width: 1280px; padding-left: 32px; padding-right: 32px; }
.pubk-pv-hero { background: var(--cream); border-bottom: 1px solid var(--line); }
.pubk-pv-hero .pubk-pv-wrap { padding-bottom: 56px; padding-top: 64px; }
.pubk-pv .pubk-pv-eyebrow { color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.55; margin: 0 0 14px; text-transform: uppercase; }
.pubk-pv .pubk-pv-title { color: var(--ink); font-family: var(--serif); font-size: 48px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 18px; }
.pubk-pv .pubk-pv-title em { font-style: italic; font-weight: 380; }
.pubk-pv .pubk-pv-meta { align-items: baseline; color: var(--pv-body); display: flex; flex-wrap: wrap; font-size: 14px; gap: 12px; line-height: 1.55; margin: 0; }
.pubk-pv-dot { color: var(--gold); }
.pubk-pv-body { background: var(--paper); }
.pubk-pv-body .pubk-pv-wrap { padding-bottom: 96px; padding-top: 64px; }
.pubk-pv-grid { align-items: start; display: grid; gap: 72px; grid-template-columns: 260px 1fr; }
.pubk-pv-toc { border-top: 3px solid var(--navy); padding-top: 18px; position: sticky; top: 24px; }
.pubk-pv .pubk-pv-toc-label { color: var(--pv-faint); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.55; margin: 0 0 14px; text-transform: uppercase; }
.pubk-pv-toc ol { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }
.pubk-pv-toc li { margin: 0; }
.pubk-pv-toc li a { border-top: 1px solid var(--line); color: var(--pv-body); display: flex; font-size: 14px; gap: 12px; line-height: 1.35; padding: 9px 0; text-decoration: none; }
.pubk-pv-toc li a:hover { color: var(--navy); }
.pubk-pv-toc .pubk-pv-num { color: var(--gold); flex-shrink: 0; font-family: var(--serif); font-size: 14px; min-width: 22px; }
.pubk-pv-related { background: var(--cream); border: 1px solid var(--line); color: var(--pv-body); display: block; font-size: 13px; line-height: 1.5; margin-top: 22px; padding: 16px 18px; text-decoration: none; }
.pubk-pv-related-label { color: var(--navy); display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; margin-bottom: 4px; text-transform: uppercase; }
.pubk-pv-article { color: var(--pv-body); font-size: 17px; line-height: 1.65; max-width: 720px; }
.pubk-pv-article p { color: var(--pv-body); font-size: 17px; line-height: 1.65; margin: 0 0 18px; }
.pubk-pv-article > p:first-child { margin-bottom: 20px; }
.pubk-pv-article .pubk-pv-callout { background: var(--cream); border-left: 3px solid var(--gold); font-size: 15px; line-height: 1.6; margin: 0 0 20px; padding: 20px 24px; }
.pubk-pv-sec { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 40px; }
.pubk-pv .pubk-pv-sec h2 { align-items: baseline; color: var(--navy); display: flex; font-family: var(--serif); font-size: 28px; font-weight: 460; gap: 14px; letter-spacing: -0.015em; line-height: 1.2; margin: 0 0 16px; }
.pubk-pv-sec h2 .pubk-pv-num { color: var(--gold); font-size: 20px; font-weight: 380; }
.pubk-pv-list { display: flex; flex-direction: column; gap: 8px; list-style: none; margin: 0 0 18px; padding: 0 0 0 4px; }
.pubk-pv-list li { display: flex; gap: 14px; margin: 0; }
.pubk-pv-list li::before { color: var(--gold); content: "◆"; flex-shrink: 0; font-size: 17px; }
.pubk-pv-cta { align-items: center; background: var(--navy); color: #fff; display: flex; gap: 24px; justify-content: space-between; margin-top: 56px; padding: 28px 32px; }
.pubk-pv .pubk-pv-cta-label { color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.65; margin: 0 0 6px; text-transform: uppercase; }
.pubk-pv .pubk-pv-cta-line { color: #fff; font-family: var(--serif); font-size: 20px; line-height: 1.3; margin: 0; }
.pubk-pv-cta-btn { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; flex-shrink: 0; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; line-height: 1.65; padding: 13px 22px; text-decoration: none; text-transform: uppercase; }
.pubk-pv-cta-btn:hover { background: #fff; color: var(--navy); }
@media (max-width: 960px) {
  .pubk-pv-grid { gap: 40px; grid-template-columns: 1fr; }
  .pubk-pv-toc { position: static; }
  .pubk-pv .pubk-pv-title { font-size: 38px; }
  .pubk-pv-cta { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  .pubk-pv-wrap { padding-left: 20px; padding-right: 20px; }
  .pubk-pv-hero .pubk-pv-wrap { padding-bottom: 40px; padding-top: 44px; }
  .pubk-pv-body .pubk-pv-wrap { padding-bottom: 64px; padding-top: 40px; }
  .pubk-pv .pubk-pv-sec h2 { font-size: 24px; }
}
/* === /0.96.6 === */

/* === 0.96.7 membership design drift (Palino) === */
/* Amanda board 13146495193 04:27Z (six items) + Gibson's audit vs Patrick's 09-15 file (Lorian 041669b1 / a29d70c9; Patrick 0f1a7cac):
   (1) the stats band back to the file's navy with white figures and gold labels (the file's #D9BA6F = the one gold), no 3px tricolour rule
   (the file has none); Why Pub K white; (2) the Why section's divider above Member Benefits: 48px margin -> 22px, so the Membership Promise
   -> Member Benefits gap is the file's 63px head-to-first-pillar rhythm (26px out); (3) the hero photo framed like the file (50% 30%, it sat at
   0 0); (4) How To Join tan (--sand) now that it closes the page above the navy footer: navy/slate type, red eyebrow like every light band;
   (5) the footer address email is a mailto link. */
.pubk-about .pubk-abt-hero-bg { background-position: center 30%, center 30%, center 30%; }
.pubk-about .pubk-abt-stats { background: var(--navy); border-bottom: 0; color: #fff; padding-top: 0; }
.pubk-about .pubk-abt-stats::before { content: none; }
.pubk-about .pubk-abt-stat { border-right-color: rgba(255, 255, 255, 0.12); }
.pubk-about .pubk-abt-stat-num { color: #fff; }
.pubk-about .pubk-abt-stat-label { color: var(--gold); }
@media (max-width: 600px) { .pubk-about .pubk-abt-stat { border-bottom-color: rgba(255, 255, 255, 0.12); } }
.pubk-about .pubk-abt-why { background: var(--paper); }
.pubk-about .pubk-abt-benefits { margin-top: 22px; }
@media (max-width: 600px) { .pubk-about .pubk-abt-benefits { margin-top: 16px; } }
.pubk-about .pubk-abt-howjoin { background: var(--sand); border-top: 1px solid var(--line); color: var(--navy); }
.pubk-about .pubk-abt-howjoin .pubk-abt-eyebrow-gold { color: var(--red); }
.pubk-about .pubk-abt-howjoin .pubk-abt-history-lede { color: var(--navy); }
.pubk-about .pubk-abt-howjoin .pubk-abt-history-lede em { color: var(--gold); }
.pubk-about .pubk-abt-howjoin-body { color: var(--slate); }
.pubk-about .pubk-abt-howjoin .pubk-abt-join-line { color: var(--navy); }
.pubk-footer-addr a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* the fidelity table vs the 09-15 file (fidelity/FIDELITY-0967-local.md): the small labels, the button and the stat labels at the file's 1.55
   line height (were 1.4 / 1.2 since 0.48.0), the card headings at the file's 1.1, and the file's 3px navy top edge on the stats band. */
.pubk-about .pubk-abt-eyebrow, .pubk-about .pubk-abt-label-gold, .pubk-about .pubk-abt-card-eyebrow, .pubk-about .pubk-abt-stat-label, .pubk-about .pubk-abt-btn { line-height: 1.55; }
.pubk-about .pubk-abt-card h3 { line-height: 1.1; }
.pubk-about .pubk-abt-stats { border-top: 3px solid var(--navy); }
/* === /0.96.7 === */

/* ====== 0.96.9: /membership/ Member Benefits = tan (Amanda board 13146495193, scope confirmed 12:52Z: from the MEMBER BENEFITS label to the end of
   the Why Pub K section; the Why Pub K intro stays white; Lorian b6d367e0 / 25716a85). The band is full width (box-shadow + clip-path, so no
   horizontal overflow) and reaches the section's bottom edge: the section's bottom padding moves inside the band (96px, 56px on phones). ====== */
.pubk-about .pubk-abt-why > .pubk-container { padding-bottom: 0; }
.pubk-about .pubk-abt-why .pubk-abt-benefits { background: var(--sand); border-top: 0; box-shadow: 0 0 0 100vmax var(--sand); clip-path: inset(0 -100vmax); padding-bottom: 96px; }
@media (max-width: 600px) { .pubk-about .pubk-abt-why .pubk-abt-benefits { padding-bottom: 56px; } }
/* ====== /0.96.9 ====== */

/* ====== 0.97.1: the Ask Pub K Insights article template (Amanda monday 13151576343, mockup "2A · Combined" measured at 2x: MEASURE.md;
   Lorian rulings 1942e987: the 760 column + Brief rail stay, grey kicker, live body colour, hero after the disclosure). Scoped to
   article.art--insight, which only Insights posts carry. One gold: var(--gold). ====== */
.pubk-news .art--insight .art-ins-callout { align-items: center; background: var(--cream); border: 1px solid var(--line); border-left: 3px solid var(--gold); display: flex; gap: 0; margin: 0 0 36.5px; min-height: 147px; padding: 21px 25px 17.5px 23.5px; }
.pubk-news .art--insight .art-ins-lockup { display: block; flex-shrink: 0; height: auto; margin-right: 27.5px; width: 155px; }
.pubk-news .art--insight .art-ins-copy { flex: 1 1 auto; min-width: 0; }
.pubk-news .art--insight .art-ins-label { color: var(--gold); display: block; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .22em; line-height: 1; margin: 0 0 7.5px; text-transform: uppercase; }
.pubk-news .art--insight .art-ins-copy p { color: var(--slate); font-family: var(--sans); font-size: 14px; line-height: 22px; margin: 0; }
.pubk-news .art--insight .art-ins-try { color: var(--red); flex-shrink: 0; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .16em; margin-left: 32px; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.pubk-news .art--insight .art-ins-try:hover, .pubk-news .art--insight .art-ins-trial:hover { color: var(--red-deep); }
.pubk-news .art--insight .art-kicker, .pubk-news .art--insight .art-kicker .art-topic, .pubk-news .art--insight .art-kicker span:not(.art-kicker-sep) { color: var(--slate-light); }
.pubk-news .art--insight .art-kicker { letter-spacing: .22em; }
.pubk-news .art--insight .art-ins-byline { gap: 14px; margin: 27px 0 0; padding: 17.75px 0; }
.pubk-news .art--insight .art-ins-owl { display: block; flex-shrink: 0; height: auto; width: 48px; }
.pubk-news .art--insight .art-ins-byline .art-author { color: var(--slate-light); font-size: 15px; font-weight: 400; line-height: 20px; }
.pubk-news .art--insight .art-ins-by { color: var(--navy); font-weight: 700; }
.pubk-news .art--insight .art-ins-byline .art-date { color: var(--slate-light); font-size: 12.5px; margin-top: .5px; }
.pubk-news .art--insight .art-ins-byline .art-access-pill, .pubk-news .art--insight .art-ins-byline .art-locked-pill { margin-left: auto; }
.pubk-news .art--insight .art-ins-trial { align-self: stretch; align-items: center; border-left: 1px solid var(--line); color: var(--red); display: flex; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .1em; margin: -17.75px 0 -17.75px auto; padding: 0 1.5px 0 26px; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.pubk-news .art--insight .art-ins-byline .art-access-pill + .art-ins-trial, .pubk-news .art--insight .art-ins-byline .art-locked-pill + .art-ins-trial { margin-left: 0; }
.pubk-news .art--insight .art-ins-disclosure { align-items: flex-start; display: flex; gap: 12.5px; margin: 18px 0 37px; }
.pubk-news .art--insight .art-ins-star { color: var(--gold); flex-shrink: 0; height: 12.5px; margin-top: 4px; width: 12px; }
.pubk-news .art--insight .art-ins-disclosure p { color: var(--slate); font-family: var(--sans); font-size: 14px; line-height: 21px; margin: 0; }
@media (max-width: 700px) {
  .pubk-news .art--insight .art-ins-callout { align-items: flex-start; flex-wrap: wrap; gap: 14px 0; padding: 20px; }
  .pubk-news .art--insight .art-ins-copy { flex-basis: 100%; }
  .pubk-news .art--insight .art-ins-try { margin-left: 0; }
  .pubk-news .art--insight .art-ins-trial { border-left: 0; flex-basis: 100%; margin: 0; padding-left: 62px; }
}
/* ====== /0.97.1 ====== */

/* ====== 0.97.3: the Ask Pub K card first on /account/ (Amanda monday 13152489897; Lorian 73afa59e): the Brief card chrome, no pill;
   the lockup is contained in the Brief logo's box (960:531 at the same width), so it is never taller than the Brief logos; the link's
   paragraph sits at the card foot like the Brief cards' link paragraph (the core/shortcode block wraps theirs in a p). ====== */
@media (min-width: 1100px) { .pubk-acct .pubk-acct-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 1099px) { .pubk-acct .pubk-acct-card.is-askpubk { grid-column: 1 / -1; } }
.pubk-acct .pubk-acct-card.is-askpubk img { aspect-ratio: 960 / 531; object-fit: contain; }
.pubk-acct .pubk-acct-card.is-askpubk .pubk-acct-ask { margin-bottom: 16px; margin-top: auto; }
/* ====== /0.97.3 ====== */

/* ====== 0.97.7: a link inside a Benchmarking card pill keeps the pill styling (Roundtable 'Suggest a Topic'; Lorian fc81f855) ====== */
.pubk-bm-card-tag a { color: inherit; text-decoration: none; }
.pubk-bm-card-tag a:hover, .pubk-bm-card-tag a:focus-visible { text-decoration: underline; }
/* ====== /0.97.7 ====== */

/* ====== 0.98.0: /community/jobs/purchase/ (Gravity Forms form 4 inside the jobs card) ====== */
.pubk-jobbuy .pubk-jobform-card .gform_wrapper { margin: 0; }
.pubk-jobbuy .pubk-jobform-card .gform_wrapper .gform_footer { margin-top: 24px; }
/* ====== /0.98.0 ====== */

/* ====== 0.98.2: the /news-visitors/ sign-in card is one Sign In button, no password form (Lorian 520a68c4) ====== */
.pubk-news .signin-card a.signin-submit, .pubk-news .signin-card a.signin-submit:hover { color: #fff; text-decoration: none; }
.pubk-news .signin-card a.signin-submit:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
@media (forced-colors: active) { .pubk-news .signin-card a.signin-submit { border: 1px solid LinkText; } }
/* ====== /0.98.2 ====== */

/* === legal-A legal pages (Palino B) === */
/* Legal Pages A (Amanda monday 13161146189; Lorian 40334c64 / 666cc71c): /terms-of-use/ and /member-agreement/ (renamed from /member-services-agreement/, Lorian 771818d2) reuse the 0.96.6 Privacy layout.
   Added here: the numbered subsection heading (Member Agreement 2.1 ... 15.10), the hero lede line (its "Master terms ..." line), a list
   item whose text carries markup (wrapped in one span so it stays one flex item), and the two new footer links in the Privacy link's colours. */
.pubk-pv .pubk-pv-sec h3 { align-items: baseline; color: var(--navy); display: flex; font-family: var(--serif); font-size: 21px; font-weight: 460; gap: 12px; letter-spacing: -0.01em; line-height: 1.3; margin: 32px 0 12px; }
.pubk-pv-sec h3 .pubk-pv-num { color: var(--gold); flex-shrink: 0; font-size: 16px; font-weight: 380; }
.pubk-pv .pubk-pv-lede { color: var(--pv-body); font-family: var(--serif); font-size: 18px; font-style: italic; line-height: 1.5; margin: 14px 0 0; }
.pubk-footer a.pubk-footer-terms, .pubk-footer a.pubk-footer-msa { color: var(--on-navy-muted); text-decoration: none; }
.pubk-footer a.pubk-footer-terms:hover, .pubk-footer a.pubk-footer-msa:hover { color: #fff; }
.pubk-footer a.pubk-footer-privacy, .pubk-footer a.pubk-footer-terms, .pubk-footer a.pubk-footer-msa { white-space: nowrap; }   /* a link name never breaks across lines (390) */
@media (max-width: 600px) {
  .pubk-pv .pubk-pv-sec h3 { font-size: 19px; }
}
/* === /legal-A legal pages === */

/* === part-sf lane sponsor-form-restyle (Crim) === */
/* /annual-review-sponsors/sponsor-form/ (page 836559, Gravity Form 6). Saurabh's inline <style> stays in the page untouched; this block wins over it by
   the extra .pubk-sponsor-form ancestor. Adds the page-level benefits panel layout (markup in the page content) and Amanda's design (Monday 13159790867).
   Form 6 is not edited: everything keys on the rendered ids/classes. */
/* ---- layout: form column + sticky benefits panel (phone: panel above the form) ---- */
.pubk-sponsor-form .pubk-sf-layout {
  --pk-navy: #13223f; --pk-red: #b8282f; --pk-gold: #c2a258; --pk-cream: #f7f4ee; --pk-line: #e3ddd1; --pk-muted: #5b6475;
  display: grid; gap: 28px; grid-template-areas: "panel" "form"; grid-template-columns: minmax(0, 1fr);
  margin: 0 auto; max-width: 1240px; padding: 44px 20px 72px;
}
@media (min-width: 1024px) {
  .pubk-sponsor-form .pubk-sf-layout { column-gap: 32px; grid-template-areas: "form panel"; grid-template-columns: minmax(0, 1fr) 340px; padding: 64px 32px 96px; }
}
.pubk-sponsor-form .pubk-sf-layout > .pubk-sf-wrap { grid-area: form; margin: 0; max-width: none; min-width: 0; padding: 0; }
.pubk-sponsor-form .pubk-sf-register { color: #13223f; font-family: var(--serif); font-size: 24px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.3; margin: 0 auto; max-width: 1240px; padding: 44px 20px 0; }
.pubk-sponsor-form .pubk-sf-register + .pubk-sf-layout { padding-top: 24px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_130 { display: none; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_161 { border-top: 1px solid var(--pk-line); margin-top: 12px; padding-top: 24px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_161 .gchoice { align-items: flex-start; display: flex; gap: 14px; margin: 0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_161 .gchoice input[type="checkbox"] { accent-color: var(--pk-red); flex: 0 0 18px; height: 18px; margin: 5px 0 0; width: 18px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_161 .gchoice label { color: var(--pk-navy); flex: 1 1 auto; font-size: 14px; font-weight: 400; letter-spacing: 0; line-height: 1.65; margin: 0; max-width: none; min-width: 0; padding: 0; text-transform: none; }
@media (min-width: 1024px) {
  .pubk-sponsor-form .pubk-sf-register { padding: 64px 32px 0; }
  .pubk-sponsor-form .pubk-sf-layout > .pubk-sf-wrap #sponsor-form, .pubk-sponsor-form .pubk-sf-layout #sponsor-form { margin-top: 0; }
}

/* ---- benefits panel ---- */
.pubk-sponsor-form .pubk-sf-panel { align-self: start; background: #fff; border: 1px solid var(--pk-line); border-top: 3px solid var(--pk-gold); box-sizing: border-box; grid-area: panel; padding: 22px 24px 20px; }
@media (min-width: 1024px) {
  .pubk-sponsor-form .pubk-sf-panel { max-height: calc(100vh - var(--pubk-sticky-top, 0px) - var(--pubk-bar-h, 38px) - 40px); overflow-y: auto; position: sticky; top: calc(var(--pubk-sticky-top, 0px) + var(--pubk-bar-h, 38px) + 20px); }
}
.pubk-sponsor-form .pubk-sf-lv-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between; margin: 0 0 12px; }
.pubk-sponsor-form .pubk-sf-lv-eyebrow { color: var(--pk-gold); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; line-height: 1.4; margin: 0 0 12px; text-transform: uppercase; }
.pubk-sponsor-form .pubk-sf-lv-head .pubk-sf-lv-eyebrow { margin: 0; }
.pubk-sponsor-form .pubk-sf-lv-eyebrow span { color: var(--pk-muted); letter-spacing: 0.1em; }
.pubk-sponsor-form .pubk-sf-lv-more { color: var(--pk-red); font-size: 12px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.pubk-sponsor-form .pubk-sf-lv-more:hover, .pubk-sponsor-form .pubk-sf-lv-more:focus-visible { text-decoration: underline; }
.pubk-sponsor-form .pubk-sf-lv-list { list-style: none; margin: 0; padding: 0; }
.pubk-sponsor-form .pubk-sf-lv-list li { color: var(--pk-navy); display: flex; font-size: 13.5px; gap: 10px; line-height: 1.45; margin: 0; padding: 5px 0; }
.pubk-sponsor-form .pubk-sf-lv-list li::before { color: var(--pk-gold); content: "\2713"; flex: 0 0 auto; font-weight: 700; }
.pubk-sponsor-form .pubk-sf-lv-note { border-top: 1px solid var(--pk-line); color: var(--pk-muted); font-size: 13px; line-height: 1.5; margin: 12px 0 0; padding-top: 12px; }
.pubk-sponsor-form .pubk-sf-empty-p { color: var(--pk-muted); font-size: 14px; line-height: 1.55; margin: 0 0 10px; }

/* panel switching: one block per checked level radio (field 20, choices 0-6); nothing checked = the empty prompt */
.pubk-sponsor-form .pubk-sf-lv { display: none; }
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_0:checked) .pubk-sf-lv[data-level="0"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_1:checked) .pubk-sf-lv[data-level="1"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_2:checked) .pubk-sf-lv[data-level="2"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_3:checked) .pubk-sf-lv[data-level="3"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_4:checked) .pubk-sf-lv[data-level="4"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_5:checked) .pubk-sf-lv[data-level="5"],
.pubk-sponsor-form .pubk-sf-layout:has(#choice_6_20_6:checked) .pubk-sf-lv[data-level="6"] { display: block; }
.pubk-sponsor-form .pubk-sf-layout:has(input[name="input_20"]:checked) .pubk-sf-empty { display: none; }
/* no :has() support: every level block stacked, never an empty panel */
@supports not selector(:has(*)) {
  .pubk-sponsor-form .pubk-sf-lv { display: block; }
  .pubk-sponsor-form .pubk-sf-lv + .pubk-sf-lv { border-top: 1px solid var(--pk-line); margin-top: 18px; padding-top: 18px; }
  .pubk-sponsor-form .pubk-sf-empty { display: none; }
  .pubk-sponsor-form .pubk-sf-panel { max-height: none; overflow: visible; position: static; }
}

/* ---- phones and tablets (panel sits above the form): a short summary with a "See all sponsor benefits" expander; from 1024px the panel is exactly as before ---- */
.pubk-sponsor-form .pubk-sf-more-toggle { height: 1px; margin: 0; opacity: 0; overflow: hidden; pointer-events: none; position: absolute; width: 1px; }
.pubk-sponsor-form .pubk-sf-more-btn { display: none; }
@media (max-width: 1023.98px) {
  .pubk-sponsor-form .pubk-sf-panel { padding: 18px 20px 16px; position: relative; }
  .pubk-sponsor-form .pubk-sf-panel:has(.pubk-sf-more-toggle) .pubk-sf-lv-list li:nth-child(n+4), .pubk-sponsor-form .pubk-sf-panel:has(.pubk-sf-more-toggle) .pubk-sf-lv-note { display: none; }
  .pubk-sponsor-form .pubk-sf-more-btn { align-items: center; color: var(--pk-red); cursor: pointer; display: flex; font-size: 14px; font-weight: 600; gap: 8px; margin: 12px 0 0; min-height: 44px; }
  .pubk-sponsor-form .pubk-sf-more-btn::after { border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; content: ""; height: 7px; transform: rotate(45deg) translate(-2px, -2px); width: 7px; }
  .pubk-sponsor-form .pubk-sf-more-hide { display: none; }
  .pubk-sponsor-form .pubk-sf-more-toggle:focus-visible ~ .pubk-sf-more-btn { outline: 2px solid var(--pk-navy); outline-offset: 2px; }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-more-btn .pubk-sf-more-show { display: none; }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-more-btn .pubk-sf-more-hide { display: inline; }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-more-btn::after { transform: rotate(-135deg) translate(-2px, -2px); }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-empty { display: none; }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-lv { display: block; }
  .pubk-sponsor-form .pubk-sf-more-toggle:checked ~ .pubk-sf-lv + .pubk-sf-lv { border-top: 1px solid var(--pk-line); margin-top: 18px; padding-top: 18px; }
  .pubk-sponsor-form .pubk-sf-panel:has(.pubk-sf-more-toggle) .pubk-sf-more-toggle:checked ~ .pubk-sf-lv .pubk-sf-lv-list li:nth-child(n+4) { display: flex; }
  .pubk-sponsor-form .pubk-sf-panel:has(.pubk-sf-more-toggle) .pubk-sf-more-toggle:checked ~ .pubk-sf-lv .pubk-sf-lv-note { display: block; }
}
@supports not selector(:has(*)) {
  .pubk-sponsor-form .pubk-sf-more-btn, .pubk-sponsor-form .pubk-sf-more-toggle { display: none; }
}

/* ---- form card: Amanda's design (serif headings, level rows, section rules) ---- */
.pubk-sponsor-form #sponsor-form { border-radius: 0; }
.pubk-sponsor-form #sponsor-form::before { height: 3px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme .gform_body::before {
  color: var(--pk-navy); content: "Primary sponsorship contact"; display: block; font-family: var(--serif); font-size: 24px; font-weight: 460; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 22px;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_136 { border-top: 1px solid var(--pk-line); margin-top: 12px; padding-top: 26px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_136,
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_136 b,
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_136 u {
  color: var(--pk-gold) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.22em; text-decoration: none; text-transform: uppercase;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_136 > b::after { color: var(--pk-muted); content: " (optional)"; letter-spacing: 0.1em; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 { border-top: 3px solid var(--pk-gold); margin-top: 26px; padding-top: 32px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 legend.gfield_label {
  font-family: var(--serif); font-size: 24px !important; font-weight: 460 !important; letter-spacing: -0.01em; line-height: 1.25; margin: 0 0 18px; text-transform: none;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gfield_radio { display: flex; flex-direction: column; gap: 10px; max-width: 560px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice { background: #fff; border-radius: 6px; padding: 13px 16px; position: relative; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice:has(input:checked) { background: var(--pk-cream); border-color: var(--pk-navy); box-shadow: 0 0 0 1px var(--pk-navy) inset; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice input[type="radio"] { accent-color: var(--pk-red); }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label { align-items: center; display: flex; gap: 12px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label::after { color: var(--pk-muted); font-size: 12px; font-weight: 400; order: 2; text-align: right; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label b { flex: 1 1 auto; min-width: 0; order: 1; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice .pubk-sf-sep { display: none; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice .pubk-sf-price { color: var(--pk-navy); font-family: var(--serif); font-size: 17px; font-variant-numeric: tabular-nums; font-weight: 500; letter-spacing: -0.01em; line-height: 1.2; min-width: 72px; order: 3; text-align: right; white-space: nowrap; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_0 .pubk-sf-price { color: #5f6b7a; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_1 .pubk-sf-price { color: #4d7099; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_2 .pubk-sf-price { color: #8a6a14; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_3 .pubk-sf-price { color: #6f747d; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_4 .pubk-sf-price { color: #96591f; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_5 .pubk-sf-price, .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_6 .pubk-sf-price { color: #65748c; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gfield_description { color: var(--pk-muted); font-size: 14px; line-height: 1.55; margin: 16px 0 0; max-width: 560px; padding: 0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_0 label::after,
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_1 label::after { content: "3 speaker slots"; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_2 label::after { content: "2 speaker slots"; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_3 label::after { content: "1 speaker slot"; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_4 label::after { content: "Speaking not guaranteed"; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_5 { margin-top: 36px !important; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_5::before {
  color: var(--pk-gold); content: "Specialty sponsorships (non-speaking)"; font-size: 11px; font-weight: 700; left: 0; letter-spacing: 0.18em; line-height: 1.4; position: absolute; text-transform: uppercase; top: -24px; white-space: nowrap;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_21 .gfield_radio { flex-direction: column; grid-template-columns: 1fr; max-width: 560px; }

/* form 6 field 136 ships unclosed <b> tags, so the parser re-opens a <b> inside every later block (fieldset > b > legend); neutralise their bolding */
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme b { font-weight: inherit; }

/* speaker cards: red rule, calm intro paragraph, red eyebrow per speaker */
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_11, #field_6_80, #field_6_47, #field_6_64, #field_6_121, #field_6_22) { border-top: 3px solid var(--pk-red); margin-top: 26px; padding-top: 30px !important; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_11, #field_6_80, #field_6_47, #field_6_64, #field_6_121, #field_6_22) .gsection_title {
  border-left: 0; color: var(--pk-muted); font-size: 15px !important; font-weight: 400 !important; line-height: 1.6 !important; padding-left: 0;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_12, #field_6_31, #field_6_39, #field_6_81, #field_6_89, #field_6_97, #field_6_48, #field_6_56, #field_6_65, #field_6_122),
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_12, #field_6_31, #field_6_39, #field_6_81, #field_6_89, #field_6_97, #field_6_48, #field_6_56, #field_6_65, #field_6_122) * {
  color: var(--pk-red) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.18em !important; margin: 0 !important; text-transform: uppercase;
}
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_31, #field_6_39, #field_6_89, #field_6_97, #field_6_56, #field_6_65) { border-top: 1px solid var(--pk-line); padding-top: 24px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_16, #field_6_35, #field_6_43, #field_6_85, #field_6_93, #field_6_101, #field_6_52, #field_6_60, #field_6_69, #field_6_126),
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_16, #field_6_35, #field_6_43, #field_6_85, #field_6_93, #field_6_101, #field_6_52, #field_6_60, #field_6_69, #field_6_126) * {
  color: var(--pk-navy) !important; font-size: 13px !important; font-weight: 700 !important; margin: 0 !important;
}

/* sponsorship total: serif heading (inside the navy payment card below) */
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_74 .gsection_title { font-family: var(--serif) !important; font-size: 24px !important; font-weight: 460 !important; letter-spacing: -0.01em !important; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme .gfield--type-total { border-radius: 0; }

/* ---- payment card (Round 3): fields 74 (heading), 73 (total), 120 (Invoice Me), 160 (card) read as one navy card; each field paints its own navy plus a 22px shadow over the grid gap below it, so the card stays whole whichever of 120/160 is last visible (160 hides when Invoice Me = Yes) ---- */
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_74, #field_6_73, #field_6_120, #field_6_160) { background: var(--pk-navy); box-shadow: 0 22px 0 var(--pk-navy); box-sizing: border-box; padding-left: 28px; padding-right: 28px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_139 { display: none; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_74 { border-top: 0; margin-top: 10px; padding: 30px 28px 0 !important; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_74 .gsection_title { border: 0; color: #fff !important; margin: 0; padding: 0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_73 { border-radius: 0; padding-bottom: 0; padding-top: 0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_73 .gfield_label { color: #c8d2e0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 { border: 0; margin-inline: 0; min-inline-size: 0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 legend.gfield_label, .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_160 > .gfield_label { color: #c8d2e0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 .gfield_required, .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 .gfield_required_text, .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_160 .gfield_required, .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_160 .gfield_required_text { color: #c8d2e0; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 .gchoice label { color: #fff; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_120 .gchoice input[type="checkbox"] { accent-color: var(--pk-red); }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_160 .ginput_container_creditcard { background: #fff; border-radius: 6px; box-sizing: border-box; padding: 16px; }
.pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme :is(#field_6_73, #field_6_120, #field_6_160) .validation_message { color: #ffc2c2; }

@media (max-width: 640px) {
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label { flex-wrap: wrap; row-gap: 2px; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label::after { flex-basis: 100%; order: 3; text-align: left; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice .pubk-sf-price { min-width: 0; order: 2; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice label b { flex: 1 1 0; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_5 { margin-top: 52px !important; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme #field_6_20 .gchoice_6_20_5::before { letter-spacing: 0.12em; top: -38px; white-space: normal; }
  .pubk-sponsor-form #sponsor-form .gform_wrapper.gravity-theme .gform_body::before { font-size: 22px; }
}
/* === /part-sf lane sponsor-form-restyle === */

/* === part-ty lane sponsor-thank-you (Crim; Amanda monday 13159790867) === */
.pubk-sponsor-ty .pubk-sty-hero { background: var(--navy) radial-gradient(700px 420px at 90% -10%, rgba(194, 162, 88, 0.26), transparent 70%) no-repeat; color: #fff; }
.pubk-sponsor-ty .pubk-sty-hero > .pubk-container { box-sizing: border-box; padding: 84px 32px 88px; }
.pubk-sponsor-ty .pubk-sty-eyebrow { color: var(--gold-soft); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 16px; text-transform: uppercase; }
.pubk-sponsor-ty .pubk-sty-h1 { color: #fff; font-family: var(--serif); font-size: 46px; font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin: 0; max-width: 760px; text-wrap: pretty; }
.pubk-sponsor-ty .pubk-sty-h1 em { color: var(--gold-soft); font-style: italic; }
.pubk-sponsor-ty .pubk-sty-lede { color: #C8D2E0; font-size: 18px; line-height: 1.6; margin: 24px 0 0; max-width: 640px; }
.pubk-sponsor-ty .pubk-sty-body { background: var(--cream); border-top: 6px solid transparent; border-image: linear-gradient(90deg, var(--navy) 0 20%, var(--red) 20% 80%, var(--gold) 80% 100%) 1; }
.pubk-sponsor-ty .pubk-sty-body > .pubk-container { box-sizing: border-box; padding: 64px 32px 88px; }
.pubk-sponsor-ty .pubk-sty-person { align-items: center; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gold); display: flex; gap: 20px; max-width: 420px; padding: 32px; }
.pubk-sponsor-ty .pubk-sty-person-photo { border-radius: 50%; display: block; flex: 0 0 auto; height: 88px; object-fit: cover; width: 88px; }
.pubk-sponsor-ty .pubk-sty-person-role { color: var(--red); font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: 0.22em; line-height: 1.4; margin: 0 0 6px; text-transform: uppercase; }
.pubk-sponsor-ty .pubk-sty-person-name { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 460; letter-spacing: -0.01em; margin: 0; }
.pubk-sponsor-ty .pubk-sty-person-mail { color: var(--slate); font-size: 14px; line-height: 1.6; margin: 6px 0 0; }
.pubk-sponsor-ty .pubk-sty-person-mail a { color: var(--slate); font-size: inherit; text-decoration: none; }
.pubk-sponsor-ty .pubk-sty-person-mail a:first-child { font-weight: 600; }
.pubk-sponsor-ty .pubk-sty-person-mail a:hover { color: var(--red); }
@media (max-width: 999px) { .pubk-sponsor-ty .pubk-sty-h1 { font-size: 38px; } .pubk-sponsor-ty .pubk-sty-hero > .pubk-container { padding: 64px 24px 68px; } .pubk-sponsor-ty .pubk-sty-body > .pubk-container { padding: 48px 24px 64px; } }
@media (max-width: 600px) { .pubk-sponsor-ty .pubk-sty-h1 { font-size: 32px; } .pubk-sponsor-ty .pubk-sty-hero > .pubk-container { padding: 52px 20px 56px; } .pubk-sponsor-ty .pubk-sty-person { padding: 22px 20px; } }
/* layout: the contact card sits to the right of the message at desktop, under it on phones (Amanda monday 13159790867) */
.pubk-sponsor-ty .pubk-sty-hero { border-bottom: 6px solid transparent; border-image: linear-gradient(90deg, var(--navy) 0 20%, var(--red) 20% 80%, var(--gold) 80% 100%) 1; }
.pubk-sponsor-ty .pubk-sty-row { align-items: center; display: flex; gap: 56px; justify-content: space-between; }
.pubk-sponsor-ty .pubk-sty-msg { flex: 1 1 auto; min-width: 0; }
.pubk-sponsor-ty .pubk-sty-row > .pubk-sty-person { color: var(--ink); flex: 0 0 auto; width: 380px; max-width: none; }
@media (max-width: 999px) { .pubk-sponsor-ty .pubk-sty-row { align-items: stretch; flex-direction: column; gap: 40px; } .pubk-sponsor-ty .pubk-sty-row > .pubk-sty-person { max-width: 420px; width: auto; } }
/* === /part-ty lane sponsor-thank-you === */

/* === template-edits-r1 (Amanda's Template Edits Sheet, board 13153063457; Lorian 70e96af1) === */
/* rows 4 + 9: a shorter Brief hero (the archives and the four library pages share it), type as on /membership/; colours unchanged (row 4 "green theme" waits on Q2) */
.pubk-lib-hero { padding: 44px 0 40px; }
.pubk-lib-crumb { margin-bottom: 14px; }
.pubk-lib-hero h1 { font-size: clamp(38px, 3.75vw, 54px); font-weight: 380; letter-spacing: -0.02em; line-height: 1.1; margin-top: 10px; }
.pubk-lib-hero p { font-size: 18px; font-weight: 400; line-height: 1.6; margin-top: 14px; }
.pubk-lib-hero-grid { gap: 48px; grid-template-columns: minmax(0,1fr) minmax(200px,280px); }
.pubk-lib-hero-logo { padding: 20px; }
@media (max-width: 720px) {
  .pubk-lib-hero { padding: 32px 0 30px; }
  .pubk-lib-hero-grid { gap: 24px; grid-template-columns: minmax(0,1fr); }
  .pubk-lib-hero-logo { max-width: 260px; padding: 16px; }
}
/* row 35: the Insights index hero in the one gold, the Ask Pub K logo as its title */
.pubk-lib-archive-sec .pubk-lib-hero { --pubk-lib-accent: var(--gold); }
.pubk-lib-hero h1.pubk-lib-sec-title { align-items: baseline; display: flex; flex-wrap: wrap; gap: 0 14px; }
.pubk-lib-sec-title img { display: block; height: clamp(40px, 4vw, 56px); width: auto; }
.pubk-lib-sec-title em { color: var(--ink); font-style: italic; }
/* row 4: the Annual Review ad (the house creative's words, colours and link) with the Annual Review logo, first in the Brief rails */
a.side-ar, .pubk-lib-page a.side-ar { background: var(--navy); box-sizing: border-box; color: #fff; display: flex; flex-direction: column; gap: 10px; margin: 0 auto; max-width: 100%; padding: 24px; text-decoration: none; width: 300px; }
.side-ar-logo { display: block; height: auto; margin: 0 0 6px; max-width: 200px; width: 100%; }
.side-ar-k { color: var(--gold-soft); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.side-ar-h { color: #fff; font-family: var(--serif); font-size: 19px; font-weight: 500; line-height: 1.22; }
.side-ar-btn { align-self: flex-start; background: var(--red); color: #fff; font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .14em; margin-top: 8px; padding: 12px 22px; text-transform: uppercase; white-space: nowrap; }
a.side-ar:hover .side-ar-btn, a.side-ar:focus-visible .side-ar-btn { background: #a50d25; }
/* row 35: the four Briefs as stacked ads on the Insights index */
.side-brief-ads { display: flex; flex-direction: column; gap: 12px; }
.pubk-lib-page a.side-brief-ad, a.side-brief-ad { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--mark-protests); display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; transition: background .2s; }
.side-brief-ad--cyber { border-top-color: var(--mark-cyber) !important; }
.side-brief-ad--compliance { border-top-color: var(--mark-compliance) !important; }
.side-brief-ad--transforming { border-top-color: var(--mark-transforming) !important; }
.side-brief-ad img { display: block; height: auto; max-height: 52px; max-width: 100%; object-fit: contain; object-position: left center; width: auto; }
.side-brief-ad-link { color: var(--navy); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.pubk-lib-page a.side-brief-ad:hover { background: var(--cream-soft); }
/* row 34: the homepage hero gets the dark blue hue of the Annual Review band lower on the page (the same navy layer), keeping its gold glow */
.pubk-hero .wp-block-cover__background {
  background: radial-gradient(700px 420px at 88% -10%, rgba(194, 162, 88, 0.28), transparent 70%),
    linear-gradient(rgba(11, 37, 69, 0.9), rgba(11, 37, 69, 0.9)) !important;
}
/* === /template-edits-r1 === */

/* === account-wording cards (Palino B) === */
/* Account Page Wording (Amanda monday 13162059905; Lorian 1b783bb6 / 9d376e80): the date line is gone from every card, so the cards are shorter by that
   line; the Ask Pub K card now carries the same pill + link as the Brief cards. Tighter padding and gaps, and every card's link sits at its foot, so the
   five cards line up with no empty band between the image, the pill and the link. */
.pubk-acct .pubk-acct-card { gap: 10px; padding: 18px 20px 20px; }
.pubk-acct .pubk-acct-card img { margin-bottom: 4px; }
.pubk-acct .pubk-acct-card.is-askpubk img { margin-bottom: 4px; }
/* The shortcode output passes through wpautop: an empty <p></p> follows each image and every card link sits in its own <p>. The empty one is hidden (it
   was the band between the image and the pill); the link's <p> is pushed to the card's foot. */
.pubk-acct .pubk-acct-card > p:empty { display: none; }
.pubk-acct .pubk-acct-card > p:last-child { margin: auto 0 0; padding-top: 4px; }
.pubk-acct .pubk-acct-card > a.pubk-acct-card-a { margin-top: auto; padding-top: 4px; }   /* the interim Ask Pub K card (no pill): wpautop leaves its link bare */
/* === /account-wording cards === */

/* === template-edits-r2 (Amanda's Template Edits Sheet rows 6-9, board 13153063457; Lorian 70e96af1) === */
/* row 6: TOPICS, the Brief's subtopics, the header in the Brief's own brand colour (article rails + the library pages' rail) */
.pubk-news .side-topics .side-block-head, .pubk-lib-page .side-topics .side-block-head { background: var(--mark-protests); }
.pubk-news .side-topics--cyber .side-block-head, .pubk-lib-page .side-topics--cyber .side-block-head { background: var(--mark-cyber); }
.pubk-news .side-topics--compliance .side-block-head, .pubk-lib-page .side-topics--compliance .side-block-head { background: var(--mark-compliance); }
.pubk-news .side-topics--transforming .side-block-head, .pubk-lib-page .side-topics--transforming .side-block-head { background: var(--mark-transforming); }
/* row 6: the locked view's short rail (C-08) keeps TOPICS and the Annual Review card on desktop */
@media (min-width: 1025px) {
  .pubk-news .art-wrap .layout:has(.art-paywall) .sidebar > .side-topics { display: block; }
  .pubk-news .art-wrap .layout:has(.art-paywall) .sidebar > .side-ar { display: flex; }
}
/* row 6: the Brief logo on the left of the paywall text */
.pubk-news .art-paywall .art-paywall-logo { display: block; flex: 0 0 auto; height: auto; max-width: 150px; width: 150px; }
.pubk-news .art-paywall .brief-cta-text { flex: 1 1 260px; }
@media (max-width: 640px) {
  .pubk-news .art-paywall .art-paywall-logo { width: 120px; }
}
/* === /template-edits-r2 === */

/* === template-edits-r3 (the two news hubs; Amanda rows 31-32; SPEC section 7) === */
/* row 31 (25): each Brief section's paywall block in its Brief's colour (the tile colours) */
.pubk-news .brief-cta.brief-cta--protests { background: var(--mark-protests); }
.pubk-news .brief-cta.brief-cta--cyber { background: var(--mark-cyber); }
.pubk-news .brief-cta.brief-cta--compliance { background: var(--mark-compliance); }
.pubk-news .brief-cta.brief-cta--transforming { background: var(--mark-transforming); }
.pubk-news .brief-cta[class*="brief-cta--"] .brief-cta-text .k, .pubk-news .brief-cta[class*="brief-cta--"] .brief-cta-text > span:last-child { color: rgba(255, 255, 255, .88); }
/* row 31 (17): the four small articles stay blurred for visitors, as the teasers were */
.pubk-news .mini-item--locked { align-items: center; filter: blur(3px); opacity: .5; user-select: none; }
.pubk-news .mini-item--locked .ghost-stack { display: flex; flex: 1; flex-direction: column; gap: 8px; }
/* rows 31-32 (18/29): the Ask Pub K Insights section, built like the four */
.pubk-news .sec-insights .sec-logo--apk img { height: auto; max-height: 44px; width: auto; }
/* === /template-edits-r3 === */

/* === sidebar-round2 (Template Edits batch four: Amanda's sidebar round two, board 13153063457; Lorian 71857fc4) === */
/* 2.2 / 3.1 / 5.3: the Annual Review card with its text, logo and button centred (the tickets card on the library pages; the sponsor card on the
   subcategory pages) */
a.side-ar.side-ar--center, .pubk-lib-page a.side-ar.side-ar--center { align-items: center; text-align: center; }
a.side-ar.side-ar--center .side-ar-logo { margin-left: auto; margin-right: auto; }
a.side-ar.side-ar--center .side-ar-btn { align-self: center; }
/* === /sidebar-round2 === */

/* === blur-r4 (R4: a non-member's Brief index / topic archive, Amanda batch one + batch four; Lorian 80fa9f6c / 5c6f1be0) === */
/* The top article reads as it is; the article paywall prompt follows; every other article stays a real link with its title and date in the
   markup, blurred on screen (nothing hidden from search engines). */
.pubk-lib-article.is-locked h3, .pubk-lib-article.is-locked time { filter: blur(5px); user-select: none; }
.pubk-lib-article.is-locked a { opacity: .75; }
.pubk-lib-paywall { background: transparent; padding: 18px 0; }
.pubk-lib-paywall .art-paywall { margin: 0; position: relative; }
/* === /blur-r4 === */

/* === part-mpt lane monthly-pricing-toggle (Aslan) === */
/* /briefs/ Monthly / Annual toggle (Amanda monday 13169958860; Lorian 72622cac / af143eca): monthly shown by default, the annual figures one
   click away, no script. Each price carries both figures (.pubk-bf-mo, .pubk-bf-yr); the checked radio decides which set shows. */
.pubk-briefs .pubk-bf-cycle { border: 1px solid var(--navy); display: inline-flex; margin: 0 0 24px; }
.pubk-briefs .pubk-bf-cycle-in { height: 1px; margin: 0; opacity: 0; overflow: hidden; position: absolute; width: 1px; }
.pubk-briefs .pubk-bf-cycle label { background: #fff; color: var(--slate); cursor: pointer; font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; padding: 10px 22px; text-transform: uppercase; }
.pubk-briefs .pubk-bf-cycle label + input + label { border-left: 1px solid var(--navy); }
.pubk-briefs .pubk-bf-cycle-in:checked + label { background: var(--navy); color: #fff; }
.pubk-briefs .pubk-bf-cycle-in:focus-visible + label { outline: 2px solid var(--gold); outline-offset: 2px; }
.pubk-briefs:not(:has(#pubk-bf-cycle-yr:checked)) .pubk-bf-yr { display: none !important; }
.pubk-briefs:has(#pubk-bf-cycle-yr:checked) .pubk-bf-mo { display: none !important; }
/* === /part-mpt lane monthly-pricing-toggle === */

/* === part-faq lane faq-refresh (Aslan) === */
/* /ask-pub-k/resource-library/ Browse by Topic (Amanda monday 13174320528): her numbered lists in answers, set like the answer paragraphs. */
.pubk-rl .pubk-rl-answer .pubk-rl-answer-ol { color: var(--slate); font-size: 15px; line-height: 1.65; margin: 0 0 14px; padding-left: 1.4em; }
.pubk-rl .pubk-rl-answer .pubk-rl-answer-ol li { margin: 0 0 8px; padding-left: 0.2em; }
.pubk-rl .pubk-rl-answer .pubk-rl-answer-ol li:last-child { margin-bottom: 0; }
.pubk-rl .pubk-rl-answer .pubk-rl-answer-ol:last-child { margin-bottom: 0; }
/* === /part-faq lane faq-refresh === */
