:root {
  --pub-ink: #07131f;
  --pub-paper: #f7f2e8;
  --pub-card: #fffcf6;
  --pub-gold: #d2a72c;
  --pub-teal: #0b6c68;
  --pub-muted: #53616b;
  --pub-rule: rgba(7, 19, 31, 0.16);
  --pub-max: 1240px;
  --pub-reading: 760px;
}

body.publication-story,
body.publication-report,
body.publication-generated {
  background: var(--pub-paper);
  color: var(--pub-ink);
}

/* Legacy page navigation, aligned with the shared TREW publication header. */
body.publication-story .trew-nav,
body.publication-report .trew-nav {
  height: 62px;
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid rgba(7, 19, 31, 0.1);
  backdrop-filter: blur(14px);
}
body.publication-story .trew-nav-inner,
body.publication-report .trew-nav-inner {
  max-width: var(--pub-max);
  height: 62px;
  padding: 0 56px;
}
body.publication-story .trew-nav-link,
body.publication-report .trew-nav-link {
  color: #4f5b64;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
}
body.publication-story .trew-nav-link:hover,
body.publication-story .trew-nav-link.active,
body.publication-report .trew-nav-link:hover,
body.publication-report .trew-nav-link.active { color: var(--pub-ink); }
body.publication-story .trew-nav-link.active,
body.publication-report .trew-nav-link.active { border-bottom: 1px solid var(--pub-gold); }
body.publication-story .trew-nav-cta,
body.publication-report .trew-nav-cta {
  padding: 9px 22px;
  color: #755713 !important;
  border: 1px solid rgba(210, 167, 44, 0.58);
}
body.publication-story .nav-hamburger,
body.publication-report .nav-hamburger { color: var(--pub-ink); }

/* Long-form stories become open digital publication spreads. */
body.publication-story .article-wrap {
  max-width: none;
  margin: 0;
  padding: 0 0 96px;
}
body.publication-story .article-wrap > .article-meta,
body.publication-story .article-wrap > h1,
body.publication-story .article-wrap > .article-dek {
  width: min(var(--pub-max), calc(100% - 96px));
  margin-left: auto;
  margin-right: auto;
  color: #fff;
  background: var(--pub-ink);
  box-shadow: 0 0 0 100vmax var(--pub-ink);
  clip-path: inset(0 -100vmax);
}
body.publication-story .article-wrap > .article-meta {
  gap: 0;
  margin-bottom: 0;
  padding-top: 58px;
}
body.publication-story .article-wrap > h1 {
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 18px;
  font-size: clamp(48px, 6.1vw, 78px);
  line-height: 0.99;
  letter-spacing: -0.035em;
}
body.publication-story .article-wrap > .article-dek {
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 30px;
  padding-bottom: 58px;
  color: #d8e0e5;
  font-family: 'Barlow', Arial, sans-serif;
  font-size: clamp(18px, 2vw, 21px);
  line-height: 1.55;
}
body.publication-story .meta-tag,
body.publication-story .meta-date {
  padding: 0 18px;
  color: #71c5c0;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(255,255,255,0.28);
  border-radius: 0;
  font-size: 11px;
  letter-spacing: 0.14em;
}
body.publication-story .article-meta > :first-child { padding-left: 0; border-left: 0; }
body.publication-story .article-wrap > .divider {
  width: min(var(--pub-reading), calc(100% - 48px));
  margin: 44px auto;
  border-color: var(--pub-gold);
}
body.publication-story .article-wrap > p,
body.publication-story .article-wrap > h2,
body.publication-story .article-wrap > h3,
body.publication-story .article-wrap > ul,
body.publication-story .article-wrap > ol,
body.publication-story .article-wrap > .byline-block,
body.publication-story .article-wrap > .pullquote,
body.publication-story .article-wrap > .callout,
body.publication-story .article-wrap > .compliance-note,
body.publication-story .article-wrap > .what-grid,
body.publication-story .article-wrap > .cost-table,
body.publication-story .article-wrap > .event-card,
body.publication-story .article-wrap > .speaker-block,
body.publication-story .article-wrap > .cta-block {
  width: min(var(--pub-reading), calc(100% - 48px));
  margin-left: auto;
  margin-right: auto;
}
body.publication-story .article-wrap > p,
body.publication-story .article-wrap > ul,
body.publication-story .article-wrap > ol {
  color: var(--pub-ink);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 19px;
  line-height: 1.8;
}
body.publication-story .article-wrap > h2 {
  margin-top: 1.8em;
  color: var(--pub-ink);
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.08;
}
body.publication-story .article-wrap > h3 { color: var(--pub-ink); }
body.publication-story .article-wrap li { color: var(--pub-ink); }
body.publication-story .byline-block {
  padding: 22px 0;
  color: var(--pub-ink);
  border-top: 1px solid var(--pub-rule);
  border-bottom: 1px solid var(--pub-rule);
}
body.publication-story .byline-avatar { background: var(--pub-teal); color: #fff; }
body.publication-story .byline-name,
body.publication-story .byline-role { color: var(--pub-ink); }
body.publication-story .pullquote {
  padding: 28px 0 28px 28px;
  color: var(--pub-ink);
  background: transparent;
  border: 0;
  border-left: 3px solid var(--pub-gold);
}
body.publication-story .callout,
body.publication-story .compliance-note,
body.publication-story .event-card,
body.publication-story .cta-block {
  color: var(--pub-ink);
  background: #efe7d7;
  border: 0;
  border-top: 1px solid var(--pub-gold);
  border-radius: 0;
}
body.publication-story .callout p,
body.publication-story .compliance-note p,
body.publication-story .event-card p,
body.publication-story .cta-title,
body.publication-story .cta-sub { color: var(--pub-ink); }
body.publication-story .callout-label,
body.publication-story .section-label,
body.publication-story .event-card-label,
body.publication-story .cta-label { color: var(--pub-teal); }
body.publication-story .what-grid,
body.publication-story .cost-table { border-color: var(--pub-rule); background: transparent; }
body.publication-story .what-row,
body.publication-story .cost-row { border-color: var(--pub-rule); background: transparent; }
body.publication-story .what-label,
body.publication-story .what-text,
body.publication-story .cost-label,
body.publication-story .cost-note,
body.publication-story .cost-range { color: var(--pub-ink); }
body.publication-story .speaker-block { border-color: var(--pub-rule); }
body.publication-story .speaker-name,
body.publication-story .speaker-topic,
body.publication-story .speaker-co { color: var(--pub-ink); }
body.publication-story .cta-btn { border-radius: 0; background: var(--pub-gold); color: var(--pub-ink); }
body.publication-story .cta-btn--ol { background: transparent; border-color: var(--pub-teal); color: var(--pub-teal); }
body.publication-story footer { color: #d8e0e5; background: var(--pub-ink); border-color: rgba(255,255,255,.12); }

/* Market report pages use the same masthead and paper system. */
body.publication-report .report-wrap { max-width: none; padding: 0 0 96px; }
body.publication-report .report-header {
  margin: 0 0 54px;
  padding: 58px max(48px, calc((100% - var(--pub-max)) / 2)) 52px;
  color: #fff;
  background: var(--pub-ink);
}
body.publication-report .report-series { color: #71c5c0; }
body.publication-report .report-title {
  max-width: 980px;
  color: #fff;
  font-size: clamp(48px, 6.1vw, 78px);
  line-height: 0.99;
  letter-spacing: -0.035em;
}
body.publication-report .report-dek { max-width: 820px; color: #d8e0e5; font-size: 20px; }
body.publication-report .report-header > div[style] {
  padding: 0 0 14px !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.publication-report .report-header > div[style] span { color: #a9c5c4 !important; }
body.publication-report .report-meta-row { border-color: rgba(210,167,44,.55); }
body.publication-report .report-meta-item { color: #71c5c0; }
body.publication-report .report-meta-item span { color: #d8e0e5; }
body.publication-report .report-wrap > .view-block,
body.publication-report .report-wrap > .divider,
body.publication-report .report-wrap > .cma-cta,
body.publication-report .report-wrap > .nl-section,
body.publication-report .report-wrap > .disclaimer {
  width: min(940px, calc(100% - 48px));
  margin-left: auto;
  margin-right: auto;
}
body.publication-report .view-block { color: var(--pub-ink); }
body.publication-report .view-block > p { font-size: 17px; line-height: 1.78; }
body.publication-report .view-block h2,
body.publication-report .view-block h3,
body.publication-report .view-block p { color: var(--pub-ink); }
body.publication-report .view-badge {
  padding: 0 0 12px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--pub-gold);
  border-radius: 0;
}
body.publication-report .view-badge-num { color: var(--pub-teal); }
body.publication-report .view-badge-name,
body.publication-report .view-badge-scope { color: var(--pub-ink); }
body.publication-report .stat-grid { gap: 0; border-top: 1px solid var(--pub-rule); border-bottom: 1px solid var(--pub-rule); }
body.publication-report .stat-item {
  padding: 24px;
  background: transparent;
  border: 0;
  border-left: 1px solid var(--pub-rule);
  border-radius: 0;
}
body.publication-report .stat-item:first-child { border-left: 0; }
body.publication-report .stat-num { color: var(--pub-ink); }
body.publication-report .stat-label,
body.publication-report .stat-note { color: var(--pub-muted); }
body.publication-report .callout,
body.publication-report .cma-cta,
body.publication-report .nl-section {
  color: var(--pub-ink);
  background: #efe7d7;
  border: 0;
  border-top: 1px solid var(--pub-gold);
  border-radius: 0;
}
body.publication-report .callout p,
body.publication-report .cma-cta-title,
body.publication-report .cma-cta-body,
body.publication-report .cma-note,
body.publication-report .nl-section p { color: var(--pub-ink); }
body.publication-report .compare-table-wrap { border-color: var(--pub-rule); }
body.publication-report .compare-table { color: var(--pub-ink); background: transparent; }
body.publication-report .compare-table th,
body.publication-report .compare-table td { color: var(--pub-ink); border-color: var(--pub-rule); }
body.publication-report .compare-table th { background: #ece4d5; }
body.publication-report .cma-btn,
body.publication-report .nl-btn { border-radius: 0; background: var(--pub-gold); color: var(--pub-ink); }
body.publication-report .disclaimer { color: var(--pub-muted); }

/* Approval-gated Newsroom articles share the same publication reading system. */
body.publication-generated .article-shell { width: 100%; margin: 0; padding: 0 0 96px; }
body.publication-generated .article-header {
  margin: 0;
  padding: 58px max(48px, calc((100% - var(--pub-max)) / 2)) 54px;
  color: #fff;
  background: var(--pub-ink);
  border: 0;
}
body.publication-generated .article-header h1 {
  max-width: 1040px;
  margin: 0 0 26px;
  color: #fff;
  font-size: clamp(48px, 6.1vw, 78px);
  line-height: .99;
  letter-spacing: -.035em;
}
body.publication-generated .article-deck { max-width: 820px; color: #d8e0e5; font-size: 20px; }
body.publication-generated .article-provenance { gap: 0; margin-top: 28px; }
body.publication-generated .article-provenance span {
  padding: 0 16px;
  color: #71c5c0;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.28);
  border-radius: 0;
}
body.publication-generated .article-provenance span:first-child { padding-left: 0; border-left: 0; }
body.publication-generated .article-signal {
  width: min(var(--pub-max), calc(100% - 96px));
  margin: 52px auto;
  border: 0;
  border-top: 1px solid var(--pub-gold);
  border-bottom: 1px solid var(--pub-rule);
}
body.publication-generated .article-signal > div { padding: 24px 28px; background: transparent; }
body.publication-generated .article-signal > div + div { border-left: 1px solid var(--pub-rule); }
body.publication-generated .article-signal h2 { color: var(--pub-teal); }
body.publication-generated .article-body {
  max-width: var(--pub-reading);
  margin: 56px auto;
  color: var(--pub-ink);
  font-size: 19px;
  line-height: 1.8;
}
body.publication-generated .article-notice,
body.publication-generated .article-sources,
body.publication-generated .article-correction {
  max-width: var(--pub-reading);
  padding: 28px 0;
  color: var(--pub-ink);
  background: transparent;
  border: 0;
  border-top: 1px solid var(--pub-gold);
}
body.publication-generated .article-correction { border-left: 0; }

/* Event details keep their working forms while joining the publication system. */
body.publication-event { background: var(--pub-paper); color: var(--pub-ink); }
body.publication-event .event-header {
  min-height: 0;
  padding: 72px max(48px, calc((100% - var(--pub-max)) / 2)) 64px;
  text-align: left;
  color: #fff;
  background: var(--pub-ink);
}
body.publication-event .event-header .ev-eyebrow { display: none; }
body.publication-event .event-header h1 {
  max-width: 1040px;
  margin: 0 0 24px;
  color: #fff;
  font-size: clamp(52px, 6.1vw, 80px);
  line-height: .99;
  letter-spacing: -.035em;
}
body.publication-event .event-header .hero-sub { max-width: 760px; margin: 0 0 30px; color: #d8e0e5; font-size: 20px; }
body.publication-event .status-chips {
  max-width: 920px;
  margin: 0 0 30px;
  padding: 16px 0;
  gap: 0;
  border-top: 1px solid rgba(210,167,44,.55);
  border-bottom: 1px solid rgba(210,167,44,.55);
}
body.publication-event .status-chip {
  padding: 0 18px;
  color: #71c5c0;
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(255,255,255,.24);
  border-radius: 0;
}
body.publication-event .status-chip:first-child { padding-left: 0; border-left: 0; }
body.publication-event .btn--gold { border-radius: 0; }
body.publication-event .satin-dark-architectural { color: var(--pub-ink); background: var(--pub-paper); background-image: none; }
body.publication-event .satin-dark-architectural .t-h2--light,
body.publication-event .satin-dark-architectural .speaker-card__name { color: var(--pub-ink); }
body.publication-event .satin-dark-architectural .sec-hd > p[style] { color: var(--pub-muted) !important; }
body.publication-event .speaker-grid { gap: 0; border-top: 1px solid var(--pub-rule); border-bottom: 1px solid var(--pub-rule); }
body.publication-event .speaker-card {
  padding: 0 22px 24px;
  background: transparent;
  border: 0;
  border-left: 1px solid var(--pub-rule);
  border-radius: 0;
  box-shadow: none;
}
body.publication-event .speaker-card:first-child { padding-left: 0; border-left: 0; }
body.publication-event .speaker-card:last-child { padding-right: 0; }
body.publication-event .speaker-card__photo { border-radius: 0; }
body.publication-event .speaker-card__role,
body.publication-event .speaker-card__org { color: var(--pub-muted); }
body.publication-event .speaker-card__link { color: var(--pub-teal); }
body.publication-event .split-feature__panel { background-color: var(--pub-ink); background-image: none; }
body.publication-event .gallery-layout img { border-radius: 0; }
body.publication-event .satin-key-threshold { background-color: var(--pub-ink); }
body.publication-event .reg-form-wrap { border-radius: 0; }

@media (max-width: 900px) {
  body.publication-story .trew-nav-inner,
  body.publication-report .trew-nav-inner { padding: 0 20px; }
  body.publication-story .trew-nav-links,
  body.publication-report .trew-nav-links {
    top: 62px;
    background: rgba(255,255,255,.99);
    border-bottom-color: var(--pub-rule);
  }
  body.publication-story .trew-nav-link,
  body.publication-report .trew-nav-link { color: var(--pub-ink); }
  body.publication-story .article-wrap > .article-meta,
  body.publication-story .article-wrap > h1,
  body.publication-story .article-wrap > .article-dek { width: calc(100% - 40px); }
  body.publication-story .article-wrap > .article-meta { padding-top: 42px; }
  body.publication-story .article-wrap > h1 { font-size: clamp(40px, 12vw, 58px); }
  body.publication-story .article-wrap > .article-dek { padding-top: 22px; padding-bottom: 42px; }
  body.publication-report .report-header { padding: 44px 20px 40px; }
  body.publication-report .report-title { font-size: clamp(40px, 12vw, 58px); }
  body.publication-report .report-dek { font-size: 18px; }
  body.publication-generated .article-header { padding: 44px 20px 40px; }
  body.publication-generated .article-header h1 { font-size: clamp(40px, 12vw, 58px); }
  body.publication-generated .article-deck { font-size: 18px; }
  body.publication-generated .article-signal { width: calc(100% - 40px); }
  body.publication-generated .article-signal > div + div { border-left: 0; border-top: 1px solid var(--pub-rule); }
  body.publication-generated .article-body,
  body.publication-generated .article-notice,
  body.publication-generated .article-sources,
  body.publication-generated .article-correction { width: calc(100% - 40px); }
  body.publication-event .event-header { padding: 50px 20px 44px; }
  body.publication-event .event-header h1 { font-size: clamp(42px, 13vw, 60px); }
  body.publication-event .event-header .hero-sub { font-size: 18px; }
  body.publication-event .status-chips { display: grid; gap: 10px; }
  body.publication-event .status-chip,
  body.publication-event .status-chip:first-child { padding: 0; border-left: 0; }
  body.publication-event .speaker-card,
  body.publication-event .speaker-card:first-child,
  body.publication-event .speaker-card:last-child { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--pub-rule); }
  body.publication-report .stat-grid { grid-template-columns: 1fr 1fr; }
  body.publication-report .stat-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--pub-rule); }
  body.publication-report .stat-item:nth-child(4) { border-top: 1px solid var(--pub-rule); }
}

@media (max-width: 560px) {
  body.publication-story .article-wrap > p,
  body.publication-story .article-wrap > ul,
  body.publication-story .article-wrap > ol { font-size: 18px; }
  body.publication-report .stat-grid { grid-template-columns: 1fr; }
  body.publication-report .stat-item,
  body.publication-report .stat-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--pub-rule); }
  body.publication-report .stat-item:first-child { border-top: 0; }
}

/* Reading tools: functional motion and wayfinding for long-form pages. */
.publication-progress{
  position:fixed;z-index:1200;left:0;right:0;top:0;height:3px;
  background:rgba(7,19,31,.12);pointer-events:none;
}
.publication-progress span{
  display:block;width:100%;height:100%;background:var(--pub-gold);
  transform:scaleX(0);transform-origin:left;will-change:transform;
}
.publication-toc{
  position:fixed;z-index:20;right:24px;top:150px;width:190px;padding:18px 0;
  color:var(--pub-ink);background:rgba(246,241,231,.92);border-top:1px solid var(--pub-gold);
  border-bottom:1px solid var(--pub-rule);backdrop-filter:blur(8px);
}
.publication-toc>p{
  margin:0 0 13px;color:var(--pub-teal);font-family:'Barlow Condensed',sans-serif;
  font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
}
.publication-toc ol{display:grid;gap:0;margin:0;padding:0;list-style:none;}
.publication-toc li{margin:0;padding:0;border-top:1px solid rgba(7,19,31,.1);}
.publication-toc a{
  display:block;padding:10px 18px 10px 0;color:var(--pub-muted);
  font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:600;line-height:1.25;
  letter-spacing:.05em;text-transform:uppercase;transition:color .2s ease,padding-left .2s ease;
}
.publication-toc a::before{content:'';display:inline-block;width:0;height:1px;margin:0;vertical-align:middle;background:var(--pub-gold);transition:width .2s ease,margin .2s ease;}
.publication-toc a:hover,.publication-toc a.is-active{color:var(--pub-ink);padding-left:4px;}
.publication-toc a.is-active::before{width:20px;margin-right:8px;}
body.publication-story h2[id],body.publication-report h2[id],body.publication-generated h2[id]{scroll-margin-top:100px;}

@media (max-width: 1280px){.publication-toc{display:none;}}
@media (prefers-reduced-motion:reduce){.publication-progress span{will-change:auto;}.publication-toc *{transition:none!important;}}
