/* ================================================================
   CTJPN Global Presentation Fix
   Version: 2026-05-13-v3
   Deployment: wp-content/mu-plugins/ctjpn-presentation/ctjpn-presentation.css
   Loaded via: wp-content/mu-plugins/ctjpn-presentation-fix.php

   Coverage: ALL page types sitewide
     - Homepage (body.home)
     - Individual article pages (body.single, body.single-post)
     - Static pages / hub pages (body.page)
     - Category and archive pages (body.archive, body.category, body.tag)
     - Search results (body.search)
     - 404 (body.error404)
     - Header and navigation (all page types)
     - Footer (all page types)
     - Tables, blockquotes, code (all content pages)
     - Mobile (all page types)

   This file does NOT:
     - Modify article content or post bodies
     - Publish drafts
     - Delete posts or pages
     - Affect wp-admin
   ================================================================ */


/* ────────────────────────────────────────────────────────────────
   DESIGN TOKENS
   ──────────────────────────────────────────────────────────────── */
:root {
  --ctjpn-ink:       #1F1A17;
  --ctjpn-ivory:     #F8F4EC;
  --ctjpn-sand:      #E9DDC8;
  --ctjpn-forest:    #24433A;
  --ctjpn-copper:    #B46A3C;
  --ctjpn-navy:      #263A4A;
  --ctjpn-sage:      #DDE8DD;
  --ctjpn-stone:     #6F6A61;
  --ctjpn-border:    #D8CBB8;
  --ctjpn-white:     #ffffff;
  --ctjpn-max-w:     1120px;
  --ctjpn-article-w: 760px;
  --ctjpn-font-sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;
  --ctjpn-font-ser:  "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}


/* ────────────────────────────────────────────────────────────────
   GLOBAL BASE — ALL PAGES
   Override body.dark (CoverNews dark theme) everywhere.
   ──────────────────────────────────────────────────────────────── */
html,
body,
body.dark,
#page,
#page.site,
.site,
#wrapper,
.wrapper {
  background-color: var(--ctjpn-ivory) !important;
  color:       var(--ctjpn-ink) !important;
  font-family: var(--ctjpn-font-sans);
  font-size:   16px;
  line-height: 1.8;
}

/* Common WordPress/CoverNews content wrappers */
.site-content,
#content,
.content-area,
#primary,
.site-main,
#main,
.af-main-wrap,
.container-wrapper,
.af-content-area {
  background-color: var(--ctjpn-ivory) !important;
}

/* Posts / articles */
article,
.hentry,
.post,
.page,
.entry-content,
.post-content {
  background-color: transparent !important;
  color: var(--ctjpn-ink) !important;
}


/* ────────────────────────────────────────────────────────────────
   SITEWIDE: HIDE TICKER AND FLASH ELEMENTS
   ──────────────────────────────────────────────────────────────── */
#af-preloader,
#loader-wrapper,
#loader {
  display: none !important;
}

.flash-news-block,
.breaking-news-block,
.flash-slide-left,
.covernews-breaking-news,
.covernews-flash-news-slider,
.cn-breaking-news,
.cn-flash-news,
div[class*="flash-news"],
div[class*="flash-slide"],
div[class*="breaking-news"],
[class*="flash-news-wrap"],
[class*="flash_news_wrap"] {
  display: none !important;
}


/* ────────────────────────────────────────────────────────────────
   HOMEPAGE ONLY: HIDE OLD THEME BANNER MODULES
   Scoped to body.home only.
   ──────────────────────────────────────────────────────────────── */
body.home section.af-blocks,
body.home .af-main-banner,
body.home .banner-exclusive-posts-wrapper,
body.home .exclusive-posts,
body.home .exclusive-now,
body.home .exclusive-slides,
body.home .main-story-wrapper,
body.home .af-main-banner-editors-picks,
body.home .af-main-banner-featured-posts,
body.home .featured-posts-grid,
body.home .trending-story,
body.home .banner-trending-posts-wrapper,
body.home .trending-posts-carousel,
body.home .af-trending-navcontrols,
body.home [class*="aft-main-banner"],
body.home [class*="af-main-banner-"],
body.home .covernews-main-slider,
body.home .covernews-main-banner,
body.home .cn-main-banner,
body.home .main-story-section,
body.home #main-story,
body.home .trending-stories,
body.home .editors-picks,
body.home .covernews-editors-picks {
  display: none !important;
}


/* ────────────────────────────────────────────────────────────────
   HEADER — ALL PAGES
   ──────────────────────────────────────────────────────────────── */
.header-layout-3,
#masthead,
.site-header,
.masthead-banner,
body.dark .site-header,
body.dark #masthead,
body.dark .masthead-banner,
body.dark .header-layout-3,
body.single .site-header,
body.single #masthead,
body.single-post .site-header,
body.page .site-header,
body.archive .site-header,
body.category .site-header,
body.tag .site-header,
body.search .site-header,
body.error404 .site-header {
  background-color: var(--ctjpn-ivory) !important;
  background-image: none !important;
  box-shadow:       none !important;
  border-bottom:    none !important;
}

.masthead-banner .container,
.site-branding,
.navigation-container {
  background-color: transparent !important;
}

.masthead-banner .site-branding {
  padding: 16px 0 12px !important;
}

/* Site title — preserve existing text, only fix color/size */
.site-title a,
.site-title a:link,
.site-title a:visited,
.site-title a:hover,
body.dark .site-title a,
body.dark .site-title a:visited,
body.dark .site-title a:hover {
  font-family:     var(--ctjpn-font-ser) !important;
  font-size:       22px !important;
  font-weight:     600 !important;
  letter-spacing:  -0.025em !important;
  color:           var(--ctjpn-ink) !important;
  text-decoration: none !important;
  line-height:     1.1 !important;
}

.site-title a:hover { color: var(--ctjpn-copper) !important; }

.site-description,
body.dark .site-description {
  font-size:      0.7rem !important;
  color:          var(--ctjpn-stone) !important;
  letter-spacing: 0.07em !important;
  margin:         3px 0 0 !important;
}

/* Navigation */
#site-navigation,
.main-navigation,
nav.main-navigation,
body.dark .main-navigation,
body.dark #site-navigation,
body.single .main-navigation,
body.single-post .main-navigation,
body.page .main-navigation,
body.archive .main-navigation,
body.category .main-navigation {
  background-color: var(--ctjpn-ivory) !important;
  border-top:       1px solid var(--ctjpn-border) !important;
  border-bottom:    1px solid var(--ctjpn-border) !important;
  box-shadow:       none !important;
}

.main-navigation a,
#site-navigation a,
body.dark .main-navigation a,
body.dark #site-navigation a {
  color:           var(--ctjpn-ink) !important;
  font-size:       0.82rem !important;
  font-weight:     500 !important;
  letter-spacing:  0.025em !important;
  text-decoration: none !important;
}

.main-navigation a:hover,
#site-navigation a:hover { color: var(--ctjpn-copper) !important; }

.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
  color:       var(--ctjpn-forest) !important;
  font-weight: 600 !important;
}

.main-navigation .sub-menu,
.main-navigation ul ul,
body.dark .main-navigation .sub-menu {
  background-color: var(--ctjpn-ivory) !important;
  border:     1px solid var(--ctjpn-border) !important;
  border-top: 2px solid var(--ctjpn-forest) !important;
  box-shadow: 0 4px 16px rgba(31,26,23,.08) !important;
}

.main-navigation .sub-menu a {
  border-bottom: 1px solid var(--ctjpn-border) !important;
  padding: 10px 18px !important;
}

.toggle-menu .ham,
.toggle-menu .ham::before,
.toggle-menu .ham::after,
body.dark .toggle-menu .ham,
body.dark .toggle-menu .ham::before,
body.dark .toggle-menu .ham::after {
  background-color: var(--ctjpn-ink) !important;
}

.scrollup-sticky-header .site-header,
.aft-sticky-header .site-header {
  background-color: rgba(248,244,236,.97) !important;
  box-shadow: 0 1px 8px rgba(31,26,23,.07) !important;
}


/* ────────────────────────────────────────────────────────────────
   INDIVIDUAL ARTICLE PAGES (body.single, body.single-post)
   ──────────────────────────────────────────────────────────────── */
body.single,
body.single-post,
body.single #page,
body.single-post #page,
body.single .site-content,
body.single-post .site-content,
body.single #content,
body.single-post #content,
body.single .content-area,
body.single-post .content-area,
body.single #primary,
body.single-post #primary,
body.single article,
body.single-post article,
body.single article.post,
body.single-post article.post,
body.single .hentry,
body.single-post .hentry,
body.single .af-main-wrap,
body.single-post .af-main-wrap,
body.single .container-wrapper,
body.single-post .container-wrapper,
body.single .post-content-wrapper,
body.single-post .post-content-wrapper,
body.single .single-wrapper,
body.single-post .single-wrapper,
body.single .af-single-post,
body.single-post .af-single-post {
  background-color: var(--ctjpn-ivory) !important;
}

/* Article header */
body.single .entry-header,
body.single-post .entry-header {
  background-color: transparent !important;
  padding:          48px 0 24px;
}

body.single .entry-title,
body.single-post .entry-title {
  font-family:    var(--ctjpn-font-ser) !important;
  font-size:      clamp(1.5rem, 4vw, 2.4rem) !important;
  font-weight:    700 !important;
  line-height:    1.3 !important;
  color:          var(--ctjpn-ink) !important;
  letter-spacing: -0.02em !important;
  margin-bottom:  16px !important;
}

body.single .entry-meta,
body.single-post .entry-meta {
  font-size: 0.78rem !important;
  color:     var(--ctjpn-stone) !important;
}

body.single .entry-meta a,
body.single-post .entry-meta a { color: var(--ctjpn-stone) !important; }

/* Article content */
body.single .entry-content,
body.single-post .entry-content {
  background-color: transparent !important;
  color:            var(--ctjpn-ink) !important;
  font-family:      var(--ctjpn-font-sans) !important;
  font-size:        1rem !important;
  line-height:      1.9 !important;
  max-width:        var(--ctjpn-article-w);
}

body.single .entry-content h1,
body.single-post .entry-content h1,
body.single .entry-content h2,
body.single-post .entry-content h2,
body.single .entry-content h3,
body.single-post .entry-content h3,
body.single .entry-content h4,
body.single-post .entry-content h4 {
  font-family:   var(--ctjpn-font-ser) !important;
  color:         var(--ctjpn-ink) !important;
  line-height:   1.4 !important;
  margin-top:    2em !important;
  margin-bottom: 0.6em !important;
}

body.single .entry-content h2,
body.single-post .entry-content h2 {
  font-size:      1.5rem !important;
  border-bottom:  1px solid var(--ctjpn-border);
  padding-bottom: 8px;
}

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

body.single .entry-content p,
body.single-post .entry-content p {
  color:         var(--ctjpn-ink) !important;
  margin-bottom: 1.4em !important;
}

body.single .entry-content strong,
body.single-post .entry-content strong {
  color:       var(--ctjpn-ink) !important;
  font-weight: 700 !important;
}

body.single .entry-content a,
body.single-post .entry-content a {
  color:                 var(--ctjpn-forest) !important;
  text-decoration:       underline !important;
  text-underline-offset: 2px !important;
}

body.single .entry-content a:hover,
body.single-post .entry-content a:hover { color: var(--ctjpn-copper) !important; }

body.single .entry-content ul,
body.single .entry-content ol,
body.single-post .entry-content ul,
body.single-post .entry-content ol {
  color:         var(--ctjpn-ink) !important;
  margin-bottom: 1.4em !important;
  padding-left:  1.6em !important;
}

body.single .entry-content li,
body.single-post .entry-content li {
  color:         var(--ctjpn-ink) !important;
  margin-bottom: 0.4em !important;
  line-height:   1.8 !important;
}

/* Blockquote */
body.single .entry-content blockquote,
body.single-post .entry-content blockquote,
.wp-block-quote,
.wp-block-pullquote {
  background-color: var(--ctjpn-sage) !important;
  border-left:      4px solid var(--ctjpn-copper) !important;
  margin:           1.6em 0 !important;
  padding:          18px 22px !important;
  color:            var(--ctjpn-ink) !important;
}

.wp-block-pullquote {
  border-left:   none !important;
  border-top:    3px solid var(--ctjpn-copper) !important;
  border-bottom: 3px solid var(--ctjpn-copper) !important;
  text-align:    center;
  padding:       24px !important;
}

body.single .entry-content blockquote p,
body.single-post .entry-content blockquote p,
.wp-block-quote p {
  margin-bottom: 0 !important;
  font-style:    italic;
  color:         var(--ctjpn-ink) !important;
}

/* Code */
body.single .entry-content code,
body.single-post .entry-content code {
  background-color: var(--ctjpn-sand) !important;
  color:            var(--ctjpn-ink) !important;
  padding:          2px 6px;
  border-radius:    2px;
  font-size:        0.875em;
}

body.single .entry-content pre,
body.single-post .entry-content pre {
  background-color: var(--ctjpn-navy) !important;
  color:            var(--ctjpn-ivory) !important;
  padding:          20px 24px;
  border-radius:    2px;
  overflow-x:       auto;
  margin-bottom:    1.4em;
}

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

/* Sidebar */
body.single .widget,
body.single-post .widget {
  background-color: var(--ctjpn-white) !important;
  border:           1px solid var(--ctjpn-border);
  border-top:       2px solid var(--ctjpn-forest);
  padding:          20px 18px;
  margin-bottom:    24px;
}

body.single .widget-title,
body.single-post .widget-title {
  font-family:    var(--ctjpn-font-ser);
  font-size:      0.88rem;
  font-weight:    600;
  color:          var(--ctjpn-ink);
  border-bottom:  1px solid var(--ctjpn-border);
  padding-bottom: 8px;
  margin-bottom:  12px;
}


/* ────────────────────────────────────────────────────────────────
   STATIC PAGES / HUB PAGES (body.page)
   ──────────────────────────────────────────────────────────────── */
body.page,
body.page #page,
body.page .site-content,
body.page #content,
body.page .content-area,
body.page #primary,
body.page article,
body.page .hentry {
  background-color: var(--ctjpn-ivory) !important;
}

body.page .entry-content {
  background-color: transparent !important;
  color:            var(--ctjpn-ink) !important;
}

body.page .entry-content p,
body.page .entry-content li {
  color: var(--ctjpn-ink) !important;
}

/* Duplicate page title suppression on hub pages that have custom hero h1.
   Only hide the WordPress-generated .entry-title in .entry-header —
   never hide .entry-content h1 (custom hero headings). */
body.page .entry-header > .entry-title,
body.page .page-header > .page-title {
  display: none !important;
}

/* Do NOT suppress on single post pages */
body.single h1.entry-title,
body.single-post h1.entry-title {
  display: block !important;
}

/* Do NOT suppress headings inside content */
.entry-content h1,
.entry-content h2 {
  display: block !important;
}


/* ────────────────────────────────────────────────────────────────
   TABLES — ALL CONTENT PAGES
   ──────────────────────────────────────────────────────────────── */
.entry-content table,
.wp-block-table table,
body.single table,
body.single-post table,
body.page table {
  width:            100%;
  border-collapse:  collapse;
  font-size:        0.875rem;
  background-color: var(--ctjpn-white) !important;
  border:           1px solid var(--ctjpn-border);
  margin-bottom:    24px;
}

.entry-content th,
.wp-block-table th,
body.single th,
body.single-post th {
  background-color: var(--ctjpn-forest) !important;
  color:            var(--ctjpn-ivory) !important;
  font-family:      var(--ctjpn-font-ser);
  font-weight:      600;
  padding:          12px 16px;
  text-align:       left;
  border:           none;
}

.entry-content td,
.wp-block-table td,
body.single td,
body.single-post td {
  padding:          10px 16px;
  border-bottom:    1px solid var(--ctjpn-border);
  color:            var(--ctjpn-ink) !important;
  vertical-align:   top;
  background-color: var(--ctjpn-white) !important;
}

.entry-content tr:nth-child(even) td,
.wp-block-table tr:nth-child(even) td,
body.single tr:nth-child(even) td,
body.single-post tr:nth-child(even) td {
  background-color: var(--ctjpn-ivory) !important;
}

/* Mobile table scroll */
.wp-block-table,
.entry-content .tablepress-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  display: block;
  max-width: 100%;
}


/* ────────────────────────────────────────────────────────────────
   ARCHIVE / CATEGORY PAGES
   ──────────────────────────────────────────────────────────────── */
body.archive,
body.category,
body.tag,
body.author,
body.date,
body.archive #page,
body.category #page,
body.archive .site-content,
body.category .site-content,
body.archive #primary,
body.category #primary {
  background-color: var(--ctjpn-ivory) !important;
}

body.archive .page-header,
body.category .page-header,
body.tag .page-header {
  background-color: var(--ctjpn-forest) !important;
  color:            var(--ctjpn-ivory) !important;
  padding:          48px 32px 40px;
  margin-bottom:    40px;
}

body.archive .page-title,
body.category .page-title,
body.tag .page-title {
  font-family:    var(--ctjpn-font-ser) !important;
  font-size:      clamp(1.4rem, 3vw, 2rem) !important;
  font-weight:    600 !important;
  color:          var(--ctjpn-ivory) !important;
  letter-spacing: -0.02em !important;
}

body.archive .archive-description p,
body.category .archive-description p {
  color:     rgba(248,244,236,.78) !important;
  font-size: 0.95rem !important;
}

body.archive article,
body.category article,
body.tag article {
  background-color: var(--ctjpn-white) !important;
  border:           1px solid var(--ctjpn-border) !important;
  border-top:       3px solid transparent !important;
  border-radius:    2px !important;
  margin-bottom:    20px !important;
  padding:          28px !important;
  transition:       border-top-color .18s, box-shadow .18s;
}

body.archive article:hover,
body.category article:hover {
  border-top-color: var(--ctjpn-copper) !important;
  box-shadow:       0 2px 14px rgba(31,26,23,.08) !important;
}

body.archive .entry-title,
body.category .entry-title,
body.tag .entry-title {
  font-family:   var(--ctjpn-font-ser) !important;
  font-size:     1.15rem !important;
  font-weight:   600 !important;
  color:         var(--ctjpn-ink) !important;
  margin-bottom: 8px !important;
}

body.archive .entry-title a,
body.category .entry-title a,
body.tag .entry-title a {
  color:           var(--ctjpn-ink) !important;
  text-decoration: none !important;
}

body.archive .entry-title a:hover,
body.category .entry-title a:hover { color: var(--ctjpn-forest) !important; }

body.archive .entry-meta,
body.category .entry-meta,
body.archive .entry-summary p {
  color:     var(--ctjpn-stone) !important;
  font-size: 0.83rem !important;
}


/* ────────────────────────────────────────────────────────────────
   SEARCH AND 404
   ──────────────────────────────────────────────────────────────── */
body.search,
body.error404,
body.search #page,
body.error404 #page,
body.search .site-content,
body.error404 .site-content {
  background-color: var(--ctjpn-ivory) !important;
}

body.search .hentry,
body.search .search-results article {
  background-color: var(--ctjpn-white) !important;
  border:           1px solid var(--ctjpn-border) !important;
  border-radius:    2px !important;
  padding:          24px !important;
  margin-bottom:    16px !important;
}

body.search .entry-title a,
body.error404 .page-title {
  color:           var(--ctjpn-ink) !important;
  font-family:     var(--ctjpn-font-ser) !important;
  text-decoration: none !important;
}


/* ────────────────────────────────────────────────────────────────
   FOOTER — ALL PAGES
   ──────────────────────────────────────────────────────────────── */
#colophon,
.site-footer,
footer.site-footer,
body.dark .site-footer,
body.dark #colophon {
  background-color: var(--ctjpn-ink) !important;
  color:            rgba(248,244,236,.65) !important;
  border-top:       1px solid rgba(248,244,236,.08) !important;
}

.site-footer .widget-title,
#colophon .widget-title {
  font-family:    var(--ctjpn-font-ser) !important;
  font-size:      0.85rem !important;
  font-weight:    600 !important;
  color:          var(--ctjpn-ivory) !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  margin-bottom:  14px !important;
  border-bottom:  1px solid rgba(248,244,236,.12) !important;
  padding-bottom: 8px !important;
}

.site-footer a,
#colophon a,
body.dark .site-footer a {
  color:           rgba(248,244,236,.7) !important;
  text-decoration: none !important;
}

.site-footer a:hover,
#colophon a:hover {
  color:           var(--ctjpn-ivory) !important;
  text-decoration: underline !important;
}

.site-footer p,
#colophon p,
.site-footer .widget p {
  color:     rgba(248,244,236,.55) !important;
  font-size: 0.8rem !important;
}

.site-info,
.footer-copyright,
.site-footer .site-info {
  background-color: rgba(0,0,0,.18) !important;
  color:            rgba(248,244,236,.38) !important;
  font-size:        0.75rem !important;
  padding:          14px 0 !important;
  text-align:       center !important;
}

.site-info a { color: rgba(248,244,236,.5) !important; }


/* ────────────────────────────────────────────────────────────────
   LAYOUT HELPERS (CTJPN CUSTOM SECTIONS)
   ──────────────────────────────────────────────────────────────── */
.ctjpn-container {
  max-width:     var(--ctjpn-max-w);
  margin-left:   auto;
  margin-right:  auto;
  padding-left:  32px;
  padding-right: 32px;
}

.ctjpn-section-eyebrow {
  display:        block;
  font-family:    var(--ctjpn-font-sans);
  font-size:      0.72rem;
  font-weight:    500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--ctjpn-copper);
  margin-bottom:  8px;
}

.ctjpn-section-title {
  font-family:    var(--ctjpn-font-ser);
  font-size:      clamp(1.45rem, 3vw, 2.2rem);
  font-weight:    600;
  color:          var(--ctjpn-ink);
  letter-spacing: -0.01em;
  line-height:    1.35;
  margin-bottom:  36px;
}

.ctjpn-btn {
  display:         inline-block;
  padding:         13px 28px;
  font-family:     var(--ctjpn-font-sans);
  font-size:       0.88rem;
  font-weight:     500;
  letter-spacing:  0.04em;
  text-decoration: none;
  border-radius:   2px;
  border:          1.5px solid transparent;
  cursor:          pointer;
  transition:      background-color .18s, color .18s, border-color .18s;
  white-space:     nowrap;
}

.ctjpn-btn-primary { background-color: var(--ctjpn-forest); color: var(--ctjpn-ivory); border-color: var(--ctjpn-forest); }
.ctjpn-btn-primary:hover { background-color: #1a3230; color: var(--ctjpn-ivory); text-decoration: none; }
.ctjpn-btn-secondary { background-color: transparent; color: var(--ctjpn-ivory); border-color: rgba(248,244,236,.55); }
.ctjpn-btn-secondary:hover { background-color: rgba(248,244,236,.12); color: var(--ctjpn-ivory); text-decoration: none; }
.ctjpn-btn-ghost { background-color: transparent; color: var(--ctjpn-copper); border-color: var(--ctjpn-copper); }
.ctjpn-btn-ghost:hover { background-color: var(--ctjpn-copper); color: var(--ctjpn-ivory); text-decoration: none; }
.ctjpn-btn-forest { background-color: var(--ctjpn-forest); color: var(--ctjpn-ivory); border-color: var(--ctjpn-ivory); }
.ctjpn-btn-forest:hover { background-color: var(--ctjpn-ivory); color: var(--ctjpn-forest); text-decoration: none; }


/* ────────────────────────────────────────────────────────────────
   HOMEPAGE SECTIONS (body.home)
   ──────────────────────────────────────────────────────────────── */
.ctjpn-hero {
  background-color: var(--ctjpn-forest);
  color:   var(--ctjpn-ivory);
  padding: 88px 0 80px;
}

.ctjpn-hero-split {
  display:               grid;
  grid-template-columns: 1.1fr 1fr;
  gap:         60px;
  align-items: start;
}

.ctjpn-hero-eyebrow {
  display:        block;
  font-family:    var(--ctjpn-font-sans);
  font-size:      0.72rem;
  font-weight:    500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--ctjpn-copper);
  margin-bottom:  16px;
}

.ctjpn-hero-headline {
  font-family:    var(--ctjpn-font-ser);
  font-size:      clamp(1.9rem, 4vw, 3rem);
  font-weight:    600;
  line-height:    1.2;
  color:          var(--ctjpn-ivory);
  letter-spacing: -0.025em;
  margin-bottom:  20px;
}

.ctjpn-hero-sub {
  font-family:   var(--ctjpn-font-sans);
  font-size:     1rem;
  line-height:   1.85;
  color:         rgba(248,244,236,.82);
  margin-bottom: 36px;
}

.ctjpn-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ctjpn-hero-right { padding-top: 8px; }

.ctjpn-hero-featured-label {
  display:        block;
  font-family:    var(--ctjpn-font-sans);
  font-size:      0.68rem;
  font-weight:    500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          rgba(248,244,236,.48);
  margin-bottom:  14px;
  border-bottom:  1px solid rgba(248,244,236,.15);
  padding-bottom: 10px;
}

.ctjpn-featured-list { list-style: none; margin: 0; padding: 0; }
.ctjpn-featured-list li { border-bottom: 1px solid rgba(248,244,236,.1); padding: 13px 0; }
.ctjpn-featured-list li:last-child { border-bottom: none; }

.ctjpn-featured-list a {
  font-family:    var(--ctjpn-font-ser);
  font-size:      0.9rem;
  font-weight:    600;
  color:          var(--ctjpn-ivory);
  text-decoration: none;
  line-height:    1.5;
  display:        block;
  transition:     color .15s;
}

.ctjpn-featured-list a:hover { color: var(--ctjpn-copper); }

.ctjpn-featured-list .ctjpn-tag {
  display:        inline-block;
  font-size:      0.65rem;
  font-weight:    500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--ctjpn-copper);
  margin-bottom:  4px;
}

.ctjpn-featured-date {
  display:        block;
  font-size:      0.68rem;
  color:          rgba(248,244,236,.36);
  margin-top:     3px;
  letter-spacing: 0.03em;
}

/* Latest Analysis */
.ctjpn-latest { background-color: var(--ctjpn-ivory); padding: 80px 0; border-bottom: 1px solid var(--ctjpn-border); }

.ctjpn-latest .wp-block-latest-posts__list,
.ctjpn-latest ul.wp-block-latest-posts {
  display:               grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px; list-style: none !important; margin: 0 !important; padding: 0 !important;
}

.ctjpn-latest .wp-block-latest-posts__list li,
.ctjpn-latest ul.wp-block-latest-posts li {
  background-color: var(--ctjpn-white);
  border:           1px solid var(--ctjpn-border);
  border-top:       3px solid transparent;
  padding:          24px;
  border-radius:    2px;
  list-style:       none !important;
  transition:       border-top-color .18s, box-shadow .18s;
}

.ctjpn-latest .wp-block-latest-posts__list li:hover,
.ctjpn-latest ul.wp-block-latest-posts li:hover {
  border-top-color: var(--ctjpn-copper);
  box-shadow:       0 2px 14px rgba(31,26,23,.08);
}

.ctjpn-latest a.wp-block-latest-posts__post-title,
.ctjpn-latest .wp-block-latest-posts__list a {
  font-family: var(--ctjpn-font-ser) !important;
  font-size:   0.95rem !important; font-weight: 600 !important;
  color:       var(--ctjpn-ink) !important;
  text-decoration: none !important; line-height: 1.55; display: block;
}

.ctjpn-latest a.wp-block-latest-posts__post-title:hover { color: var(--ctjpn-forest) !important; }

.ctjpn-latest .wp-block-latest-posts__post-date {
  display: block; font-size: 0.72rem; color: var(--ctjpn-stone); margin-top: 10px; letter-spacing: 0.03em;
}

.ctjpn-latest-footer { text-align: center; margin-top: 40px; }

/* Article cards */
.ctjpn-start { background-color: var(--ctjpn-sand); padding: 80px 0; }

.ctjpn-articles-grid,
.ctjpn-series-grid,
.ctjpn-topic-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}

.ctjpn-article-card,
.ctjpn-series-card {
  background-color: var(--ctjpn-white);
  border:           1px solid var(--ctjpn-border);
  border-top:       3px solid transparent;
  padding:          24px;
  border-radius:    2px;
  text-decoration:  none;
  color:            var(--ctjpn-ink);
  display:          block;
  transition:       border-top-color .18s, box-shadow .18s;
}

.ctjpn-series-card { border-top: none; border-left: 3px solid var(--ctjpn-copper); }

.ctjpn-article-card:hover,
.ctjpn-series-card:hover {
  border-top-color: var(--ctjpn-copper);
  box-shadow:       0 2px 14px rgba(31,26,23,.09);
  text-decoration:  none;
  color:            var(--ctjpn-ink);
}

.ctjpn-article-card h3,
.ctjpn-series-card h3 {
  font-family:   var(--ctjpn-font-ser);
  font-size:     0.95rem;
  font-weight:   600;
  line-height:   1.55;
  color:         var(--ctjpn-ink);
  margin-bottom: 10px;
}

.ctjpn-article-card p,
.ctjpn-series-card p { font-size: 0.8rem; line-height: 1.65; color: var(--ctjpn-stone); margin: 0; }

.ctjpn-tag {
  display:        inline-block;
  font-size:      0.65rem;
  font-weight:    500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--ctjpn-copper);
  margin-bottom:  6px;
}

/* Topic hubs */
.ctjpn-hubs { background-color: var(--ctjpn-sand); padding: 80px 0; border-top: 1px solid var(--ctjpn-border); }
.ctjpn-hubs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

.ctjpn-hub-card {
  background-color: var(--ctjpn-ivory);
  border:           1px solid var(--ctjpn-border);
  border-top:       3px solid var(--ctjpn-forest);
  padding:          26px 22px;
  text-decoration:  none;
  color:            var(--ctjpn-ink);
  display:          block;
  border-radius:    2px;
  transition:       border-top-color .18s, box-shadow .18s;
}

.ctjpn-hub-card:hover { border-top-color: var(--ctjpn-copper); box-shadow: 0 2px 14px rgba(31,26,23,.08); text-decoration: none; color: var(--ctjpn-ink); }
.ctjpn-hub-card h3 { font-family: var(--ctjpn-font-ser); font-size: 0.93rem; font-weight: 600; color: var(--ctjpn-ink); margin-bottom: 8px; }
.ctjpn-hub-card p { font-size: 0.78rem; color: var(--ctjpn-stone); line-height: 1.6; margin-bottom: 12px; }
.ctjpn-hub-arrow { font-size: 0.78rem; color: var(--ctjpn-copper); margin: 0; }

/* Core Framework */
.ctjpn-framework { background-color: var(--ctjpn-ivory); padding: 80px 0; border-top: 1px solid var(--ctjpn-border); }
.ctjpn-step-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px; }

.ctjpn-step-card {
  background-color: var(--ctjpn-white);
  border:           1px solid var(--ctjpn-border);
  border-top:       3px solid var(--ctjpn-forest);
  padding:          22px 18px;
  border-radius:    2px;
  display:          block;
  text-decoration:  none;
  color:            var(--ctjpn-ink);
  transition:       border-top-color .18s, box-shadow .18s;
}

.ctjpn-step-card:hover { border-top-color: var(--ctjpn-copper); box-shadow: 0 2px 12px rgba(31,26,23,.09); text-decoration: none; color: var(--ctjpn-ink); }
.ctjpn-step-num { display: block; font-family: var(--ctjpn-font-ser); font-size: 1.4rem; font-weight: 700; color: var(--ctjpn-copper); line-height: 1; margin-bottom: 10px; }
.ctjpn-step-title { font-family: var(--ctjpn-font-ser); font-size: 0.9rem; font-weight: 600; color: var(--ctjpn-ink); margin-bottom: 6px; line-height: 1.4; }
.ctjpn-step-desc { font-size: 0.75rem; line-height: 1.6; color: var(--ctjpn-stone); margin: 0; }

/* Series */
.ctjpn-series { background-color: var(--ctjpn-ivory); padding: 80px 0; border-top: 1px solid var(--ctjpn-border); }

/* CTA */
.ctjpn-final-cta { background-color: var(--ctjpn-forest); color: var(--ctjpn-ivory); padding: 80px 0; text-align: center; }
.ctjpn-final-cta .ctjpn-container { max-width: 640px; }
.ctjpn-final-cta h2 { font-family: var(--ctjpn-font-ser); font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 600; color: var(--ctjpn-ivory); letter-spacing: -0.01em; line-height: 1.4; margin-bottom: 18px; }
.ctjpn-final-cta p { font-size: 0.93rem; line-height: 1.9; color: rgba(248,244,236,.75); margin-bottom: 32px; }


/* ────────────────────────────────────────────────────────────────
   HUB PAGES
   ──────────────────────────────────────────────────────────────── */
.ctjpn-hub-hero { background-color: var(--ctjpn-forest); color: var(--ctjpn-ivory); padding: 72px 0 64px; }
.ctjpn-hub-hero .ctjpn-hero-headline { font-family: var(--ctjpn-font-ser); font-size: clamp(1.7rem, 4vw, 2.6rem); font-weight: 600; line-height: 1.25; color: var(--ctjpn-ivory); letter-spacing: -0.02em; margin-bottom: 16px; }
.ctjpn-hub-hero .ctjpn-hero-sub { font-size: 1rem; color: rgba(248,244,236,.78); max-width: 640px; margin-bottom: 0; }

.ctjpn-topic-card { background-color: var(--ctjpn-white); border: 1px solid var(--ctjpn-border); border-top: 3px solid var(--ctjpn-forest); padding: 20px 18px; border-radius: 2px; }
.ctjpn-topic-card h3 { font-family: var(--ctjpn-font-ser); font-size: 0.9rem; font-weight: 600; color: var(--ctjpn-ink); margin-bottom: 6px; line-height: 1.45; }
.ctjpn-topic-card p { font-size: 0.78rem; line-height: 1.65; color: var(--ctjpn-stone); margin: 0; }


/* ────────────────────────────────────────────────────────────────
   RESPONSIVE
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ctjpn-hero-split { grid-template-columns: 1fr; gap: 40px; }
  .ctjpn-hero-right { border-top: 1px solid rgba(248,244,236,.18); padding-top: 28px; }
  .ctjpn-hubs-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .ctjpn-hero { padding: 60px 0 52px; }
  .ctjpn-hero-ctas { flex-direction: column; align-items: flex-start; }
  .ctjpn-btn { width: 100%; max-width: 280px; text-align: center; }

  .ctjpn-articles-grid,
  .ctjpn-latest .wp-block-latest-posts__list,
  .ctjpn-latest ul.wp-block-latest-posts,
  .ctjpn-series-grid,
  .ctjpn-topic-grid { grid-template-columns: 1fr; }

  .ctjpn-step-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .ctjpn-container { padding-left: 20px; padding-right: 20px; }

  .ctjpn-latest, .ctjpn-start, .ctjpn-hubs,
  .ctjpn-framework, .ctjpn-series, .ctjpn-final-cta,
  .ctjpn-hub-hero { padding: 52px 0; }

  .ctjpn-section-title { margin-bottom: 24px; }
  .site-title, .site-branding .site-title, h1.site-title { font-size: 18px !important; }

  body.single .entry-title, body.single-post .entry-title { font-size: 1.5rem !important; }
  body.single .entry-content, body.single-post .entry-content { font-size: 0.95rem !important; }
  body.archive article, body.category article { padding: 20px !important; }
}

@media (max-width: 480px) {
  .ctjpn-hubs-grid { grid-template-columns: 1fr; }
  .ctjpn-step-grid { grid-template-columns: 1fr; }
  body.single .entry-title, body.single-post .entry-title { font-size: 1.3rem !important; }
}


/* ────────────────────────────────────────────────────────────────
   ACCESSIBILITY
   ──────────────────────────────────────────────────────────────── */
.ctjpn-btn:focus-visible,
.ctjpn-article-card:focus-visible,
.ctjpn-hub-card:focus-visible,
.ctjpn-series-card:focus-visible,
.ctjpn-step-card:focus-visible,
.ctjpn-featured-list a:focus-visible,
body.single .entry-content a:focus-visible,
body.single-post .entry-content a:focus-visible {
  outline:        2px solid var(--ctjpn-copper);
  outline-offset: 3px;
}


/* ================================================================
   CTJPN Global Contrast & Title Fix — appended patch
   Applied: 2026-05-14
   ================================================================ */
/* ============================================================
   CTJPN Global Contrast & Title Fix — patch appended after
   ctjpn-presentation.css
   ============================================================ */

/* ----------------------------------------------------------
   1. Hide duplicate default WP page title on fixed pages
      NEVER hides:
        body.single .entry-title
        body.single-post .entry-title
        .entry-content h1
        .ctjpn-hero-headline
        .ctjpn-hub-hero h1
   ---------------------------------------------------------- */

body.page:not(.home) .site-main > article > .entry-header,
body.page:not(.home) .content-area article > .entry-header,
body.page:not(.home) article.page > .entry-header,
body.page:not(.home) .page-header {
  display: none !important;
}

body.page:not(.home) .entry-header > .entry-title,
body.page:not(.home) .page-header > .page-title,
body.page:not(.home) h1.entry-title {
  display: none !important;
}

/* Restore article post titles — must never be hidden */
body.single .entry-title,
body.single-post .entry-title,
body.single .entry-header,
body.single-post .entry-header {
  display: block !important;
}

/* ----------------------------------------------------------
   2. Dark green sections → force light text
   ---------------------------------------------------------- */

.ctjpn-hero,
.ctjpn-hub-hero,
.ctjpn-final-cta,
.ctjpn-dark,
section[style*="#24433A"],
section[style*="rgb(36, 67, 58)"] {
  background-color: #24433A !important;
  color: #F8F4EC !important;
}

.ctjpn-hero *,
.ctjpn-hub-hero *,
.ctjpn-final-cta *,
.ctjpn-dark * {
  color: inherit;
}

.ctjpn-hero h1,
.ctjpn-hero h2,
.ctjpn-hero h3,
.ctjpn-hero p,
.ctjpn-hero li,
.ctjpn-hero span,
.ctjpn-hub-hero h1,
.ctjpn-hub-hero h2,
.ctjpn-hub-hero h3,
.ctjpn-hub-hero p,
.ctjpn-hub-hero li,
.ctjpn-hub-hero span,
.ctjpn-final-cta h1,
.ctjpn-final-cta h2,
.ctjpn-final-cta h3,
.ctjpn-final-cta p,
.ctjpn-final-cta li,
.ctjpn-final-cta span {
  color: #F8F4EC !important;
}

.ctjpn-hero .ctjpn-hero-sub,
.ctjpn-hub-hero .ctjpn-hero-sub,
.ctjpn-final-cta p {
  color: rgba(248, 244, 236, 0.78) !important;
}

.ctjpn-hero .ctjpn-hero-eyebrow,
.ctjpn-hub-hero .ctjpn-hero-eyebrow,
.ctjpn-hero .ctjpn-section-eyebrow,
.ctjpn-hub-hero .ctjpn-section-eyebrow {
  color: #B46A3C !important;
}

.ctjpn-hero a,
.ctjpn-hub-hero a,
.ctjpn-final-cta a {
  color: #F8F4EC !important;
}

/* ----------------------------------------------------------
   3. Light sections → force dark text
   ---------------------------------------------------------- */

.ctjpn-latest,
.ctjpn-start,
.ctjpn-hubs,
.ctjpn-framework,
.ctjpn-series,
.ctjpn-topic-section,
.ctjpn-content-section,
.ctjpn-light,
.entry-content,
.site-content,
.content-area {
  color: #1F1A17 !important;
}

.ctjpn-latest h1,
.ctjpn-latest h2,
.ctjpn-latest h3,
.ctjpn-latest p,
.ctjpn-start h1,
.ctjpn-start h2,
.ctjpn-start h3,
.ctjpn-start p,
.ctjpn-hubs h1,
.ctjpn-hubs h2,
.ctjpn-hubs h3,
.ctjpn-hubs p,
.ctjpn-framework h1,
.ctjpn-framework h2,
.ctjpn-framework h3,
.ctjpn-framework p,
.ctjpn-series h1,
.ctjpn-series h2,
.ctjpn-series h3,
.ctjpn-series p,
.ctjpn-topic-section h1,
.ctjpn-topic-section h2,
.ctjpn-topic-section h3,
.ctjpn-topic-section p,
.ctjpn-content-section h1,
.ctjpn-content-section h2,
.ctjpn-content-section h3,
.ctjpn-content-section p {
  color: #1F1A17 !important;
}

.ctjpn-section-title,
.ctjpn-start .ctjpn-section-title,
.ctjpn-hubs .ctjpn-section-title,
.ctjpn-framework .ctjpn-section-title,
.ctjpn-series .ctjpn-section-title,
.ctjpn-topic-section .ctjpn-section-title {
  color: #1F1A17 !important;
}

.ctjpn-start p,
.ctjpn-hubs p,
.ctjpn-framework p,
.ctjpn-series p,
.ctjpn-topic-card p,
.ctjpn-article-card p,
.ctjpn-hub-card p,
.ctjpn-series-card p {
  color: #6F6A61 !important;
}

/* ----------------------------------------------------------
   4. Cards — always readable
   ---------------------------------------------------------- */

.ctjpn-article-card,
.ctjpn-hub-card,
.ctjpn-topic-card,
.ctjpn-series-card,
.ctjpn-step-card,
.ctjpn-latest li,
body.archive article,
body.category article,
body.tag article {
  background-color: #ffffff !important;
  color: #1F1A17 !important;
}

.ctjpn-article-card *,
.ctjpn-hub-card *,
.ctjpn-topic-card *,
.ctjpn-series-card *,
.ctjpn-step-card *,
.ctjpn-latest li *,
body.archive article *,
body.category article *,
body.tag article * {
  color: inherit;
}

.ctjpn-article-card h1,
.ctjpn-article-card h2,
.ctjpn-article-card h3,
.ctjpn-hub-card h1,
.ctjpn-hub-card h2,
.ctjpn-hub-card h3,
.ctjpn-topic-card h1,
.ctjpn-topic-card h2,
.ctjpn-topic-card h3,
.ctjpn-series-card h1,
.ctjpn-series-card h2,
.ctjpn-series-card h3,
.ctjpn-step-card h1,
.ctjpn-step-card h2,
.ctjpn-step-card h3 {
  color: #1F1A17 !important;
}

/* ----------------------------------------------------------
   5. Article pages — readable
   ---------------------------------------------------------- */

body.single,
body.single-post,
body.single .site-content,
body.single-post .site-content,
body.single .content-area,
body.single-post .content-area,
body.single article,
body.single-post article,
body.single .entry-content,
body.single-post .entry-content {
  background-color: #F8F4EC !important;
  color: #1F1A17 !important;
}

body.single .entry-title,
body.single-post .entry-title,
body.single .entry-content h1,
body.single .entry-content h2,
body.single .entry-content h3,
body.single-post .entry-content h1,
body.single-post .entry-content h2,
body.single-post .entry-content h3 {
  color: #1F1A17 !important;
}

body.single .entry-content p,
body.single-post .entry-content p,
body.single .entry-content li,
body.single-post .entry-content li,
body.single .entry-content span,
body.single-post .entry-content span {
  color: #1F1A17 !important;
}

/* ----------------------------------------------------------
   6. Tables — readable
   ---------------------------------------------------------- */

.entry-content table,
.wp-block-table table {
  background-color: #ffffff !important;
  color: #1F1A17 !important;
}

.entry-content th,
.wp-block-table th {
  background-color: #24433A !important;
  color: #F8F4EC !important;
}

.entry-content td,
.wp-block-table td {
  background-color: #ffffff !important;
  color: #1F1A17 !important;
  border-color: #D8CBB8 !important;
}

/* ----------------------------------------------------------
   7. Body backgrounds unified
   ---------------------------------------------------------- */

html,
body,
body.dark,
#page,
.site,
.site-content,
.content-area {
  background-color: #F8F4EC !important;
}

