/*
Theme Name:   PIVOTAL Child
Template:     Newspaper
Description:  PIVOTALメディア用子テーマ — 経営変革の思考誌
Version:      1.0.0
Text Domain:  pivotal-child
*/

/* ─────────────────────────────────────────
   GOOGLE FONTS  (@import は functions.php で wp_enqueue_scripts を使うこと)
   ここでは変数・リセット・コンポーネント定義のみ
───────────────────────────────────────── */

/* ── DESIGN TOKENS ── */
:root {
  --pv-black:    #0a0a0a;
  --pv-black-2:  #141414;
  --pv-black-3:  #1e1e1e;
  --pv-black-4:  #2a2a2a;
  --pv-gray-1:   #444;
  --pv-gray-2:   #666;
  --pv-gray-3:   #888;
  --pv-gray-4:   #aaa;
  --pv-ivory:    #f0ebe0;
  --pv-ivory-2:  #e8e2d5;
  --pv-ivory-3:  #d8d0c0;
  --pv-gold:     #c8b99a;
  --pv-gold-2:   #a89070;

  --pv-serif-en: 'EB Garamond', Georgia, serif;
  --pv-serif-jp: 'Shippori Mincho', 'Noto Serif JP', serif;
  --pv-sans:     'Noto Sans JP', sans-serif;

  --pv-max-w:    1200px;
  --pv-art-w:    720px;
}

/* ── RESET NEWSPAPER THEME DEFAULTS ── */
body,
#td-outer-wrap,
.td-main-content-wrap,
.td-container {
  background: var(--pv-black) !important;
  color:      var(--pv-ivory) !important;
  font-family: var(--pv-sans) !important;
  font-weight: 300 !important;
  max-width:   100% !important;
  padding:     0 !important;
  margin:      0 !important;
}

* { box-sizing: border-box; }

a { color: inherit; text-decoration: none; }

img { display: block; width: 100%; height: auto; }

-webkit-font-smoothing: antialiased;

/* ─────────────────────────────────────────
   PROGRESS BAR
───────────────────────────────────────── */
#pv-progress-bar {
  position: fixed;
  top:    0;
  left:   0;
  height: 2px;
  width:  0%;
  background: var(--pv-gold);
  z-index: 9999;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* ─────────────────────────────────────────
   HEADER / NAV
───────────────────────────────────────── */
#pv-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(10, 10, 10, 0.96);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 0.5px solid var(--pv-black-4);
}

.pv-nav-inner {
  max-width: var(--pv-max-w);
  margin:    0 auto;
  padding:   0 2rem;
  height:    60px;
  display:   flex;
  align-items:     center;
  justify-content: space-between;
}

/* Logo */
.pv-logo {
  display:        flex;
  flex-direction: column;
  gap:            2px;
  text-decoration: none;
}
.pv-logo-en {
  font-family:    var(--pv-serif-en);
  font-size:      22px;
  font-weight:    400;
  letter-spacing: 0.12em;
  color:          var(--pv-ivory);
  line-height:    1;
}
.pv-logo-jp {
  font-family:    var(--pv-sans);
  font-size:      9px;
  font-weight:    300;
  letter-spacing: 0.2em;
  color:          var(--pv-gray-3);
  line-height:    1;
}

/* Nav links */
.pv-nav-menu {
  display:     flex;
  align-items: center;
  gap:         2rem;
  list-style:  none;
  margin:      0;
  padding:     0;
}
.pv-nav-menu li a {
  font-size:      12px;
  font-weight:    400;
  letter-spacing: 0.1em;
  color:          var(--pv-gray-4);
  transition:     color 0.2s;
  position:       relative;
}
.pv-nav-menu li a::after {
  content:    '';
  position:   absolute;
  bottom:     -2px;
  left:       0;
  width:      0;
  height:     0.5px;
  background: var(--pv-gold);
  transition: width 0.3s ease;
}
.pv-nav-menu li a:hover         { color: var(--pv-ivory); }
.pv-nav-menu li a:hover::after  { width: 100%; }

/* CTA button */
.pv-nav-cta {
  font-size:      11px !important;
  letter-spacing: 0.1em !important;
  color:          var(--pv-gold) !important;
  border:         0.5px solid var(--pv-gold-2) !important;
  padding:        7px 16px !important;
  border-radius:  2px !important;
  transition:     background 0.2s, color 0.2s !important;
}
.pv-nav-cta:hover,
.pv-nav-cta:focus {
  background: var(--pv-gold) !important;
  color:      var(--pv-black) !important;
}
.pv-nav-cta::after { display: none !important; }

/* ─────────────────────────────────────────
   BREADCRUMB
───────────────────────────────────────── */
.pv-breadcrumb {
  max-width: var(--pv-max-w);
  margin:    0 auto;
  padding:   1.2rem 2rem 0;
  display:   flex;
  align-items: center;
  flex-wrap:   wrap;
  gap:         8px;
}
.pv-breadcrumb a,
.pv-breadcrumb span {
  font-size:      11px;
  letter-spacing: 0.08em;
  color:          var(--pv-gray-2);
}
.pv-breadcrumb a:hover       { color: var(--pv-gray-4); }
.pv-breadcrumb .sep          { color: var(--pv-gray-1); font-size: 10px; }
.pv-breadcrumb .current      { color: var(--pv-gray-3); }

/* ─────────────────────────────────────────
   ARTICLE LAYOUT (single.php)
───────────────────────────────────────── */
.pv-article-wrap {
  max-width: var(--pv-max-w);
  margin:    0 auto;
  padding:   0 2rem 6rem;
  display:   grid;
  grid-template-columns: 1fr 280px;
  gap:       0;
  align-items: start;
}

/* ── Article Main ── */
.pv-article-main {
  padding:      2.5rem 4rem 4rem 0;
  border-right: 0.5px solid var(--pv-black-4);
}

.pv-art-cat {
  display:     inline-flex;
  align-items: center;
  gap:         10px;
  margin-bottom: 1.4rem;
}
.pv-art-cat-line {
  width:      20px;
  height:     0.5px;
  background: var(--pv-gold);
}
.pv-art-cat-text {
  font-size:      10px;
  letter-spacing: 0.2em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
  font-weight:    400;
}

/* Article title */
.pv-art-title {
  font-family:    var(--pv-serif-jp);
  font-size:      32px;
  font-weight:    400;
  line-height:    1.75;
  color:          var(--pv-ivory);
  margin-bottom:  1.6rem;
  letter-spacing: 0.02em;
}

/* Meta row */
.pv-art-meta {
  display:      flex;
  align-items:  center;
  gap:          1.5rem;
  flex-wrap:    wrap;
  padding-bottom: 1.5rem;
  border-bottom:  0.5px solid var(--pv-black-4);
  margin-bottom:  2rem;
}
.pv-art-meta-date {
  font-family:  var(--pv-serif-en);
  font-style:   italic;
  font-size:    13px;
  color:        var(--pv-gray-3);
}
.pv-art-meta-divider {
  width:       0.5px;
  height:      14px;
  background:  var(--pv-black-4);
  flex-shrink: 0;
}
.pv-art-meta-readtime {
  font-size:      11px;
  color:          var(--pv-gray-2);
  letter-spacing: 0.06em;
}
.pv-art-meta-tags {
  display:    flex;
  gap:        6px;
  flex-wrap:  wrap;
  margin-left: auto;
}
.pv-art-tag {
  font-size:      10px;
  letter-spacing: 0.08em;
  color:          var(--pv-gray-2);
  border:         0.5px solid var(--pv-gray-1);
  padding:        3px 10px;
  border-radius:  1px;
}

/* Lead text */
.pv-art-lead {
  font-family:   var(--pv-serif-jp);
  font-size:     16px;
  font-weight:   400;
  line-height:   2;
  color:         var(--pv-ivory-2);
  margin-bottom: 2.5rem;
  padding-left:  1.2rem;
  border-left:   2px solid var(--pv-gold-2);
  border-radius: 0;
}

/* Key visual (アイキャッチ) */
.pv-art-kv {
  width:         100%;
  margin-bottom: 2.5rem;
  overflow:      hidden;
}
.pv-art-kv img {
  width:  100%;
  height: 360px;
  object-fit: cover;
  display: block;
}

/* ── Body Copy ── */
.pv-art-body {
  font-family: var(--pv-serif-jp);
  font-size:   16px;
  font-weight: 400;
  line-height: 2.1;
  color:       var(--pv-ivory-2);
}
.pv-art-body p           { margin-bottom: 1.8em; }
.pv-art-body p:last-child { margin-bottom: 0; }

/* H2 inside body */
.pv-art-body h2 {
  font-family:    var(--pv-serif-jp);
  font-size:      22px;
  font-weight:    500;
  color:          var(--pv-ivory);
  line-height:    1.65;
  margin:         3em 0 1.2em;
  padding-top:    2em;
  border-top:     0.5px solid var(--pv-black-4);
  position:       relative;
}
.pv-art-body h2::before {
  content:    '';
  position:   absolute;
  top:        -0.5px;
  left:       0;
  width:      40px;
  height:     1px;
  background: var(--pv-gold);
}

/* H3 inside body */
.pv-art-body h3 {
  font-family:  var(--pv-serif-jp);
  font-size:    18px;
  font-weight:  500;
  color:        var(--pv-ivory);
  line-height:  1.7;
  margin:       2.2em 0 0.9em;
}

/* Blockquote */
.pv-art-body blockquote {
  margin:        2.5em 0;
  padding:       1.8rem 2rem;
  background:    var(--pv-black-2);
  border-left:   2px solid var(--pv-gold);
  border-radius: 0;
}
.pv-art-body blockquote p {
  font-family: var(--pv-serif-jp);
  font-size:   16px;
  font-weight: 400;
  line-height: 2;
  color:       var(--pv-ivory-2);
  font-style:  italic;
  margin:      0 0 0.6rem;
}
.pv-art-body blockquote cite {
  font-size:      12px;
  color:          var(--pv-gray-3);
  font-style:     normal;
  letter-spacing: 0.06em;
}

/* Figure / caption */
.pv-art-body figure        { margin: 2.5em 0; }
.pv-art-body figure img    { width: 100%; height: auto; display: block; }
.pv-art-body figcaption {
  font-size:      12px;
  color:          var(--pv-gray-3);
  text-align:     center;
  font-style:     italic;
  font-family:    var(--pv-serif-en);
  letter-spacing: 0.06em;
  margin-top:     0.6rem;
}

/* Data box (Gutenbergカスタムブロック想定 / shortcode対応) */
.pv-databox {
  margin:   2.5em 0;
  border:   0.5px solid var(--pv-black-4);
  overflow: hidden;
}
.pv-databox-header {
  background:     var(--pv-black-3);
  padding:        0.8rem 1.4rem;
  font-size:      10px;
  letter-spacing: 0.16em;
  color:          var(--pv-gold);
  border-bottom:  0.5px solid var(--pv-black-4);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-databox-body { padding: 0; }
.pv-databox-row {
  display:         flex;
  justify-content: space-between;
  align-items:     baseline;
  padding:         0.9rem 1.4rem;
  border-bottom:   0.5px solid var(--pv-black-4);
  gap:             1rem;
}
.pv-databox-row:last-child { border-bottom: none; }
.pv-databox-label {
  font-size: 13px;
  color:     var(--pv-gray-3);
  font-family: var(--pv-sans);
}
.pv-databox-val {
  font-family:    var(--pv-serif-en);
  font-size:      22px;
  color:          var(--pv-ivory);
  letter-spacing: 0.04em;
  white-space:    nowrap;
}
.pv-databox-note {
  font-size:   11px;
  color:       var(--pv-gray-2);
  margin-left: 6px;
}

/* ─────────────────────────────────────────
   ARTICLE FOOTER
───────────────────────────────────────── */
.pv-art-footer {
  margin-top:  4rem;
  padding-top: 2rem;
  border-top:  0.5px solid var(--pv-black-4);
}

/* Tag cloud */
.pv-art-footer-tags {
  display:   flex;
  gap:       8px;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}
.pv-art-footer-tag {
  font-size:      11px;
  letter-spacing: 0.08em;
  color:          var(--pv-gray-3);
  border:         0.5px solid var(--pv-gray-1);
  padding:        5px 14px;
  border-radius:  1px;
  cursor:         pointer;
  transition:     color 0.2s, border-color 0.2s;
}
.pv-art-footer-tag:hover {
  color:         var(--pv-gold);
  border-color:  var(--pv-gold-2);
}

/* Share buttons */
.pv-art-share {
  display:     flex;
  align-items: center;
  gap:         1rem;
  margin-bottom: 2.5rem;
  flex-wrap:   wrap;
}
.pv-art-share-label {
  font-size:      11px;
  letter-spacing: 0.12em;
  color:          var(--pv-gray-2);
}
.pv-share-btn {
  font-size:      11px;
  letter-spacing: 0.08em;
  color:          var(--pv-gray-3);
  border:         0.5px solid var(--pv-gray-1);
  padding:        6px 14px;
  border-radius:  1px;
  cursor:         pointer;
  transition:     color 0.2s, border-color 0.2s;
  background:     transparent;
}
.pv-share-btn:hover {
  color:        var(--pv-ivory);
  border-color: var(--pv-gray-3);
}

/* Author box */
.pv-art-author {
  display:     flex;
  gap:         1.2rem;
  align-items: flex-start;
  padding:     1.6rem;
  background:  var(--pv-black-2);
  border:      0.5px solid var(--pv-black-4);
  margin-bottom: 2.5rem;
}
.pv-author-avatar {
  width:          52px;
  height:         52px;
  border-radius:  50%;
  overflow:       hidden;
  flex-shrink:    0;
  background:     var(--pv-black-4);
  display:        flex;
  align-items:    center;
  justify-content: center;
  font-family:    var(--pv-serif-en);
  font-size:      18px;
  color:          var(--pv-gray-3);
}
.pv-author-avatar img { width: 52px; height: 52px; object-fit: cover; border-radius: 50%; }
.pv-author-name {
  font-family:   var(--pv-serif-jp);
  font-size:     15px;
  font-weight:   500;
  color:         var(--pv-ivory);
  margin-bottom: 3px;
}
.pv-author-role {
  font-size:      11px;
  color:          var(--pv-gold);
  letter-spacing: 0.06em;
  margin-bottom:  8px;
}
.pv-author-bio {
  font-size:   12px;
  color:       var(--pv-gray-3);
  line-height: 1.8;
  font-family: var(--pv-sans);
  font-weight: 300;
}

/* Consulting CTA */
.pv-consulting-cta {
  padding:       2rem;
  border:        0.5px solid var(--pv-gold-2);
  background:    var(--pv-black-2);
  text-align:    center;
  margin-bottom: 2.5rem;
}
.pv-cta-label {
  font-size:      9px;
  letter-spacing: 0.2em;
  color:          var(--pv-gold);
  margin-bottom:  0.8rem;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-cta-title {
  font-family:   var(--pv-serif-jp);
  font-size:     18px;
  font-weight:   400;
  color:         var(--pv-ivory);
  line-height:   1.65;
  margin-bottom: 0.7rem;
}
.pv-cta-desc {
  font-size:     12px;
  color:         var(--pv-gray-3);
  line-height:   1.8;
  margin-bottom: 1.4rem;
  font-family:   var(--pv-sans);
  font-weight:   300;
}
.pv-cta-btn {
  display:        inline-block;
  font-size:      12px;
  letter-spacing: 0.1em;
  color:          var(--pv-black);
  background:     var(--pv-gold);
  padding:        13px 32px;
  border-radius:  2px;
  cursor:         pointer;
  transition:     background 0.2s;
  font-family:    var(--pv-sans);
  font-weight:    400;
  margin-bottom:  0.6rem;
  display:        block;
  width:          fit-content;
  margin-left:    auto;
  margin-right:   auto;
}
.pv-cta-btn:hover { background: var(--pv-ivory); color: var(--pv-black); }
.pv-cta-sub {
  font-size:      10px;
  color:          var(--pv-gray-2);
  letter-spacing: 0.06em;
  font-family:    var(--pv-sans);
}

/* ─────────────────────────────────────────
   SIDEBAR
───────────────────────────────────────── */
.pv-article-sidebar {
  padding:  2.5rem 0 4rem 2.5rem;
  position: sticky;
  top:      80px;
  max-height: calc(100vh - 80px);
  overflow-y: auto;
  scrollbar-width: none;
}
.pv-article-sidebar::-webkit-scrollbar { display: none; }

/* TOC */
.pv-toc          { margin-bottom: 2.5rem; }
.pv-toc-label {
  font-size:      10px;
  letter-spacing: 0.16em;
  color:          var(--pv-gray-2);
  margin-bottom:  1rem;
  padding-bottom: 0.8rem;
  border-bottom:  0.5px solid var(--pv-black-4);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-toc-list {
  list-style: none;
  margin:     0;
  padding:    0;
}
.pv-toc-item {
  font-size:     12px;
  color:         var(--pv-gray-3);
  padding:       0.55rem 0;
  border-bottom: 0.5px solid var(--pv-black-4);
  cursor:        pointer;
  transition:    color 0.2s;
  display:       flex;
  gap:           10px;
  align-items:   baseline;
}
.pv-toc-item:last-child { border-bottom: none; }
.pv-toc-item:hover      { color: var(--pv-gold); }
.pv-toc-item.is-active  { color: var(--pv-ivory); }
.pv-toc-num {
  font-family: var(--pv-serif-en);
  font-style:  italic;
  font-size:   11px;
  color:       var(--pv-gray-1);
  flex-shrink: 0;
}
.pv-toc-item.is-active .pv-toc-num { color: var(--pv-gold); }

/* Sidebar newsletter */
.pv-sb-newsletter {
  background:    var(--pv-black-2);
  border:        0.5px solid var(--pv-black-4);
  padding:       1.4rem;
  margin-bottom: 2rem;
}
.pv-sb-nl-label {
  font-size:      9px;
  letter-spacing: 0.18em;
  color:          var(--pv-gold);
  margin-bottom:  0.7rem;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-sb-nl-title {
  font-family:   var(--pv-serif-jp);
  font-size:     14px;
  font-weight:   400;
  color:         var(--pv-ivory);
  line-height:   1.65;
  margin-bottom: 0.8rem;
}
.pv-sb-nl-form input[type="email"] {
  width:         100%;
  background:    var(--pv-black-3);
  border:        0.5px solid var(--pv-black-4);
  color:         var(--pv-ivory);
  font-size:     12px;
  font-family:   var(--pv-sans);
  font-weight:   300;
  padding:       9px 12px;
  outline:       none;
  border-radius: 0;
  margin-bottom: 8px;
  transition:    border-color 0.2s;
  display:       block;
  -webkit-appearance: none;
}
.pv-sb-nl-form input[type="email"]::placeholder { color: var(--pv-gray-2); }
.pv-sb-nl-form input[type="email"]:focus        { border-color: var(--pv-gray-2); }
.pv-sb-nl-form button {
  width:          100%;
  background:     var(--pv-gold);
  color:          var(--pv-black);
  font-size:      11px;
  font-family:    var(--pv-sans);
  font-weight:    500;
  letter-spacing: 0.1em;
  padding:        10px;
  border:         none;
  cursor:         pointer;
  transition:     background 0.2s;
  border-radius:  0;
}
.pv-sb-nl-form button:hover { background: var(--pv-ivory); }

/* Related articles */
.pv-sb-related-label {
  font-size:      10px;
  letter-spacing: 0.16em;
  color:          var(--pv-gray-2);
  margin-bottom:  1rem;
  padding-bottom: 0.8rem;
  border-bottom:  0.5px solid var(--pv-black-4);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-sb-related-item {
  padding:       1rem 0;
  border-bottom: 0.5px solid var(--pv-black-4);
  cursor:        pointer;
  transition:    opacity 0.2s;
}
.pv-sb-related-item:last-child { border-bottom: none; }
.pv-sb-related-item:hover      { opacity: 0.7; }
.pv-sb-related-cat {
  font-size:      9px;
  letter-spacing: 0.14em;
  color:          var(--pv-gold);
  margin-bottom:  4px;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-sb-related-title {
  font-family: var(--pv-serif-jp);
  font-size:   12px;
  font-weight: 400;
  color:       var(--pv-ivory-2);
  line-height: 1.75;
}

/* ─────────────────────────────────────────
   PREV / NEXT NAVIGATION
───────────────────────────────────────── */
.pv-art-nav {
  max-width: var(--pv-max-w);
  margin:    0 auto;
  padding:   0 2rem 4rem;
  display:   grid;
  grid-template-columns: 1fr 1fr;
  border-top: 0.5px solid var(--pv-black-4);
}
.pv-art-nav-item {
  padding:        2rem;
  cursor:         pointer;
  transition:     background 0.2s;
  display:        flex;
  flex-direction: column;
  gap:            6px;
}
.pv-art-nav-item:first-child { border-right: 0.5px solid var(--pv-black-4); }
.pv-art-nav-item:last-child  { text-align: right; }
.pv-art-nav-item:hover       { background: var(--pv-black-2); }
.pv-art-nav-dir {
  font-size:      10px;
  letter-spacing: 0.18em;
  color:          var(--pv-gray-2);
  display:        flex;
  align-items:    center;
  gap:            8px;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-art-nav-item:last-child .pv-art-nav-dir { justify-content: flex-end; }
.pv-art-nav-dir-line {
  width:      20px;
  height:     0.5px;
  background: var(--pv-gray-2);
  flex-shrink: 0;
}
.pv-art-nav-cat {
  font-size:      10px;
  letter-spacing: 0.12em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-art-nav-title {
  font-family:  var(--pv-serif-jp);
  font-size:    14px;
  font-weight:  400;
  color:        var(--pv-ivory-2);
  line-height:  1.7;
}

/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
#pv-footer {
  background:  var(--pv-black-2);
  border-top:  0.5px solid var(--pv-black-4);
}
.pv-footer-inner {
  max-width: var(--pv-max-w);
  margin:    0 auto;
  padding:   2.5rem 2rem;
  display:   flex;
  justify-content: space-between;
  align-items:     center;
  flex-wrap:       wrap;
  gap:             1rem;
}
.pv-footer-logo {
  font-family:    var(--pv-serif-en);
  font-size:      16px;
  letter-spacing: 0.12em;
  color:          var(--pv-gray-3);
}
.pv-footer-links {
  display:  flex;
  gap:      2rem;
  flex-wrap: wrap;
}
.pv-footer-links a {
  font-size:      11px;
  letter-spacing: 0.08em;
  color:          var(--pv-gray-2);
  transition:     color 0.2s;
  font-family:    var(--pv-sans);
  font-weight:    300;
}
.pv-footer-links a:hover { color: var(--pv-gray-4); }
.pv-footer-copy {
  font-size:      10px;
  color:          var(--pv-gray-2);
  letter-spacing: 0.08em;
  font-family:    var(--pv-serif-en);
  font-style:     italic;
}

/* ═══════════════════════════════════════════════════════
   FRONT-PAGE STYLES  (style.css に追記)
════════════════════════════════════════════════════════ */

/* ─── TICKER ─────────────────────────────────────────── */
.pv-ticker {
  background:   var(--pv-black-3);
  border-bottom: 0.5px solid var(--pv-black-4);
  height:        34px;
  display:       flex;
  align-items:   center;
  overflow:      hidden;
}
.pv-ticker-label {
  font-size:      9px;
  letter-spacing: 0.15em;
  color:          var(--pv-gold);
  padding:        0 1.2rem;
  white-space:    nowrap;
  border-right:   0.5px solid var(--pv-black-4);
  height:         100%;
  display:        flex;
  align-items:    center;
  flex-shrink:    0;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-ticker-outer {
  overflow: hidden;
  flex:     1;
  display:  flex;
  align-items: center;
}
.pv-ticker-track {
  display:   flex;
  gap:       4rem;
  animation: pvTicker 36s linear infinite;
  white-space: nowrap;
}
@keyframes pvTicker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.pv-ticker-item {
  font-size:   11px;
  color:       var(--pv-gray-3);
  transition:  color 0.2s;
  cursor:      pointer;
  display:     inline-flex;
  align-items: center;
  gap:         0.5rem;
  flex-shrink: 0;
}
.pv-ticker-item:hover { color: var(--pv-ivory); }
.pv-ticker-cat {
  font-size:      9px;
  letter-spacing: 0.12em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
}

/* ─── HERO ────────────────────────────────────────────── */
.pv-hero {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     0 2rem;
  display:     grid;
  grid-template-columns: 1fr 380px;
  min-height:  540px;
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-hero-main {
  padding:      3.5rem 3rem 3.5rem 0;
  border-right: 0.5px solid var(--pv-black-4);
  display:      flex;
  flex-direction: column;
  justify-content: space-between;
}
.pv-hero-vol {
  font-family:    var(--pv-serif-en);
  font-style:     italic;
  font-size:      10px;
  letter-spacing: 0.2em;
  color:          var(--pv-gray-2);
  margin-bottom:  1.5rem;
}
.pv-hero-cat {
  display:       inline-flex;
  align-items:   center;
  gap:           8px;
  margin-bottom: 1.2rem;
}
.pv-hero-cat-line {
  width:      24px;
  height:     0.5px;
  background: var(--pv-gold);
  flex-shrink: 0;
}
.pv-hero-cat-text {
  font-size:      10px;
  letter-spacing: 0.18em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-hero-title {
  font-family:    var(--pv-serif-jp);
  font-size:      36px;
  font-weight:    400;
  line-height:    1.75;
  color:          var(--pv-ivory);
  margin-bottom:  1.5rem;
  letter-spacing: 0.02em;
}
.pv-hero-title a { color: inherit; }
.pv-hero-title a:hover { opacity: 0.8; }
.pv-hero-lead {
  font-size:     13px;
  color:         var(--pv-gray-3);
  line-height:   1.9;
  margin-bottom: 2rem;
  font-family:   var(--pv-sans);
  font-weight:   300;
}
.pv-hero-meta {
  display:     flex;
  align-items: center;
  gap:         1.5rem;
}
.pv-hero-read {
  display:     flex;
  align-items: center;
  gap:         10px;
  font-size:   11px;
  letter-spacing: 0.1em;
  color:       var(--pv-gold);
  transition:  gap 0.2s;
  cursor:      pointer;
}
.pv-hero-read:hover { gap: 16px; }
.pv-hero-read-line {
  width:      32px;
  height:     0.5px;
  background: var(--pv-gold);
  flex-shrink: 0;
}
.pv-hero-date {
  font-family: var(--pv-serif-en);
  font-style:  italic;
  font-size:   11px;
  color:       var(--pv-gray-2);
}

/* Hero sub-column */
.pv-hero-sub {
  padding: 3.5rem 0 3.5rem 2.5rem;
  display: flex;
  flex-direction: column;
}
.pv-hero-sub-title {
  font-size:      10px;
  letter-spacing: 0.18em;
  color:          var(--pv-gray-2);
  margin-bottom:  1.5rem;
  padding-bottom: 1rem;
  border-bottom:  0.5px solid var(--pv-black-4);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-hero-sub-item {
  padding:       1.1rem 0;
  border-bottom: 0.5px solid var(--pv-black-4);
  cursor:        pointer;
  transition:    opacity 0.2s;
  display:       flex;
  flex-direction: column;
  gap:           4px;
}
.pv-hero-sub-item:last-child { border-bottom: none; }
.pv-hero-sub-item:hover      { opacity: 0.7; }
.pv-hero-sub-num {
  font-family:    var(--pv-serif-en);
  font-size:      10px;
  color:          var(--pv-gray-2);
  letter-spacing: 0.1em;
}
.pv-hero-sub-cat {
  font-size:      9px;
  letter-spacing: 0.15em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-hero-sub-ttl {
  font-family:  var(--pv-serif-jp);
  font-size:    13px;
  line-height:  1.75;
  color:        var(--pv-ivory-2);
  font-weight:  400;
}

/* ─── SECTION HEADER ──────────────────────────────────── */
.pv-section-header {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     2.5rem 2rem 1.2rem;
  display:     flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-section-title-wrap {
  display:     flex;
  align-items: center;
  gap:         14px;
}
.pv-section-title-en {
  font-family:    var(--pv-serif-en);
  font-size:      20px;
  font-weight:    400;
  color:          var(--pv-ivory);
  letter-spacing: 0.08em;
}
.pv-section-title-jp {
  font-size:      11px;
  color:          var(--pv-gray-2);
  letter-spacing: 0.12em;
  font-family:    var(--pv-sans);
  font-weight:    300;
}
.pv-section-more {
  font-size:      10px;
  letter-spacing: 0.14em;
  color:          var(--pv-gray-3);
  display:        flex;
  align-items:    center;
  gap:            8px;
  transition:     color 0.2s;
  font-family:    var(--pv-sans);
  font-weight:    300;
}
.pv-section-more:hover        { color: var(--pv-gold); }
.pv-section-more-line {
  width:      20px;
  height:     0.5px;
  background: currentColor;
  flex-shrink: 0;
}

/* ─── ARTICLE GRID ────────────────────────────────────── */
.pv-article-grid {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     0 2rem 3rem;
  display:     grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-article-card {
  padding:      1.8rem 1.5rem;
  border-right: 0.5px solid var(--pv-black-4);
  transition:   background 0.2s;
}
.pv-article-card:last-child { border-right: none; }
.pv-article-card:hover      { background: var(--pv-black-2); }
.pv-article-card-cat {
  font-size:      9px;
  letter-spacing: 0.18em;
  color:          var(--pv-gold);
  margin-bottom:  0.8rem;
  display:        flex;
  align-items:    center;
  gap:            8px;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-article-card-cat::before {
  content:    '';
  display:    block;
  width:      16px;
  height:     0.5px;
  background: var(--pv-gold);
  flex-shrink: 0;
}
.pv-article-card-cat a        { color: inherit; }
.pv-article-card-cat a:hover  { opacity: 0.7; }
.pv-article-card-title {
  font-family:   var(--pv-serif-jp);
  font-size:     15px;
  font-weight:   400;
  line-height:   1.8;
  color:         var(--pv-ivory);
  margin-bottom: 0.8rem;
}
.pv-article-card-title a       { color: inherit; }
.pv-article-card-title a:hover { opacity: 0.8; }
.pv-article-card-lead {
  font-size:     11px;
  color:         var(--pv-gray-2);
  line-height:   1.8;
  margin-bottom: 1.2rem;
  font-family:   var(--pv-sans);
  font-weight:   300;
}
.pv-article-card-meta {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  font-size:       10px;
  color:           var(--pv-gray-2);
  font-family:     var(--pv-serif-en);
  font-style:      italic;
}
.pv-article-card-tag {
  font-style:     normal;
  font-family:    var(--pv-sans);
  font-size:      9px;
  letter-spacing: 0.1em;
  color:          var(--pv-gray-1);
  border:         0.5px solid var(--pv-gray-1);
  padding:        2px 8px;
  border-radius:  1px;
}

/* ─── FEATURED WRAP ───────────────────────────────────── */
.pv-featured-wrap {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     0 2rem;
  display:     grid;
  grid-template-columns: 1fr 320px;
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-featured-main {
  padding:      2rem 2rem 2rem 0;
  border-right: 0.5px solid var(--pv-black-4);
  transition:   opacity 0.2s;
  cursor:       pointer;
}
.pv-featured-main:hover { opacity: 0.8; }
.pv-featured-img {
  width:         100%;
  margin-bottom: 1.2rem;
  overflow:      hidden;
}
.pv-featured-img img {
  width:       100%;
  height:      200px;
  object-fit:  cover;
  display:     block;
  transition:  transform 0.4s ease;
}
.pv-featured-main:hover .pv-featured-img img { transform: scale(1.02); }
.pv-featured-cat {
  font-size:      9px;
  letter-spacing: 0.18em;
  color:          var(--pv-gold);
  margin-bottom:  0.7rem;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-featured-title {
  font-family:   var(--pv-serif-jp);
  font-size:     20px;
  font-weight:   400;
  line-height:   1.75;
  color:         var(--pv-ivory);
  margin-bottom: 0.7rem;
}
.pv-featured-title a { color: inherit; }
.pv-featured-lead {
  font-size:   12px;
  color:       var(--pv-gray-3);
  line-height: 1.85;
  font-family: var(--pv-sans);
  font-weight: 300;
}
.pv-featured-list {
  padding:        0 0 0 2rem;
  display:        flex;
  flex-direction: column;
}
.pv-featured-list-item {
  padding:        1.4rem 0;
  border-bottom:  0.5px solid var(--pv-black-4);
  cursor:         pointer;
  transition:     opacity 0.2s;
  display:        flex;
  flex-direction: column;
  gap:            4px;
}
.pv-featured-list-item:last-child { border-bottom: none; }
.pv-featured-list-item:hover      { opacity: 0.7; }
.pv-featured-list-cat {
  font-size:      9px;
  letter-spacing: 0.15em;
  color:          var(--pv-gold);
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-featured-list-title {
  font-family:  var(--pv-serif-jp);
  font-size:    13px;
  font-weight:  400;
  line-height:  1.75;
  color:        var(--pv-ivory-2);
}
.pv-featured-list-date {
  font-family:  var(--pv-serif-en);
  font-style:   italic;
  font-size:    10px;
  color:        var(--pv-gray-2);
}

/* ─── DIAGNOSIS CTA ───────────────────────────────────── */
.pv-diagnosis-cta {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     3rem 2rem;
  display:     grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap:         2rem;
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-diagnosis-label {
  font-size:      9px;
  letter-spacing: 0.2em;
  color:          var(--pv-gold);
  margin-bottom:  0.6rem;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-diagnosis-title {
  font-family:   var(--pv-serif-jp);
  font-size:     22px;
  font-weight:   400;
  color:         var(--pv-ivory);
  line-height:   1.6;
  margin-bottom: 0.7rem;
}
.pv-diagnosis-desc {
  font-size:   12px;
  color:       var(--pv-gray-3);
  line-height: 1.8;
  font-family: var(--pv-sans);
  font-weight: 300;
}
.pv-diagnosis-action {
  display:        flex;
  flex-direction: column;
  align-items:    center;
  gap:            8px;
  flex-shrink:    0;
}
.pv-diagnosis-btn-main {
  display:        inline-block;
  font-size:      12px;
  letter-spacing: 0.12em;
  color:          var(--pv-black);
  background:     var(--pv-gold);
  padding:        14px 32px;
  border-radius:  2px;
  white-space:    nowrap;
  cursor:         pointer;
  transition:     background 0.2s;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-diagnosis-btn-main:hover { background: var(--pv-ivory); color: var(--pv-black); }
.pv-diagnosis-btn-sub {
  font-size:  10px;
  color:      var(--pv-gray-2);
  letter-spacing: 0.08em;
  font-family: var(--pv-sans);
  font-weight: 300;
}

/* ─── FW / INTERVIEW GRID ─────────────────────────────── */
.pv-fw-grid {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     0 2rem 3rem;
  display:     grid;
  grid-template-columns: repeat(2, 1fr);
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-fw-card {
  padding:      1.8rem 1.5rem;
  border-right: 0.5px solid var(--pv-black-4);
  cursor:       pointer;
  transition:   background 0.2s;
}
.pv-fw-card:last-child { border-right: none; }
.pv-fw-card:hover      { background: var(--pv-black-2); }
.pv-fw-num {
  font-family:    var(--pv-serif-en);
  font-size:      36px;
  font-weight:    400;
  color:          var(--pv-black-4);
  line-height:    1;
  margin-bottom:  0.8rem;
  letter-spacing: -0.02em;
}
.pv-fw-cat {
  font-size:      9px;
  letter-spacing: 0.18em;
  color:          var(--pv-gold);
  margin-bottom:  0.6rem;
  font-family:    var(--pv-sans);
  font-weight:    400;
}
.pv-fw-title {
  font-family:   var(--pv-serif-jp);
  font-size:     16px;
  font-weight:   400;
  line-height:   1.75;
  color:         var(--pv-ivory);
  margin-bottom: 0.6rem;
}
.pv-fw-title a       { color: inherit; }
.pv-fw-title a:hover { opacity: 0.8; }
.pv-fw-desc {
  font-size:   11px;
  color:       var(--pv-gray-2);
  line-height: 1.8;
  font-family: var(--pv-sans);
  font-weight: 300;
}

/* ─── NEWSLETTER ──────────────────────────────────────── */
.pv-newsletter {
  background:    var(--pv-black-2);
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-newsletter-inner {
  max-width:  640px;
  margin:     0 auto;
  padding:    4rem 2rem;
  text-align: center;
}
.pv-newsletter-ornament {
  font-family:    var(--pv-serif-en);
  font-size:      11px;
  font-style:     italic;
  color:          var(--pv-gold);
  letter-spacing: 0.1em;
  margin-bottom:  1.2rem;
  display:        flex;
  align-items:    center;
  justify-content: center;
  gap:            16px;
}
.pv-newsletter-ornament::before,
.pv-newsletter-ornament::after {
  content:    '';
  display:    block;
  width:      40px;
  height:     0.5px;
  background: var(--pv-gold-2);
}
.pv-newsletter-title {
  font-family:   var(--pv-serif-jp);
  font-size:     22px;
  font-weight:   400;
  color:         var(--pv-ivory);
  line-height:   1.65;
  margin-bottom: 0.8rem;
}
.pv-newsletter-desc {
  font-size:     12px;
  color:         var(--pv-gray-3);
  line-height:   1.9;
  margin-bottom: 2rem;
  font-family:   var(--pv-sans);
  font-weight:   300;
}
.pv-newsletter-form {
  display:   flex;
  max-width: 440px;
  margin:    0 auto 0.8rem;
}
.pv-newsletter-form input[type="email"] {
  flex:          1;
  background:    var(--pv-black-3);
  border:        0.5px solid var(--pv-black-4);
  border-right:  none;
  color:         var(--pv-ivory);
  font-size:     13px;
  font-family:   var(--pv-sans);
  font-weight:   300;
  padding:       12px 16px;
  outline:       none;
  border-radius: 2px 0 0 2px;
  transition:    border-color 0.2s;
  -webkit-appearance: none;
}
.pv-newsletter-form input[type="email"]::placeholder { color: var(--pv-gray-2); }
.pv-newsletter-form input[type="email"]:focus        { border-color: var(--pv-gray-2); }
.pv-newsletter-form button {
  background:     var(--pv-gold);
  color:          var(--pv-black);
  font-size:      11px;
  font-family:    var(--pv-sans);
  font-weight:    500;
  letter-spacing: 0.1em;
  padding:        12px 20px;
  border:         none;
  cursor:         pointer;
  border-radius:  0 2px 2px 0;
  white-space:    nowrap;
  transition:     background 0.2s;
}
.pv-newsletter-form button:hover { background: var(--pv-ivory); }
.pv-newsletter-privacy {
  font-size:   11px;
  color:       var(--pv-gray-2);
  letter-spacing: 0.06em;
  font-family: var(--pv-sans);
  font-weight: 300;
}
.pv-newsletter-privacy a {
  color:      var(--pv-gold);
  transition: opacity 0.2s;
}
.pv-newsletter-privacy a:hover { opacity: 0.7; }

/* ─── ABOUT STRIP ─────────────────────────────────────── */
.pv-about-strip {
  max-width:   var(--pv-max-w);
  margin:      0 auto;
  padding:     3rem 2rem;
  display:     grid;
  grid-template-columns: 200px 1fr auto;
  gap:         3rem;
  align-items: center;
  border-bottom: 0.5px solid var(--pv-black-4);
}
.pv-about-logo-lg {
  font-family:    var(--pv-serif-en);
  font-size:      28px;
  font-weight:    400;
  letter-spacing: 0.12em;
  color:          var(--pv-ivory);
}
.pv-about-logo-sub {
  font-size:      10px;
  letter-spacing: 0.18em;
  color:          var(--pv-gray-3);
  margin-top:     3px;
  font-family:    var(--pv-sans);
  font-weight:    300;
}
.pv-about-desc {
  font-size:   12px;
  color:       var(--pv-gray-3);
  line-height: 1.9;
  border-left: 0.5px solid var(--pv-black-4);
  padding-left: 2rem;
  font-family: var(--pv-sans);
  font-weight: 300;
}
.pv-about-link {
  font-size:      11px;
  letter-spacing: 0.1em;
  color:          var(--pv-gold);
  white-space:    nowrap;
  display:        flex;
  align-items:    center;
  gap:            10px;
  flex-shrink:    0;
  transition:     gap 0.2s;
  font-family:    var(--pv-sans);
  font-weight:    300;
}
.pv-about-link:hover { gap: 16px; }
.pv-about-link-line {
  width:      24px;
  height:     0.5px;
  background: var(--pv-gold);
  flex-shrink: 0;
}

/* ── 記事本文テキストカラー修正 ── */
.pv-art-body,
.pv-art-body p,
.pv-art-body li,
.pv-art-body blockquote p {
  color: var(--pv-ivory-2) !important;
}
.pv-art-body h2,
.pv-art-body h3 {
  color: var(--pv-ivory) !important;
}
.pv-art-title {
  color: var(--pv-ivory) !important;
}
/* 背景が白になっている場合の対策 */
.pv-article-main,
.pv-article-wrap,
body.single {
  background: var(--pv-black) !important;
}
/* Newspaperテーマのデフォルト文字色を上書き */
.td-post-content,
.td-post-content p,
.entry-content,
.entry-content p {
  color: var(--pv-ivory-2) !important;
  background: transparent !important;
}

/* ── 強制上書き：背景・文字色 ── */
html body,
html body.single,
html body.single-post {
  background-color: #0a0a0a !important;
}

html body .td-main-content-wrap,
html body #td-outer-wrap,
html body .td-container,
html body .td-pb-row,
html body .td-content-wrap,
html body article.post,
html body .td-post-content,
html body .td-post-content *,
html body .entry-content,
html body .entry-content *,
html body .pv-article-wrap,
html body .pv-article-main,
html body .pv-art-body,
html body .pv-art-body * {
  background-color: transparent !important;
  color: #e8e2d5 !important;
}

html body .pv-art-body h2,
html body .pv-art-body h3,
html body .pv-art-title,
html body .td-post-content h2,
html body .td-post-content h3 {
  color: #f0ebe0 !important;
}

html body .pv-art-body blockquote,
html body .td-post-content blockquote {
  background-color: #141414 !important;
  border-left: 2px solid #c8b99a !important;
  color: #e8e2d5 !important;
}

html body .pv-art-body blockquote p,
html body .td-post-content blockquote p {
  color: #e8e2d5 !important;
}
