/*
Theme Name: TPB Developer
Template: oceanwp
Description: Editorial design system for Talking Points Brief.
Version: 2.0
Author: Talking Points Brief
*/

/* ==============================================
   TPB DEVELOPER — EDITORIAL FRONT PAGE
   Content-forward. Borders for structure.
   Typography for hierarchy. Dense and readable.
   Sidebar navigation for resources and discovery.
   ============================================== */

/* === DESIGN TOKENS === */
:root {
  --tpb-ink: #1A1D23;
  --tpb-ink-body: #2D3038;
  --tpb-ink-light: #4A4F5C;
  --tpb-ink-muted: #8890A0;

  --tpb-paper: #FEFDFB;
  --tpb-paper-warm: #F8F6F0;
  --tpb-paper-tan: #EFEAE0;

  --tpb-red: #922B21;
  --tpb-red-hover: #7B241C;

  --tpb-rule: #D4D0C8;
  --tpb-rule-dark: #AAA69C;

  --tpb-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --tpb-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --tpb-mono: 'JetBrains Mono', 'Courier New', monospace;
}

/* === GLOBAL === */
body {
  font-family: var(--tpb-serif) !important;
  font-size: 1rem !important;
  line-height: 1.75 !important;
  color: var(--tpb-ink-body) !important;
  background-color: var(--tpb-paper) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--tpb-serif) !important;
  color: var(--tpb-ink) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
}

/* Body text links: underlined for clarity */
a {
  color: var(--tpb-ink) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 120ms ease;
}

a:hover {
  color: var(--tpb-red) !important;
}

/* Headline links: no underline, underline on hover */
h1 a, h2 a, h3 a, h4 a,
.wp-block-heading a {
  text-decoration: none !important;
}

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover,
.wp-block-heading a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}


/* ================================================
   MISSION BAR — Thin, functional, one line
   Enhanced with refined details
   ================================================ */
.tpb-mission-bar {
  border-bottom: 1px solid var(--tpb-rule) !important;
  position: relative;
}

/* Subtle decorative accents */
.tpb-mission-bar::before,
.tpb-mission-bar::after {
  content: '';
  position: absolute;
  bottom: 0;
  height: 1px;
  background: var(--tpb-red);
}

.tpb-mission-bar::before {
  left: 0;
  width: 40px;
}

.tpb-mission-bar::after {
  right: 0;
  width: 40px;
}

.tpb-mission-bar p {
  font-family: var(--tpb-serif) !important;
  font-size: 0.9rem !important;
  color: var(--tpb-ink-light) !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}

.tpb-mission-bar a {
  font-weight: 600 !important;
  color: var(--tpb-ink) !important;
  text-decoration-color: var(--tpb-red) !important;
}

.tpb-mission-bar a:hover {
  color: var(--tpb-red) !important;
}


/* ================================================
   LEAD STORY — The content hero
   Asymmetric 2-column: big story left, secondary right
   Enhanced with decorative structure
   ================================================ */
.tpb-lead {
  gap: 0 !important;
  border-top: 3px solid var(--tpb-ink) !important;
  padding-top: 28px !important;
  position: relative;
}

/* Decorative corner elements for visual interest */
.tpb-lead::before,
.tpb-lead::after {
  content: '';
  position: absolute;
  top: -3px;
  height: 3px;
  background: var(--tpb-red);
}

.tpb-lead::before {
  left: 0;
  width: 40px;
}

.tpb-lead::after {
  right: 0;
  width: 20px;
}

/* Category label — mono, tiny, red with refined spacing */
.tpb-cat {
  font-family: var(--tpb-mono) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.14em !important;
  color: var(--tpb-red) !important;
  margin-bottom: 8px !important;
  line-height: 1.4 !important;
  position: relative;
  padding-bottom: 8px !important;
}

/* Subtle underline accent for category labels */
.tpb-cat::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 24px;
  height: 1px;
  background: var(--tpb-red);
  opacity: 0.4;
}

/* Lead headline — big, commanding with enhanced spacing */
.tpb-lead-main {
  padding-right: 40px !important;
}

.tpb-lead-hed {
  font-size: 2.3rem !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.028em !important;
  margin-bottom: 16px !important;
  margin-top: 4px !important;
  word-spacing: 0.02em;
}

.tpb-lead-hed a:hover {
  text-underline-offset: 4px !important;
  text-decoration-thickness: 2px !important;
  color: var(--tpb-ink) !important;
}

/* Lead excerpt */
.tpb-lead-dek {
  font-size: 1.02rem !important;
  line-height: 1.7 !important;
  color: var(--tpb-ink-light) !important;
  margin-bottom: 12px !important;
}

/* Continue reading link */
.tpb-more {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.tpb-more a {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
  color: var(--tpb-ink) !important;
  border-bottom: 1px solid var(--tpb-ink) !important;
  padding-bottom: 1px;
}

.tpb-more a:hover {
  color: var(--tpb-red) !important;
  border-bottom-color: var(--tpb-red) !important;
}


/* ================================================
   LEAD SIDEBAR — Secondary stories, stacked
   Enhanced with refined spacing and structure
   ================================================ */
.tpb-lead-aside {
  border-left: 2px solid var(--tpb-rule-dark) !important;
  padding-left: 32px !important;
  position: relative;
}

/* Decorative accent at top of sidebar */
.tpb-lead-aside::before {
  content: '';
  position: absolute;
  top: 0;
  left: -2px;
  width: 2px;
  height: 24px;
  background: var(--tpb-red);
}

.tpb-aside-story {
  padding-bottom: 24px !important;
  margin-bottom: 24px !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  position: relative;
}

/* Subtle decorative mark for each story */
.tpb-aside-story::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 30px;
  height: 1px;
  background: var(--tpb-rule-dark);
}

.tpb-aside-story:last-child,
.tpb-lead-aside > .wp-block-group:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.tpb-aside-story:last-child::after {
  display: none;
}

.tpb-aside-hed {
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 6px !important;
  margin-top: 0 !important;
}

.tpb-aside-hed a:hover {
  color: var(--tpb-red) !important;
}

.tpb-aside-dek {
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
  color: var(--tpb-ink-light) !important;
  margin-bottom: 0 !important;
}


/* ================================================
   SECTION HEADINGS — Small caps, rule underneath
   Enhanced with decorative accents
   ================================================ */
.tpb-section-hed {
  font-family: var(--tpb-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding-bottom: 12px !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  border-bottom: 2px solid var(--tpb-ink) !important;
  color: var(--tpb-ink) !important;
  position: relative;
}

/* Decorative accent under section heading */
.tpb-section-hed::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 50px;
  height: 2px;
  background: var(--tpb-red);
}


/* ================================================
   LATEST POSTS — Auto-updating article grid
   Newspaper-style: borders between cells
   Enhanced with sophisticated grid structure
   ================================================ */
.tpb-latest {
  border-top: 2px solid var(--tpb-rule-dark) !important;
  position: relative;
}

/* Add subtle decorative corner brackets */
.tpb-latest::before,
.tpb-latest::after {
  content: '';
  position: absolute;
  top: 0;
  width: 8px;
  height: 2px;
  background: var(--tpb-ink);
}

.tpb-latest::before {
  left: 0;
}

.tpb-latest::after {
  right: 0;
}

.tpb-latest .wp-block-latest-posts {
  list-style: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
  position: relative;
}

/* Grid layout: 2-column newspaper grid with enhanced structure */
.tpb-latest .wp-block-latest-posts.is-grid {
  gap: 0 !important;
  position: relative;
}

/* Add center divider that runs full height */
.tpb-latest .wp-block-latest-posts.is-grid::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--tpb-rule);
  transform: translateX(-0.5px);
}

.tpb-latest .wp-block-latest-posts.is-grid li {
  padding: 22px 0 !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
  position: relative;
}

/* Left column items: enhanced spacing and structure */
.tpb-latest .wp-block-latest-posts.is-grid li:nth-child(odd) {
  padding-right: 32px !important;
}

/* Right column items: enhanced spacing */
.tpb-latest .wp-block-latest-posts.is-grid li:nth-child(even) {
  padding-left: 32px !important;
}

/* Last row items: no bottom border for cleaner finish */
.tpb-latest .wp-block-latest-posts.is-grid li:nth-last-child(-n+2) {
  border-bottom: none !important;
}

.tpb-latest .wp-block-latest-posts__post-title {
  font-family: var(--tpb-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--tpb-ink) !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  display: block !important;
  margin-bottom: 3px !important;
}

.tpb-latest .wp-block-latest-posts__post-title:hover {
  color: var(--tpb-red) !important;
}

.tpb-latest .wp-block-latest-posts__post-date {
  font-family: var(--tpb-mono) !important;
  font-size: 0.65rem !important;
  color: var(--tpb-ink-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  display: block !important;
  margin-bottom: 5px !important;
}

.tpb-latest .wp-block-latest-posts__post-excerpt {
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  color: var(--tpb-ink-light) !important;
  margin-top: 2px !important;
}

/* Read more link — no wrapping, right-aligned at end of excerpt */
.tpb-latest .wp-block-latest-posts__read-more {
  font-family: var(--tpb-sans) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
  color: var(--tpb-ink) !important;
  white-space: nowrap !important;
  border-bottom: 1px solid var(--tpb-ink) !important;
  padding-bottom: 1px !important;
  margin-left: 6px !important;
}

.tpb-latest .wp-block-latest-posts__read-more:hover {
  color: var(--tpb-red) !important;
  border-bottom-color: var(--tpb-red) !important;
}


/* ================================================
   POSITIONING STATEMENT — Brief, clear, functional
   ================================================ */
.tpb-positioning {
  font-family: var(--tpb-serif) !important;
  font-size: 1.05rem !important;
  line-height: 1.65 !important;
  color: var(--tpb-ink-light) !important;
  font-style: italic !important;
  margin: 0 0 4px 0 !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
}

/* ================================================
   CATEGORY NAVIGATION — Dynamic, shows what's available
   ================================================ */
.tpb-category-list li {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.tpb-category-list .tpb-count {
  font-family: var(--tpb-mono) !important;
  font-size: 0.68rem !important;
  color: var(--tpb-ink-muted) !important;
  font-weight: 600 !important;
}

/* ================================================
   RESOURCES SECTION — Essential reading lists
   Enhanced with sophisticated structure
   ================================================ */
.tpb-resources {
  border-top: 2px solid var(--tpb-rule-dark) !important;
  position: relative;
}

/* Decorative corner accents */
.tpb-resources::before,
.tpb-resources::after {
  content: '';
  position: absolute;
  top: 0;
  height: 2px;
  background: var(--tpb-ink);
}

.tpb-resources::before {
  left: 0;
  width: 60px;
}

.tpb-resources::after {
  right: 0;
  width: 30px;
}

.tpb-resources-intro {
  font-size: 0.95rem !important;
  color: var(--tpb-ink-light) !important;
  line-height: 1.6 !important;
  margin-top: 12px !important;
  margin-bottom: 24px !important;
}

.tpb-resources-cols {
  gap: 48px !important;
  margin-bottom: 28px !important;
}

/* Resource lists */
.tpb-resource-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px 0 !important;
}

.tpb-resource-list li {
  padding: 7px 0 !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
  font-size: 0.9rem !important;
  line-height: 1.4 !important;
}

.tpb-resource-list li:last-child {
  border-bottom: none !important;
}

.tpb-resource-list li a {
  text-decoration: none !important;
  color: var(--tpb-ink-body) !important;
}

.tpb-resource-list li a:hover {
  color: var(--tpb-red) !important;
}

/* Resources link at bottom */
.tpb-resources-link {
  margin-top: 32px !important;
  padding-top: 24px !important;
  border-top: 1px solid var(--tpb-rule) !important;
}

.tpb-resources-link a {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--tpb-ink) !important;
  padding-bottom: 2px !important;
}

.tpb-resources-link a:hover {
  color: var(--tpb-red) !important;
  border-bottom-color: var(--tpb-red) !important;
}

/* ================================================
   BOOK RECOMMENDATIONS — Recommended Reading page
   ================================================ */

/* Category section headings */
.tpb-book-category-heading {
  font-family: var(--tpb-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 0 !important;
  margin-top: 40px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid var(--tpb-ink) !important;
}

/* Individual book entry */
.tpb-book-entry {
  padding: 20px 0 24px 0 !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
}

.tpb-book-entry:last-child {
  border-bottom: none !important;
}

/* Book title */
.tpb-book-title {
  font-family: var(--tpb-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: var(--tpb-ink) !important;
  margin-bottom: 2px !important;
  margin-top: 0 !important;
  line-height: 1.35 !important;
}

.tpb-book-title a {
  text-decoration: none !important;
  color: var(--tpb-ink) !important;
  border-bottom: 1px solid var(--tpb-red) !important;
  padding-bottom: 1px !important;
  transition: color 0.15s ease !important;
}

.tpb-book-title a:hover {
  color: var(--tpb-red) !important;
}

/* Author line */
.tpb-book-author {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 10px !important;
  margin-top: 0 !important;
  letter-spacing: 0.02em !important;
}

/* Book description */
.tpb-book-desc {
  font-size: 0.9rem !important;
  color: var(--tpb-ink-light) !important;
  line-height: 1.65 !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}

/* Link to related review/analysis post */
.tpb-book-review-link {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}

.tpb-book-review-link a {
  text-decoration: none !important;
  color: var(--tpb-red) !important;
  transition: color 0.15s ease !important;
}

.tpb-book-review-link a:hover {
  color: var(--tpb-red-hover) !important;
}

/* Affiliate disclosure */
.tpb-affiliate-disclosure {
  font-family: var(--tpb-sans) !important;
  font-size: 0.76rem !important;
  color: var(--tpb-ink-muted) !important;
  padding: 20px 0 !important;
  margin-top: 48px !important;
  border-top: 1px solid var(--tpb-rule) !important;
  line-height: 1.65 !important;
  font-style: italic !important;
}

/* Topic headings — tiny mono labels */
.tpb-topic-name {
  font-family: var(--tpb-mono) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 4px !important;
  margin-top: 18px !important;
}

/* First topic heading: less top margin */
.tpb-topic-group > .wp-block-heading:first-child {
  margin-top: 12px !important;
}

/* Topic article lists with enhanced structure */
.tpb-topic-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 20px 0 !important;
  position: relative;
}

.tpb-topic-list li {
  padding: 7px 0 7px 12px !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
  font-size: 0.9rem !important;
  line-height: 1.4 !important;
  position: relative;
  transition: padding-left 120ms ease;
}

/* Subtle hover effect for interactivity */
.tpb-topic-list li:hover {
  padding-left: 16px !important;
}

/* Decorative marker on hover */
.tpb-topic-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  background: var(--tpb-red);
  transform: translateY(-50%);
  transition: height 120ms ease;
}

.tpb-topic-list li:hover::before {
  height: 60%;
}

.tpb-topic-list li:last-child {
  border-bottom: none !important;
}

.tpb-topic-list li a {
  text-decoration: none !important;
  color: var(--tpb-ink-body) !important;
}

.tpb-topic-list li a:hover {
  color: var(--tpb-red) !important;
}

/* Subscribe column */
.tpb-subscribe-desc {
  font-size: 0.92rem !important;
  color: var(--tpb-ink-light) !important;
  line-height: 1.6 !important;
  margin-top: 14px !important;
  margin-bottom: 14px !important;
}

.tpb-fine-print {
  font-family: var(--tpb-mono) !important;
  font-size: 0.6rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--tpb-ink-muted) !important;
  margin-top: 10px !important;
}

.tpb-subscribe-col .beehiiv-embed {
  width: 100% !important;
  max-width: 400px !important;
  min-height: 52px !important;
}

/* Subscribe separator */
.tpb-subscribe-col .wp-block-separator {
  border-top: 1px solid var(--tpb-rule) !important;
  border-bottom: none !important;
  margin: 24px 0 !important;
  opacity: 1 !important;
}

/* Pullquote — subtle editorial voice */
.tpb-pullquote {
  border-left: 3px solid var(--tpb-red) !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  padding: 12px 20px !important;
  margin: 0 !important;
  background: transparent !important;
}

.tpb-pullquote p {
  font-style: italic !important;
  font-size: 0.92rem !important;
  line-height: 1.55 !important;
  color: var(--tpb-ink-light) !important;
  margin: 0 !important;
}

.tpb-pullquote cite {
  display: block !important;
  font-family: var(--tpb-mono) !important;
  font-size: 0.6rem !important;
  font-style: normal !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin-top: 8px !important;
  color: var(--tpb-ink-muted) !important;
}


/* ================================================
   HOMEPAGE SIDEBAR NAVIGATION
   Prominent resources and discovery
   ================================================ */

/* Main layout with sidebar */
.tpb-lead-with-sidebar {
  gap: 48px !important;
  align-items: flex-start !important;
}

/* Sidebar column styling */
.tpb-sidebar-column {
  position: sticky;
  top: 24px;
}

/* Sidebar sections */
.tpb-sidebar-section {
  border-bottom: 2px solid var(--tpb-rule) !important;
  position: relative;
}

/* Decorative accent on sidebar sections */
.tpb-sidebar-section::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 40px;
  height: 2px;
  background: var(--tpb-red);
}

.tpb-sidebar-section:last-child {
  border-bottom: none !important;
}

.tpb-sidebar-section:last-child::after {
  display: none;
}

/* Sidebar headings */
.tpb-sidebar-hed {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-ink) !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

/* Sidebar intro text */
.tpb-sidebar-intro {
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
  color: var(--tpb-ink-light) !important;
  margin-top: 10px !important;
  margin-bottom: 16px !important;
}

/* Sidebar lists */
.tpb-sidebar-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.tpb-sidebar-list li {
  padding: 9px 0 9px 12px !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
  font-size: 0.92rem !important;
  line-height: 1.4 !important;
  position: relative;
  transition: padding-left 120ms ease;
}

.tpb-sidebar-list li:hover {
  padding-left: 16px !important;
}

/* Decorative marker on hover */
.tpb-sidebar-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  background: var(--tpb-red);
  transform: translateY(-50%);
  transition: height 120ms ease;
}

.tpb-sidebar-list li:hover::before {
  height: 60%;
}

.tpb-sidebar-list li:last-child {
  border-bottom: none !important;
}

.tpb-sidebar-list li a {
  text-decoration: none !important;
  color: var(--tpb-ink-body) !important;
  display: block;
}

.tpb-sidebar-list li a:hover {
  color: var(--tpb-red) !important;
}

/* Sidebar link (view all) */
.tpb-sidebar-link {
  margin: 0 !important;
  font-size: 0.85rem !important;
}

.tpb-sidebar-link a {
  font-family: var(--tpb-sans) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--tpb-ink) !important;
  padding-bottom: 1px !important;
  color: var(--tpb-ink) !important;
}

.tpb-sidebar-link a:hover {
  color: var(--tpb-red) !important;
  border-bottom-color: var(--tpb-red) !important;
}

/* Recent posts in sidebar - WordPress latest-posts block */
.tpb-recent-sidebar .wp-block-latest-posts {
  list-style: none !important;
  padding: 0 !important;
  margin-top: 10px !important;
}

.tpb-recent-sidebar .wp-block-latest-posts li {
  padding: 9px 0 9px 12px !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  margin-bottom: 0 !important;
  position: relative;
  transition: padding-left 120ms ease;
}

.tpb-recent-sidebar .wp-block-latest-posts li:hover {
  padding-left: 16px !important;
}

.tpb-recent-sidebar .wp-block-latest-posts li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  background: var(--tpb-red);
  transform: translateY(-50%);
  transition: height 120ms ease;
}

.tpb-recent-sidebar .wp-block-latest-posts li:hover::before {
  height: 60%;
}

.tpb-recent-sidebar .wp-block-latest-posts li:last-child {
  border-bottom: none !important;
}

.tpb-recent-sidebar .wp-block-latest-posts__post-title {
  font-family: var(--tpb-serif) !important;
  font-size: 0.92rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--tpb-ink-body) !important;
  text-decoration: none !important;
  display: block;
}

.tpb-recent-sidebar .wp-block-latest-posts__post-title:hover {
  color: var(--tpb-red) !important;
}

/* Beehiiv embed in sidebar */
.tpb-subscribe-sidebar .beehiiv-embed {
  width: 100% !important;
  min-height: 52px !important;
  max-width: 100% !important;
  border-radius: 0 !important;
}

/* Fine print in sidebar */
.tpb-sidebar-section .tpb-fine-print {
  font-family: var(--tpb-mono) !important;
  font-size: 0.62rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--tpb-ink-muted) !important;
  margin-top: 12px !important;
  line-height: 1.5 !important;
}


/* ================================================
   RESPONSIVE
   Enhanced to maintain design sophistication
   ================================================ */
@media (max-width: 782px) {
  /* Stack sidebar below main content */
  .tpb-lead-with-sidebar {
    flex-direction: column !important;
    gap: 40px !important;
  }

  .tpb-sidebar-column {
    position: relative !important;
    top: auto !important;
  }

  /* Lead story: stack columns */
  .tpb-lead {
    flex-direction: column !important;
  }

  .tpb-lead-main {
    padding-right: 0 !important;
    margin-bottom: 28px !important;
    padding-bottom: 28px !important;
    border-bottom: 2px solid var(--tpb-rule-dark) !important;
    position: relative;
  }

  /* Decorative accent on stacked lead separator */
  .tpb-lead-main::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 2px;
    background: var(--tpb-red);
  }

  .tpb-lead-aside {
    border-left: none !important;
    padding-left: 0 !important;
  }

  /* Remove sidebar accent when stacked */
  .tpb-lead-aside::before {
    display: none;
  }

  /* Hide vertical divider in discover section on tablet */
  .tpb-discover-cols::before {
    display: none !important;
  }

  .tpb-lead-hed {
    font-size: 1.7rem !important;
  }

  /* Latest posts: single column */
  .tpb-latest .wp-block-latest-posts.is-grid {
    display: block !important;
  }

  /* Hide center divider on mobile */
  .tpb-latest .wp-block-latest-posts.is-grid::before {
    display: none !important;
  }

  .tpb-latest .wp-block-latest-posts.is-grid li:nth-child(odd) {
    padding-right: 0 !important;
  }

  .tpb-latest .wp-block-latest-posts.is-grid li:nth-child(even) {
    padding-left: 0 !important;
  }

  /* Restore bottom borders on all items when stacked */
  .tpb-latest .wp-block-latest-posts.is-grid li:nth-last-child(-n+2) {
    border-bottom: 1px solid var(--tpb-rule) !important;
  }

  .tpb-latest .wp-block-latest-posts.is-grid li:last-child {
    border-bottom: none !important;
  }

  /* Browse + Subscribe: stack */
  .tpb-discover-cols {
    flex-direction: column !important;
    gap: 32px !important;
  }

  /* ===== COMPACT TABLET HEADER ===== */
  /* Slightly reduce header for tablet/portrait mode */

  #site-logo img,
  #site-logo .custom-logo {
    max-height: 65px !important;
    width: auto !important;
  }

  #site-header-inner {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}

@media (max-width: 480px) {
  /* Positioning statement mobile */
  .tpb-positioning {
    font-size: 0.95rem !important;
  }

  .tpb-lead-hed {
    font-size: 1.45rem !important;
  }

  .tpb-lead-dek {
    font-size: 0.92rem !important;
  }

  .tpb-aside-hed {
    font-size: 1rem !important;
  }

  .tpb-mission-bar p {
    font-size: 0.82rem !important;
  }

  /* Single post/page mobile adjustments */
  .single-post .entry-header,
  .page .entry-header {
    padding-top: 40px;
    padding-bottom: 32px;
  }

  .single-post .entry-title,
  .page .entry-title {
    font-size: 1.85rem !important;
    line-height: 1.15 !important;
  }

  .single-post .entry-content,
  .page .entry-content {
    font-size: 1.05rem !important;
    padding-top: 32px;
  }

  .single-post .entry-content h2,
  .page .entry-content h2 {
    font-size: 1.45rem !important;
  }

  .single-post .entry-content h3,
  .page .entry-content h3 {
    font-size: 1.2rem !important;
  }

  .single-post .entry,
  .page:not(.page-id-849):not(.page-id-808):not(.page-id-810) .entry {
    padding: 32px 20px !important;
  }
}

@media (min-width: 481px) and (max-width: 782px) {
  /* Hero blurb tablet */
  .tpb-hero-headline {
    font-size: 2.2rem !important;
  }

  .tpb-hero-subhead {
    font-size: 1.08rem !important;
  }

  /* ===== COMPACT MOBILE HEADER ===== */
  /* Reduce header height to show more content above fold */

  /* Scale down logo to 60% size */
  #site-logo img,
  #site-logo .custom-logo {
    max-height: 50px !important;
    width: auto !important;
    height: auto !important;
  }

  /* Reduce header padding */
  #site-header-inner {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  /* Tighten logo container */
  #site-logo,
  #site-logo-inner {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  /* Align mobile menu icon vertically */
  .oceanwp-mobile-menu-icon {
    display: flex !important;
    align-items: center !important;
    min-height: 50px !important;
  }

  /* Reduce mission bar text if present */
  .tpb-mission-bar {
    padding: 6px 0 !important;
  }

  /* Single post/page tablet adjustments */
  .single-post .entry-header,
  .page .entry-header {
    padding-top: 52px;
    padding-bottom: 36px;
  }

  .single-post .entry-title,
  .page .entry-title {
    font-size: 2.2rem !important;
  }

  .single-post .entry-content,
  .page .entry-content {
    font-size: 1.06rem !important;
    padding-top: 40px;
  }

  .single-post .entry-content h2,
  .page .entry-content h2 {
    font-size: 1.6rem !important;
  }

  .single-post .entry-content h3,
  .page .entry-content h3 {
    font-size: 1.3rem !important;
  }
}


/* ================================================
   SUBSCRIBE PAGE
   ================================================ */
.tpb-subscribe-heading {
  font-size: 2.2rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.025em !important;
  margin-bottom: 12px !important;
}

.tpb-subscribe-intro {
  font-size: 1.02rem !important;
  line-height: 1.7 !important;
  color: var(--tpb-ink-light) !important;
  margin-bottom: 28px !important;
}

/* Form wrapper */
.tpb-form-wrap {
  border-top: 3px solid var(--tpb-ink);
  padding-top: 24px;
  margin-bottom: 28px;
}

/* Honeypot */
.tpb-hp {
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Form fields */
.tpb-form-group {
  margin-bottom: 18px;
}

.tpb-form-group label {
  font-family: var(--tpb-sans);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tpb-ink);
  display: block;
  margin-bottom: 6px;
}

.tpb-form-group .tpb-optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--tpb-ink-muted);
  font-size: 0.68rem;
}

.tpb-form-group input[type="text"],
.tpb-form-group input[type="email"] {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--tpb-serif);
  font-size: 1rem;
  line-height: 1.4;
  border: 1px solid var(--tpb-rule);
  border-radius: 0 !important;
  background: #fff;
  color: var(--tpb-ink);
  transition: border-color 120ms ease;
  -webkit-appearance: none;
  appearance: none;
}

.tpb-form-group input:focus {
  outline: none;
  border-color: var(--tpb-ink);
}

.tpb-form-group input::placeholder {
  color: var(--tpb-ink-muted);
  font-style: italic;
}

.tpb-form-group input.input-error {
  border-color: var(--tpb-red) !important;
}

/* Submit button — override OceanWP defaults */
button.tpb-submit-btn,
.tpb-submit-btn {
  width: 100% !important;
  padding: 14px 24px !important;
  font-family: var(--tpb-sans) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-paper) !important;
  background: var(--tpb-ink) !important;
  border: 2px solid var(--tpb-ink) !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: all 150ms ease !important;
  margin-top: 4px;
  position: relative;
}

button.tpb-submit-btn:hover,
.tpb-submit-btn:hover {
  background: transparent !important;
  color: var(--tpb-ink) !important;
}

.tpb-submit-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.tpb-submit-btn.loading span {
  opacity: 0;
}

.tpb-submit-btn.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid rgba(248,246,240,0.3);
  border-top-color: var(--tpb-paper);
  border-radius: 50%;
  animation: tpb-spin 0.6s linear infinite;
}

@keyframes tpb-spin {
  to { transform: rotate(360deg); }
}

/* Form messages */
.tpb-message {
  margin-top: 16px;
  padding: 12px 16px;
  font-family: var(--tpb-sans);
  font-size: 0.85rem;
  line-height: 1.5;
}

.tpb-message.success {
  background: #ECFDF5;
  color: #065F46;
  border-left: 3px solid #059669;
}

.tpb-message.error {
  background: #FEF2F2;
  color: #991B1B;
  border-left: 3px solid var(--tpb-red);
}

/* What you get list */
.tpb-expect-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 28px 0 !important;
}

.tpb-expect-list li {
  padding: 5px 0 !important;
  padding-left: 20px !important;
  position: relative;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  color: var(--tpb-ink-body) !important;
  margin-bottom: 0 !important;
  border-bottom: none !important;
}

.tpb-expect-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--tpb-red);
  font-weight: 700;
}

/* Subscribe page fine print */
.tpb-subscribe-privacy {
  font-family: var(--tpb-mono) !important;
  font-size: 0.6rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--tpb-ink-muted) !important;
  margin-top: 20px !important;
  line-height: 1.6 !important;
}

/* Subscribe page back link */
.tpb-back-link {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.tpb-back-link a {
  text-decoration: none !important;
  border-bottom: 1px solid var(--tpb-ink) !important;
  padding-bottom: 1px;
}

.tpb-back-link a:hover {
  color: var(--tpb-red) !important;
  border-bottom-color: var(--tpb-red) !important;
}

@media (max-width: 480px) {
  .tpb-subscribe-heading {
    font-size: 1.6rem !important;
  }
}


/* ================================================
   HEADER — Subscribe Now button (in nav row)
   ================================================ */
/* Make nav list flex so we can reorder subscribe after search */
#site-navigation-wrap .dropdown-menu {
  display: flex !important;
  align-items: center !important;
}

#site-navigation-wrap .dropdown-menu > .menu-item-subscribe {
  order: 99 !important;
}

#site-navigation-wrap .dropdown-menu > .menu-item-subscribe > a.menu-link {
  background: transparent !important;
  padding: 0 8px !important;
  text-decoration: none !important;
  margin-left: 4px !important;
}

#site-navigation-wrap .dropdown-menu > .menu-item-subscribe > a.menu-link .text-wrap {
  font-family: var(--tpb-sans) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: #fff !important;
  background: var(--tpb-red) !important;
  padding: 7px 16px !important;
  display: inline-block !important;
  line-height: 1.4 !important;
  transition: background 150ms ease !important;
}

#site-navigation-wrap .dropdown-menu > .menu-item-subscribe > a.menu-link:hover .text-wrap {
  background: var(--tpb-red-hover) !important;
}

/* Mobile menu subscribe button */
#mobile-fullscreen .menu-item-subscribe > a,
.mobile-menu ul .menu-item-subscribe > a {
  background: var(--tpb-red) !important;
  color: #fff !important;
  display: inline-block !important;
  padding: 8px 20px !important;
  margin: 8px 0 !important;
  font-family: var(--tpb-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
}

/* Category labels in latest posts (injected by PHP filter) */
.tpb-latest .tpb-post-cats {
  font-family: var(--tpb-mono) !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-red) !important;
  display: block !important;
  margin-bottom: 3px !important;
  line-height: 1.3 !important;
}

.tpb-latest .tpb-post-cats a {
  color: var(--tpb-red) !important;
  text-decoration: none !important;
}

.tpb-latest .tpb-post-cats a:hover {
  text-decoration: underline !important;
}

/* Clickable category labels in lead story */
.tpb-cat a {
  color: var(--tpb-red) !important;
  text-decoration: none !important;
}

.tpb-cat a:hover {
  text-decoration: underline !important;
}



/* ================================================
   SINGLE POST & PAGE STYLING — REDESIGNED
   Improved visual hierarchy and readability
   ================================================ */

/* ===== META INFORMATION (Now appears first) ===== */
.single-post .entry-meta,
.page .entry-meta {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 48px;
  font-family: var(--tpb-mono) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 0 !important;
  padding-bottom: 16px !important;
}

.single-post .entry-meta a,
.page .entry-meta a {
  color: var(--tpb-red) !important;
  text-decoration: none !important;
}

.single-post .entry-meta a:hover,
.page .entry-meta a:hover {
  text-decoration: underline !important;
}

/* Hide meta icons for cleaner look */
.single-post .entry-meta img,
.single-post .entry-meta .meta-icon,
.page .entry-meta img {
  display: none !important;
}

/* Style meta list inline */
.single-post .entry-meta ul,
.page .entry-meta ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.single-post .entry-meta ul li,
.page .entry-meta ul li {
  display: inline-block !important;
  margin: 0 !important;
}

/* ===== POST TITLE (Now appears after meta) ===== */
.single-post .entry-header,
.page .entry-header {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 20px;
  padding-bottom: 32px;
  border-bottom: none !important;
  position: relative;
}

/* Remove decorative lines */
.single-post .entry-header::before,
.single-post .entry-header::after,
.page .entry-header::after {
  display: none !important;
}

.single-post .entry-title,
.page .entry-title {
  font-family: var(--tpb-serif) !important;
  font-size: 2.8rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em !important;
  color: var(--tpb-ink) !important;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  text-wrap: balance;
}

/* ===== FEATURED IMAGE (Now appears after title with size constraints) ===== */
.single-post .thumbnail,
.page .thumbnail {
  max-width: 900px;
  margin: 32px auto !important;
  position: relative;
  overflow: hidden;
}

.single-post .thumbnail img,
.page .thumbnail img {
  width: 100% !important;
  height: auto !important;
  max-height: 400px !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  border-radius: 0 !important;
}

/* Caption styling */
.single-post .thumbnail-caption,
.page .thumbnail-caption {
  font-family: var(--tpb-sans) !important;
  font-size: 0.85rem !important;
  color: var(--tpb-ink-muted) !important;
  padding: 12px 0 !important;
  text-align: center !important;
  font-style: italic !important;
}

/* ===== MAIN CONTENT AREA ===== */
.single-post .entry-content,
.page .entry-content {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 40px;
  font-family: var(--tpb-serif) !important;
  font-size: 1.17rem !important; /* Increased by 2pt from 1.15rem */
  line-height: 1.75 !important;
  color: var(--tpb-ink-body) !important;
}

/* Content paragraphs */
.single-post .entry-content > p,
.page .entry-content > p {
  margin-bottom: 1.5em !important;
}

/* First paragraph slightly larger */
.single-post .entry-content > p:first-of-type,
.page .entry-content > p:first-of-type {
  font-size: 1.2rem !important;
  line-height: 1.7 !important;
  margin-bottom: 1.8em !important;
}

/* Content headings */
.single-post .entry-content h2,
.page .entry-content h2 {
  font-family: var(--tpb-serif) !important;
  font-size: 1.85rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.02em !important;
  color: var(--tpb-ink) !important;
  margin-top: 2.4em !important;
  margin-bottom: 0.85em !important;
  padding-bottom: 0.4em !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  position: relative;
}

.single-post .entry-content h2::after,
.page .entry-content h2::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 40px;
  height: 1px;
  background: var(--tpb-red);
}

.single-post .entry-content h3,
.page .entry-content h3 {
  font-family: var(--tpb-serif) !important;
  font-size: 1.45rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.015em !important;
  color: var(--tpb-ink) !important;
  margin-top: 2em !important;
  margin-bottom: 0.7em !important;
}

.single-post .entry-content h4,
.page .entry-content h4 {
  font-family: var(--tpb-sans) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--tpb-ink) !important;
  margin-top: 1.8em !important;
  margin-bottom: 0.6em !important;
}

/* Lists */
.single-post .entry-content ul,
.single-post .entry-content ol,
.page .entry-content ul,
.page .entry-content ol {
  margin-bottom: 1.5em !important;
  padding-left: 1.5em !important;
}

.single-post .entry-content li,
.page .entry-content li {
  margin-bottom: 0.5em !important;
  line-height: 1.7 !important;
}

/* Blockquotes */
.single-post .entry-content blockquote,
.page .entry-content blockquote {
  border-left: 3px solid var(--tpb-red) !important;
  border-top: 3px solid var(--tpb-ink) !important;
  border-bottom: 3px solid var(--tpb-ink) !important;
  padding: 0.8em 1.5em !important; /* Reduced padding to minimize gap between border and text */
  margin: 1.5em 0 !important;
  background: transparent !important;
  font-style: italic !important;
  color: var(--tpb-ink-light) !important;
}

/* Figure element (wraps blockquote) - minimal spacing */
.single-post .entry-content figure,
.page .entry-content figure {
  margin: 1.5em 0 !important;
}

/* wp-block-quote specifically */
.single-post .entry-content .wp-block-quote,
.page .entry-content .wp-block-quote {
  border-left: 3px solid var(--tpb-red) !important;
  border-top: 3px solid var(--tpb-ink) !important;
  border-bottom: 3px solid var(--tpb-ink) !important;
  padding: 0.8em 1.5em !important;
  margin: 1.5em 0 !important;
  background: transparent !important;
}

.single-post .entry-content .wp-block-quote p,
.page .entry-content .wp-block-quote p {
  font-style: italic !important;
  color: var(--tpb-ink-light) !important;
  margin: 0 !important;
}

/* Code blocks */
.single-post .entry-content code,
.page .entry-content code {
  font-family: var(--tpb-mono) !important;
  font-size: 0.85em !important;
  background: var(--tpb-paper-tan) !important;
  padding: 0.2em 0.4em !important;
  border-radius: 0 !important;
}

.single-post .entry-content pre,
.page .entry-content pre {
  background: var(--tpb-paper-tan) !important;
  border: 1px solid var(--tpb-rule) !important;
  padding: 1.2em !important;
  overflow-x: auto !important;
  margin: 1.5em 0 !important;
}

.single-post .entry-content pre code,
.page .entry-content pre code {
  background: transparent !important;
  padding: 0 !important;
}

/* Horizontal rules */
.single-post .entry-content hr,
.page .entry-content hr {
  border: none !important;
  border-top: 1px solid var(--tpb-rule) !important;
  margin: 2.5em 0 !important;
}

/* Content images */
.single-post .entry-content img,
.page .entry-content img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 2em auto !important;
}

/* ===== TABLE OF CONTENTS STYLING ===== */
.single-post .entry-content .ez-toc-section,
.page .entry-content .ez-toc-section {
  background: var(--tpb-paper-warm) !important;
  border: 1px solid var(--tpb-rule) !important;
  padding: 24px !important;
  margin: 32px 0 !important;
  border-radius: 0 !important;
}

/* ===== AD ZONES ===== */
/* Create designated ad zones with minimal spacing */
.single-post .entry-content > div[id*="ad"],
.single-post .entry-content > div[class*="ad"],
.single-post .entry-content > div[class*="advertisement"],
.single-post .entry-content > .code-block {
  border-top: 1px solid var(--tpb-rule) !important;
  border-bottom: 1px solid var(--tpb-rule) !important;
  padding: 16px 0 !important; /* Minimal padding */
  margin: 24px 0 !important; /* Reduced margin to keep content flowing */
  text-align: center !important;
  clear: both !important;
  max-width: 100% !important;
}

/* Ad label for clarity */
.single-post .entry-content > div[id*="ad"]::before,
.single-post .entry-content > div[class*="ad"]::before,
.single-post .entry-content > div[class*="advertisement"]::before,
.single-post .entry-content > .code-block::before {
  content: 'Advertisement';
  display: block;
  font-family: var(--tpb-mono) !important;
  font-size: 0.7rem !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 16px;
}

/* ===== TAGS ===== */
.single-post .entry-meta .cat-links,
.single-post .entry-meta .tags-links,
.single-post .post-tags,
.single-post .tagcloud {
  display: inline-block;
  margin-right: 12px;
}

/* Tag styling */
.single-post .post-tags a,
.single-post .tagcloud a {
  font-family: var(--tpb-mono) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 4px 10px !important;
  margin: 0 6px 6px 0 !important;
  display: inline-block !important;
  background: transparent !important;
  border: 1px solid var(--tpb-rule) !important;
  color: var(--tpb-ink-light) !important;
  text-decoration: none !important;
  transition: all 120ms ease !important;
}

.single-post .post-tags a:hover,
.single-post .tagcloud a:hover {
  border-color: var(--tpb-red) !important;
  color: var(--tpb-red) !important;
  background: transparent !important;
}

/* ===== RESPONSIVE MOBILE STYLES ===== */
@media (max-width: 480px) {
  /* Meta adjustments */
  .single-post .entry-meta,
  .page .entry-meta {
    padding-top: 32px;
    font-size: 0.7rem !important;
  }

  /* Title sizing */
  .single-post .entry-title,
  .page .entry-title {
    font-size: 2rem !important;
    line-height: 1.15 !important;
    padding-bottom: 24px;
  }

  /* Featured image constraints */
  .single-post .thumbnail img,
  .page .thumbnail img {
    max-height: 300px !important;
  }

  /* Content adjustments */
  .single-post .entry-content,
  .page .entry-content {
    font-size: 1.07rem !important; /* Increased by 2pt from 1.05rem */
    padding-top: 32px;
  }

  .single-post .entry-content > p:first-of-type,
  .page .entry-content > p:first-of-type {
    font-size: 1.14rem !important; /* Increased by 2pt from 1.12rem */
  }

  .single-post .entry-content h2,
  .page .entry-content h2 {
    font-size: 1.5rem !important;
  }

  .single-post .entry-content h3,
  .page .entry-content h3 {
    font-size: 1.25rem !important;
  }

  /* Container padding */
  .single-post .entry,
  .page:not(.page-id-849):not(.page-id-808):not(.page-id-810) .entry {
    padding: 24px 16px !important;
  }

  /* Ad zones more compact */
  .single-post .entry-content > div[id*="ad"],
  .single-post .entry-content > div[class*="ad"],
  .single-post .entry-content > div[class*="advertisement"],
  .single-post .entry-content > .code-block {
    margin: 20px 0 !important;
    padding: 12px 0 !important;
  }
}

@media (min-width: 481px) and (max-width: 782px) {
  /* Tablet adjustments */
  .single-post .entry-meta,
  .page .entry-meta {
    padding-top: 40px;
  }

  .single-post .entry-title,
  .page .entry-title {
    font-size: 2.3rem !important;
  }

  .single-post .thumbnail img,
  .page .thumbnail img {
    max-height: 350px !important;
  }

  .single-post .entry-content,
  .page .entry-content {
    font-size: 1.12rem !important; /* Increased by 2pt from 1.1rem */
  }
}


/* ===== FOOTNOTES STYLING ===== */
/* Clear visual separation for footnotes section */
.single-post .entry-content ol,
.page .entry-content ol {
  margin-bottom: 1.5em !important;
  padding-left: 1.5em !important;
}

/* Footnotes container - Easy Footnotes plugin */
.single-post .entry-content .easy-footnote-bottom,
.page .entry-content .easy-footnote-bottom,
.single-post .entry-content .easy-footnotes-wrapper,
.page .entry-content .easy-footnotes-wrapper {
  margin-top: 4em !important; /* Large space above footnotes */
  padding-top: 2em !important;
  border-top: 2px solid var(--tpb-rule) !important;
  font-size: 0.9rem !important;
  color: var(--tpb-ink-light) !important;
  position: relative;
}

/* Footnotes section label */
.single-post .entry-content .easy-footnote-bottom::before,
.page .entry-content .easy-footnote-bottom::before,
.single-post .entry-content .easy-footnotes-wrapper::before,
.page .entry-content .easy-footnotes-wrapper::before {
  content: 'Notes & References';
  display: block;
  font-family: var(--tpb-sans) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-ink-muted) !important;
  margin-bottom: 1.2em !important;
}

/* Footnote links in text (superscript) */
.single-post .entry-content a[href*="#easy-footnote"],
.page .entry-content a[href*="#easy-footnote"],
.single-post .entry-content sup a,
.page .entry-content sup a {
  text-decoration: none !important;
  font-weight: 600 !important;
  color: var(--tpb-red) !important;
  padding: 0 2px !important;
}

.single-post .entry-content a[href*="#easy-footnote"]:hover,
.page .entry-content a[href*="#easy-footnote"]:hover,
.single-post .entry-content sup a:hover,
.page .entry-content sup a:hover {
  text-decoration: underline !important;
}

/* Footnote list items */
.single-post .entry-content .easy-footnote-bottom li,
.page .entry-content .easy-footnote-bottom li,
.single-post .entry-content .easy-footnotes-wrapper li,
.page .entry-content .easy-footnotes-wrapper li {
  margin-bottom: 0.8em !important;
  line-height: 1.6 !important;
  font-size: 0.9rem !important;
}

/* ===== OCEANWP OVERRIDES ===== */
/* Full-width breakout */
.entry-content > .alignfull {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  max-width: 100vw !important;
  width: 100vw !important;
}

/* Hide page header */
.page-header {
  display: none !important;
}

/* Remove OceanWP entry padding on pages with custom layouts */
.page .entry {
  padding: 0 !important;
}

/* Restore padding for standard pages/posts */
.single-post .entry,
.page:not(.page-id-849):not(.page-id-808):not(.page-id-810) .entry {
  padding: 48px 24px !important;
}

/* Clean up OceanWP blog entry styling */
.blog-entry.post .blog-entry-header .entry-title a {
  font-family: var(--tpb-serif) !important;
}

/* Post container width */
.single-post .site-content,
.page .site-content {
  max-width: 1200px;
  margin: 0 auto;
}

/* Sidebar widget headings - override WordPress block editor sizes */
.sidebar-container .widget-title,
.sidebar-container .wp-block-heading,
.sidebar-box .widget-title,
.sidebar-box .wp-block-heading {
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--tpb-ink) !important;
  margin-bottom: 14px !important;
  margin-top: 0 !important;
}

/* Force small size even with WordPress size classes */
.sidebar-container .has-medium-font-size,
.sidebar-box .has-medium-font-size,
.sidebar-container .has-large-font-size,
.sidebar-box .has-large-font-size {
  font-size: 0.85rem !important;
}

/* Sidebar text should be smaller than main content */
.sidebar-container p,
.sidebar-box p {
  font-size: 0.90rem !important;
  line-height: 1.6 !important;
  color: var(--tpb-ink-light) !important;
}

/* Sidebar list items */
.sidebar-container li,
.sidebar-box li {
  font-size: 0.88rem !important;
  line-height: 1.55 !important;
}

/* Sidebar tag cloud - reduce tag sizes */
.sidebar-container .tagcloud a,
.sidebar-box .tagcloud a {
  font-size: 0.72rem !important;
  padding: 3px 8px !important;
  margin: 0 4px 4px 0 !important;
}

/* ===== SIDEBAR RESOURCE PAGES FIXES ===== */
/* Reduce spacing between "Resource Pages" title and list */
#primary-sidebar h1:contains("Resource Pages") + ul,
.sidebar-container h1 + ul,
.sidebar-box h1 + ul {
  margin-top: 0.5em !important; /* Reduced from default 4 lines */
}

/* Hide categories in sidebar recent posts only */
.sidebar-container .tpb-post-cats,
.sidebar-box .tpb-post-cats,
#primary-sidebar .tpb-post-cats {
  display: none !important;
}

/* Also hide in widget areas */
.widget-area .tpb-post-cats {
  display: none !important;
}
/* ================================================
   ICE PAGE — Restore link colors on dark background
   (global a{color:--tpb-ink !important} overrides page styles)
   ================================================ */
.page-id-138 .entry-content a {
  color: var(--accent-blue) !important;
  text-decoration: none !important;
}

.page-id-138 .entry-content a:hover {
  text-decoration: underline !important;
}

.page-id-138 .entry-content .nav-link {
  color: var(--text-muted) !important;
}

.page-id-138 .entry-content .nav-link:hover {
  color: var(--text) !important;
}

.page-id-138 .entry-content .nav-link.active {
  color: var(--accent-red) !important;
}

/* ================================================
   JOLI TOC — Larger, page-aligned
   ================================================ */
.joli-toc-container {
  max-width: 960px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: 0.95rem !important;
}

.joli-toc-container .joli-toc-content {
  padding: 20px 24px !important;
}

.joli-toc-container .joli-toc-content a {
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
}

/* ================================================
   MOBILE FLOATING SUBSCRIBE PILL
   Discreet bottom-right CTA for mobile users
   ================================================ */

/* Container - hidden by default, shown by JS if conditions met */
.tpb-mobile-subscribe-pill {
  display: none; /* Shown by JS on mobile when user not signed in */
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 999;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

/* Fade-in animation (triggered by JS) */
.tpb-mobile-subscribe-pill.tpb-show {
  opacity: 1;
  transform: translateY(0);
}

/* Main pill button */
.tpb-subscribe-pill-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  background: var(--tpb-red);
  color: #fff !important;
  font-family: var(--tpb-sans);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none !important;
  border-radius: 22px;
  box-shadow: 0 4px 12px rgba(146, 43, 33, 0.3);
  transition: all 0.2s ease;
  white-space: nowrap;
  border: none;
  cursor: pointer;
}

.tpb-subscribe-pill-btn:hover {
  background: var(--tpb-red-hover);
  box-shadow: 0 6px 16px rgba(146, 43, 33, 0.4);
  transform: translateY(-2px);
  color: #fff !important;
}

.tpb-subscribe-pill-btn:focus {
  outline: 2px solid var(--tpb-red);
  outline-offset: 2px;
}

/* Envelope icon (using CSS) */
.tpb-pill-icon {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  line-height: 1;
}

/* Close button */
.tpb-pill-close {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 20px;
  height: 20px;
  background: var(--tpb-ink);
  color: #fff;
  border: 2px solid var(--tpb-paper);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: var(--tpb-sans);
  font-weight: 600;
  padding: 0;
}

.tpb-pill-close:hover {
  background: var(--tpb-red);
  transform: scale(1.1);
}

.tpb-pill-close:focus {
  outline: 2px solid var(--tpb-red);
  outline-offset: 2px;
}

/* Mobile only - show at 480px and below */
@media (max-width: 480px) {
  .tpb-mobile-subscribe-pill {
    display: block; /* Still controlled by JS based on cookie check */
  }
}

/* Hide on larger screens */
@media (min-width: 481px) {
  .tpb-mobile-subscribe-pill {
    display: none !important;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  .tpb-mobile-subscribe-pill,
  .tpb-subscribe-pill-btn,
  .tpb-pill-close {
    transition: none !important;
  }

  .tpb-mobile-subscribe-pill.tpb-show {
    transform: none;
  }

  .tpb-subscribe-pill-btn:hover {
    transform: none;
  }
}

/* ==============================================
   SUBSCRIBE PAGE OPTIMIZATION
   Reduce spacing to show form above the fold
   ============================================== */

/* Desktop - Moderate reduction */
@media (min-width: 783px) {
  .page-id-808 .wp-block-group.alignfull:has(.tpb-subscribe-heading) {
    padding-top: 32px !important;
    padding-bottom: 40px !important;
  }

  .page-id-808 .tpb-subscribe-heading {
    font-size: 1.9rem !important;
    margin-bottom: 10px !important;
  }

  .page-id-808 .tpb-subscribe-intro {
    font-size: 0.96rem !important;
    margin-bottom: 20px !important;
  }

  .page-id-808 .tpb-expect-list {
    margin-bottom: 20px !important;
    font-size: 0.94rem !important;
  }

  .page-id-808 .tpb-expect-list li {
    margin-bottom: 4px !important;
  }

  .page-id-808 .tpb-form-wrap {
    padding-top: 18px !important;
    margin-bottom: 20px !important;
  }
}

/* Tablet - More aggressive reduction */
@media (min-width: 481px) and (max-width: 782px) {
  .page-id-808 .wp-block-group.alignfull:has(.tpb-subscribe-heading) {
    padding-top: 24px !important;
    padding-bottom: 32px !important;
  }

  .page-id-808 .tpb-subscribe-heading {
    font-size: 1.7rem !important;
    margin-bottom: 8px !important;
  }

  .page-id-808 .tpb-subscribe-intro {
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    margin-bottom: 16px !important;
  }

  .page-id-808 .tpb-expect-list {
    margin-bottom: 16px !important;
    font-size: 0.9rem !important;
  }

  .page-id-808 .tpb-expect-list li {
    margin-bottom: 3px !important;
  }

  .page-id-808 .tpb-form-wrap {
    padding-top: 16px !important;
    margin-bottom: 16px !important;
  }

  .page-id-808 .tpb-form-group {
    margin-bottom: 14px !important;
  }
}

/* Mobile - Most aggressive reduction */
@media (max-width: 480px) {
  .page-id-808 .wp-block-group.alignfull:has(.tpb-subscribe-heading) {
    padding-top: 20px !important;
    padding-bottom: 28px !important;
  }

  .page-id-808 .tpb-subscribe-heading {
    font-size: 1.5rem !important;
    margin-bottom: 8px !important;
  }

  .page-id-808 .tpb-subscribe-intro {
    font-size: 0.88rem !important;
    line-height: 1.5 !important;
    margin-bottom: 14px !important;
  }

  .page-id-808 .tpb-expect-list {
    margin-bottom: 14px !important;
    font-size: 0.86rem !important;
    padding-left: 1.2em !important;
  }

  .page-id-808 .tpb-expect-list li {
    margin-bottom: 2px !important;
    line-height: 1.4 !important;
  }

  .page-id-808 .tpb-form-wrap {
    padding-top: 14px !important;
    margin-bottom: 14px !important;
  }

  .page-id-808 .tpb-form-group {
    margin-bottom: 12px !important;
  }

  .page-id-808 .tpb-subscribe-privacy {
    font-size: 0.72rem !important;
    line-height: 1.4 !important;
  }
}

/* ===== HOMEPAGE AD REMOVAL ===== */
/* Hide the top advertisement on homepage only */
.home .code-block-1 {
  display: none !important;
}

/* Hide the footer advertisement on homepage and single posts */
.home .code-block-6,
.single-post .code-block-6 {
  display: none !important;
}


/* ================================================
   FACEBOOK FOLLOW — Editorial social presence
   Sidebar section + mobile floating pill
   ================================================ */

/* --- Sidebar Section (shared styles) --- */
.tpb-fb-section {
  padding: 20px 0 !important;
}

.tpb-fb-follow-link {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 14px 16px !important;
  background: var(--tpb-paper-warm) !important;
  border: 1px solid var(--tpb-rule) !important;
  text-decoration: none !important;
  transition: border-color 150ms ease, background 150ms ease !important;
  margin-top: 12px !important;
}

.tpb-fb-follow-link:hover {
  border-color: var(--tpb-ink) !important;
  background: var(--tpb-paper-tan) !important;
}

.tpb-fb-icon {
  width: 26px;
  height: 26px;
  fill: var(--tpb-ink);
  flex-shrink: 0;
  transition: fill 150ms ease;
}

.tpb-fb-follow-link:hover .tpb-fb-icon {
  fill: var(--tpb-red);
}

.tpb-fb-follow-text {
  display: flex;
  flex-direction: column;
}

.tpb-fb-follow-label {
  font-family: var(--tpb-sans) !important;
  font-size: 0.76rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--tpb-ink) !important;
  line-height: 1.3 !important;
}

.tpb-fb-follow-desc {
  font-family: var(--tpb-serif) !important;
  font-size: 0.82rem !important;
  color: var(--tpb-ink-muted) !important;
  line-height: 1.4 !important;
  margin-top: 2px;
}

/* --- Single post sidebar context --- */
#primary-sidebar .tpb-fb-section {
  margin: 20px 0 !important;
  padding: 20px 0 !important;
  border-top: 2px solid var(--tpb-rule) !important;
  position: relative;
}

#primary-sidebar .tpb-fb-section::after {
  content: '';
  position: absolute;
  top: -2px;
  left: 0;
  width: 40px;
  height: 2px;
  background: var(--tpb-red);
}

#primary-sidebar .tpb-fb-section .tpb-sidebar-hed {
  font-family: var(--tpb-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--tpb-ink) !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}


/* ================================================
   MOBILE FLOATING FACEBOOK PILL
   Bottom-left, complementary to subscribe pill
   ================================================ */
.tpb-fb-mobile-pill {
  display: none;
  position: fixed;
  bottom: 20px;
  left: 20px;
  z-index: 998;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.tpb-fb-mobile-pill.tpb-fb-show {
  opacity: 1;
  transform: translateY(0);
}

.tpb-fb-mobile-btn {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 10px 16px !important;
  background: var(--tpb-ink) !important;
  color: #fff !important;
  font-family: var(--tpb-sans) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-decoration: none !important;
  border-radius: 20px !important;
  box-shadow: 0 3px 10px rgba(26, 29, 35, 0.2) !important;
  transition: background 0.2s ease, box-shadow 0.2s ease !important;
  white-space: nowrap !important;
}

.tpb-fb-mobile-btn:hover {
  background: var(--tpb-red) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(146, 43, 33, 0.3) !important;
}

.tpb-fb-mobile-btn .tpb-fb-icon {
  width: 14px;
  height: 14px;
  fill: #fff;
}

.tpb-fb-mobile-close {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 18px;
  height: 18px;
  background: var(--tpb-ink-light);
  color: #fff;
  border: 2px solid var(--tpb-paper);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
  font-family: var(--tpb-sans);
  font-weight: 600;
  padding: 0;
}

.tpb-fb-mobile-close:hover {
  background: var(--tpb-red);
}

/* Show floating pill on tablet/mobile only */
@media (max-width: 782px) {
  .tpb-fb-mobile-pill {
    display: block;
  }
}

@media (min-width: 783px) {
  .tpb-fb-mobile-pill {
    display: none !important;
  }
}

/* Phone: compact icon-only pill (subscribe pill occupies right) */
@media (max-width: 480px) {
  .tpb-fb-mobile-btn {
    padding: 11px !important;
    border-radius: 50% !important;
    gap: 0 !important;
  }
  .tpb-fb-mobile-btn > span {
    display: none !important;
  }
  .tpb-fb-mobile-btn .tpb-fb-icon {
    width: 16px;
    height: 16px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tpb-fb-mobile-pill,
  .tpb-fb-mobile-btn,
  .tpb-fb-mobile-close {
    transition: none !important;
  }
  .tpb-fb-mobile-pill.tpb-fb-show {
    transform: none;
  }
}
