/* ==========================================================================
 * cv-herbarium.css — Convivial.online Swiss Scientific Herbarium Theme
 * ==========================================================================
 * Design Principles:
 *   1. Visual Hierarchy:
 *      - Tier 1 (Primary): Central titles, works, articles (high contrast, generous space)
 *      - Tier 2 (Secondary): Navigation (Left dock, TOC, section links)
 *      - Tier 3 (Tertiary): Numbers, dates, metadata (quiet, minimal labels)
 *      - Accent green (--hb-accent) reserved strictly for primary CTAs, active states, and focus.
 *   2. Distinct Silhouettes for the 3 Core Axes:
 *      - 01 道具帖 (Tools): Compact icon + title index grid for scanning & comparing tools
 *      - 02 作ったもの (Releases): Large real-screen visual showcase for apps & works
 *      - 03 試行録 (Blog): Editorial dated list for reading field notes & essays
 *   3. Typography & Affordance:
 *      - Japanese labels first; monospace strictly for numbers, dates, versions, and <code>.
 *      - Internal links use "→", external links (target="_blank") use "↗".
 *      - Clear :focus-visible outlines and readable 35–45 char line lengths.
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * 1. COLOR TOKENS: LIGHT (Default: LAB LIGHT) & DARK (OBSIDIAN)
 * -------------------------------------------------------------------------- */
:root,
html[data-cv-theme="light"],
body[data-theme="light"] {
  --hb-dock-w: 240px;
  --hb-bg: #F2F4F3;
  --hb-surface: #FFFFFF;
  --hb-surface-hover: #F6F8F7;
  --hb-surface-alt: #E8ECEA;

  /* Text Hierarchy (WCAG AA/AAA Verified on #FFFFFF) */
  --hb-ink: #0C100E;           /* Primary:   18.5:1 */
  --hb-ink-secondary: #2C3630; /* Secondary: 11.6:1 */
  --hb-ink-soft: #2C3630;
  --hb-ink-muted: #526058;     /* Tertiary:   6.4:1 */

  --hb-rule: #C8D0CC;
  --hb-border: #C8D0CC;
  --hb-rule-hairline: #DFE5E2;

  /* Deep Botanical Green for High Contrast on White */
  --hb-accent: #0D5C3F;        /*  8.0:1 */
  --hb-accent-contrast: #FFFFFF;
  --hb-accent-tint: #E0EFE9;

  /* Left Dock */
  --hb-dock-bg: #EAEEEC;
  --hb-dock-surface: #FFFFFF;
  --hb-dock-rule: #CFD7D3;
  --hb-dock-text: #1A211D;
  --hb-dock-muted: #526058;

  /* Unified Neutral & Botanical Surface Tones (No purple or beige tint) */
  --hb-tone-botanical: #EEF4F1;
  --hb-tone-botanical-border: #C2D2C9;
  --hb-tone-botanical-ink: #1C523B;

  --hb-tone-amber: #F6F8F7;
  --hb-tone-amber-border: #C8D0CC;
  --hb-tone-amber-ink: #38463E;

  --hb-tone-slate: #FFFFFF;
  --hb-tone-slate-border: #C8D0CC;
  --hb-tone-slate-ink: #38463E;

  --hb-grid-line: rgba(15, 45, 30, 0.04);
  --hb-motion: 200ms cubic-bezier(0.22, 1, 0.36, 1);

  --cv-bg: var(--hb-bg);
  --cv-bg-soft: var(--hb-surface-alt);
  --cv-surface: var(--hb-surface);
  --cv-text: var(--hb-ink);
  --cv-text-muted: var(--hb-ink-secondary);
  --cv-text-subtle: var(--hb-ink-muted);
  --cv-border: var(--hb-rule);

  --sans: "Inter", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  --mono: "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace;
}

html[data-cv-theme="dark"],
body[data-theme="dark"] {
  --hb-dock-w: 240px;
  --hb-bg: #0B0E0C;
  --hb-surface: #121714;
  --hb-surface-hover: #19201C;
  --hb-surface-alt: #161C18;

  /* Text Hierarchy (WCAG AA/AAA Verified) */
  --hb-ink: #F2F5F3;           /* Primary:   16.5:1 */
  --hb-ink-secondary: #B8C4BD; /* Secondary:  9.6:1 */
  --hb-ink-soft: #B8C4BD;
  --hb-ink-muted: #84938A;     /* Tertiary:   5.5:1 */

  --hb-rule: #26302A;
  --hb-border: #26302A;
  --hb-rule-hairline: #1B231E;

  /* Botanical Green Accent — Reserved for Active / Primary CTA / Focus */
  --hb-accent: #30D196;
  --hb-accent-contrast: #050A07;
  --hb-accent-tint: rgba(48, 209, 150, 0.12);

  /* Left Dock (Tier 2 Navigation) */
  --hb-dock-bg: #080A09;
  --hb-dock-surface: #121714;
  --hb-dock-rule: #1E2621;
  --hb-dock-text: #D5DFD9;
  --hb-dock-muted: #7E8D84;

  /* Unified Neutral & Botanical Surface Tones (No purple or beige tint) */
  --hb-tone-botanical: #101613;
  --hb-tone-botanical-border: #23332B;
  --hb-tone-botanical-ink: #8CC4AA;

  --hb-tone-amber: #141916;
  --hb-tone-amber-border: #26302A;
  --hb-tone-amber-ink: #A8B8AF;

  --hb-tone-slate: #121714;
  --hb-tone-slate-border: #26302A;
  --hb-tone-slate-ink: #A8B8AF;

  --hb-grid-line: rgba(140, 196, 170, 0.045);
  --hb-motion: 200ms cubic-bezier(0.22, 1, 0.36, 1);

  /* Legacy --cv-* variable mapping */
  --cv-bg: var(--hb-bg);
  --cv-bg-soft: var(--hb-surface-alt);
  --cv-surface: var(--hb-surface);
  --cv-text: var(--hb-ink);
  --cv-text-muted: var(--hb-ink-secondary);
  --cv-text-subtle: var(--hb-ink-muted);
  --cv-border: var(--hb-rule);
}

/* --------------------------------------------------------------------------
 * 2. GLOBAL RESET, FOCUS AFFORDANCE & PARENT THEME NEUTRALIZATION
 * -------------------------------------------------------------------------- */
body.cv-herbarium-active,
body.cv-herbarium-active #wrapper,
body.cv-herbarium-active #page,
body.cv-herbarium-active #content {
  background-color: var(--hb-bg);
  color: var(--hb-ink);
  font-family: var(--sans);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
  overflow: visible;
}

body.cv-herbarium-active a.skip-link.screen-reader-text:not(:focus) {
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
}

/* Neutralize parent theme overflow:hidden on article/wrappers so sticky Right Rail works */
body.cv-herbarium-active .spnc-single-post .spnc-blog-wrapper .spnc-post,
body.cv-herbarium-active .spnc-default-page .spnc-contact-wrapper .spnc-post,
body.cv-herbarium-active .spnc-blog-wrapper,
body.cv-herbarium-active .spnc-contact-wrapper,
body.cv-herbarium-active .spnc-blog-cat-wrapper,
body.cv-herbarium-active .spnc-post-list-view-section,
body.cv-herbarium-active .spnc-post,
body.cv-herbarium-active .spnc-post-content,
body.cv-herbarium-active .spnc-entry-content {
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none;
  margin: 0;
}

body.cv-herbarium-active .spnc-post,
body.cv-herbarium-active .spnc-post-content {
  padding: 0;
}

/* Reset Newscrunch .spnc-row negative horizontal margins (-15px) that cause horizontal scrollbar */
body.cv-herbarium-active .spnc-row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
  max-width: 100%;
}

body.cv-herbarium-active *,
body.cv-herbarium-active *::before,
body.cv-herbarium-active *::after {
  box-sizing: border-box;
  border-radius: 0;
  box-shadow: none;
}

/* Unified Keyboard Focus Affordance */
body.cv-herbarium-active a:focus-visible,
body.cv-herbarium-active button:focus-visible,
body.cv-herbarium-active summary:focus-visible,
body.cv-herbarium-active input:focus-visible,
body.cv-herbarium-active .cv-hb-card:has(a:focus-visible),
body.cv-herbarium-active .cv-hb-showcase-card:has(a:focus-visible),
body.cv-herbarium-active .cv-hb-door:has(a:focus-visible) {
  outline: 2px solid var(--hb-accent);
  outline-offset: -2px;
}

/* Hide Newscrunch news-portal chrome, breadcrumb banner, post mosaic, missed carousel, parent footer & scroll-up */
body.cv-herbarium-active .header-sidebar,
body.cv-herbarium-active .spnc-topbar,
body.cv-herbarium-active header.spnc-header,
body.cv-herbarium-active .page-title-section,
body.cv-herbarium-active section.page-title-section,
body.cv-herbarium-active .spnc-page-section-space.blog-section-space,
body.cv-herbarium-active .breadcrumb-trail,
body.cv-herbarium-active .breadcrumb-overlay,
body.cv-herbarium-active .spnc-breadcrumb-wrap,
body.cv-herbarium-active .spnc-col-9.spnc-sticky-sidebar,
body.cv-herbarium-active .front-banner,
body.cv-herbarium-active section.front-banner,
body.cv-herbarium-active .spnc-bnr-1,
body.cv-herbarium-active .spnc-highlights-1,
body.cv-herbarium-active .spnc-missed-section,
body.cv-herbarium-active section.spnc-missed-section,
body.cv-herbarium-active footer.spnc-footer,
body.cv-herbarium-active footer.site-footer,
body.cv-herbarium-active .site-footer,
body.cv-herbarium-active .scroll-up {
  display: none !important;
}

/* Stage column offset for 240px Left Dock */
body.cv-herbarium-active #page {
  margin-left: var(--hb-dock-w);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.cv-herbarium-active #content,
body.cv-herbarium-active #content .spnc-container,
body.cv-herbarium-active #content .spnc-row,
body.cv-herbarium-active #content .spnc-col-1,
body.cv-herbarium-active .spnc-contact-wrapper,
body.cv-herbarium-active .spnc-col-7.spnc-sticky-content {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
  margin: 0;
  padding: 0;
}

/* Full-bleed Herbarium template pages & single posts (where .cv-hb-stage-main provides padding) */
body.cv-herbarium-active.cv-hb-fullbleed-page .spnc-entry-content,
body.cv-herbarium-active.single-post .spnc-entry-content {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
  margin: 0;
  padding: 0;
}

/* Standard static pages (32 Adoring, 3 Privacy, 74 Affiliate, 929 Site Notes, 1060 Team, 519 License, etc.) */
body.cv-herbarium-active.cv-hb-standard-page #content,
body.cv-herbarium-active.cv-hb-standard-page .spnc-page-section-space {
  background: var(--hb-surface) !important;
}
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content {
  max-width: 880px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 48px 48px 80px !important;
  background: var(--hb-surface) !important;
  color: var(--hb-ink);
}
.cv-hb-page-header {
  margin: 0 0 32px;
  padding: 0 0 20px;
  border-bottom: 2px solid var(--hb-rule);
}
.cv-hb-page-title {
  font-family: var(--sans);
  font-size: clamp(1.65rem, 2.5vw, 2.2rem);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--hb-ink) !important;
  margin: 0;
}

/* Tool Roadmap (788) container spacing */
body.cv-herbarium-active.page-id-788 .cv-tc {
  max-width: 1040px;
  margin: 0 auto;
  padding: 36px 48px 72px;
}
body.cv-herbarium-active .cv-tc-back a {
  color: var(--hb-ink-secondary) !important;
  text-decoration: none;
  font-weight: 600;
}
body.cv-herbarium-active .cv-tc-back a:hover {
  color: var(--hb-accent) !important;
}

/* Prevent alignfull 100vw / calc(-50vw + 50%) from colliding with Left Dock */
body.cv-herbarium-active .spnc-entry-content > .alignfull,
body.cv-herbarium-active .alignfull,
body.cv-herbarium-active.page-id-759 .spnc-entry-content > .alignfull,
body.cv-herbarium-active.page-id-761 .spnc-entry-content > .alignfull,
body.cv-herbarium-active.page-id-85 .spnc-entry-content > .alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Scope constrained-layout width expansion strictly to Herbarium grid/hero containers so About (759) & Philosophy (85) keep their 720px/960px centered reading column */
body.cv-herbarium-active :is(.cv-tc, .cv-hb-hero, .cv-hb-bento, .cv-hb-matrix, .cv-hb-showcase-grid, .cv-hb-editorial-split, .cv-pr-showcase, .cv-pr-grid) .is-layout-constrained > *,
body.cv-herbarium-active :is(.cv-tc, .cv-hb-hero, .cv-hb-bento, .cv-hb-matrix, .cv-hb-showcase-grid, .cv-hb-editorial-split, .cv-pr-showcase, .cv-pr-grid).is-layout-constrained > *,
body.cv-herbarium-active :is(.cv-tc, .cv-hb-hero, .cv-hb-bento, .cv-hb-matrix, .cv-hb-showcase-grid, .cv-hb-editorial-split, .cv-pr-showcase, .cv-pr-grid) > .wp-block-group__inner-container > * {
  max-width: 100%;
}

/* Suppress duplicate parent theme page title output ONLY on full-bleed pages or when .cv-hb-page-header is used */
body.cv-herbarium-active.page .spnc-page-section-space > .spnc-container .entry-header,
body.cv-herbarium-active.page .entry-title,
body.cv-herbarium-active.page .page-title {
  display: none;
}

/* --------------------------------------------------------------------------
 * 3. LEFT PERSISTENT DOCK (.cv-hb-dock) — Tier 2 Navigation (Quiet & Clear)
 * -------------------------------------------------------------------------- */
.cv-hb-dock {
  position: fixed;
  top: 0;
  left: 0;
  width: 240px;
  height: 100vh;
  background: var(--hb-dock-bg);
  color: var(--hb-dock-text);
  border-right: 1px solid var(--hb-rule);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  z-index: 9000;
}

body.admin-bar .cv-hb-dock {
  top: 32px;
  height: calc(100vh - 32px);
}

.cv-hb-dock__header {
  padding: 24px 20px 18px;
  border-bottom: 1px solid var(--hb-dock-rule);
}
.cv-hb-dock__brand {
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: var(--hb-ink);
  text-decoration: none;
  display: block;
}
.cv-hb-dock__brand:hover {
  color: var(--hb-accent);
}
.cv-hb-dock__sub {
  font-size: 0.75rem;
  color: var(--hb-dock-muted);
  margin: 4px 0 0;
}

/* Navigation Blocks inside Dock */
.cv-hb-dock__block {
  border-bottom: 1px solid var(--hb-dock-rule);
  padding: 14px 0;
}
.cv-hb-dock__label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--hb-dock-muted);
  padding: 0 20px 8px;
}
.cv-hb-dock__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cv-hb-dock__list a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 7px 20px;
  color: var(--hb-dock-text);
  text-decoration: none;
  font-size: 0.86rem;
  border-left: 3px solid transparent;
  transition: background 0.12s, color 0.12s;
}
.cv-hb-dock__list a:hover {
  background: var(--hb-dock-surface);
  color: var(--hb-ink);
}
.cv-hb-dock__list a.is-active {
  background: var(--hb-dock-surface);
  border-left-color: var(--hb-accent);
  color: var(--hb-ink);
  font-weight: 700;
}
.cv-hb-dock__num {
  font-family: var(--mono);
  font-size: 0.72rem;
  color: var(--hb-dock-muted);
}
.cv-hb-dock__list a.is-active .cv-hb-dock__num {
  color: var(--hb-accent);
  font-weight: 700;
}

/* 主導線：英語（上）と日本語（下）の2段。全項目で文字の大きさと間隔をそろえ、省略しない */
.cv-hb-dock__list--primary a {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.cv-hb-dock__en {
  font-family: var(--mono);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: var(--hb-dock-muted);
}
.cv-hb-dock__ja {
  font-size: 0.86rem;
  line-height: 1.4;
}
.cv-hb-dock__list--primary a.is-active .cv-hb-dock__en {
  color: var(--hb-accent);
}
.cv-hb-dock__en,
.cv-hb-dock__ja {
  white-space: normal;
  overflow-wrap: anywhere;
}

/* 配色の切り替え（ドック下部）：太陽＋Light／月＋Dark の2択。選択中は塗りとチェックで示す */
.cv-hb-dock__footer {
  margin-top: auto;
  padding: 16px 20px;
  border-top: 1px solid var(--hb-dock-rule);
  font-size: 0.75rem;
}
.cv-hb-dock__theme-btns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--hb-dock-rule);
}
.cv-hb-theme-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  border: 0;
  border-right: 1px solid var(--hb-dock-rule);
  background: transparent;
  color: var(--hb-dock-text);
  font-family: var(--sans);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 6px 10px;
  cursor: pointer;
}
.cv-hb-theme-btn:last-child {
  border-right: 0;
}
.cv-hb-theme-btn__icon {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}
.cv-hb-theme-btn:hover {
  background: var(--hb-dock-surface);
}
.cv-hb-theme-btn.is-active,
.cv-hb-theme-btn[aria-pressed="true"] {
  background: var(--hb-accent);
  color: var(--hb-accent-contrast);
  font-weight: 700;
}
.cv-hb-theme-btn:focus-visible {
  outline: 2px solid var(--hb-accent);
  outline-offset: 2px;
  position: relative;
  z-index: 1;
}

/* Mobile Top Bar (Shown <= 980px) */
.cv-hb-mobile-bar {
  display: none;
  background: var(--hb-dock-bg);
  color: var(--hb-ink);
  border-bottom: 1px solid var(--hb-rule);
  padding: 12px 20px;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 9500;
}
/* 上部バー（高さ 52px）が出る幅では、ページ内リンク（旧 Easy TOC のアンカー・新しい目次）で
   移動した見出しがバーの下に隠れないよう、止まる位置をバーの高さ＋余白ぶん下げる */
@media (max-width: 980px) {
  html {
    scroll-padding-top: 68px;
  }
}
.cv-hb-mobile-bar__brand {
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--hb-ink);
  text-decoration: none;
  letter-spacing: 0.03em;
}
.cv-hb-mobile-bar__toggle {
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--hb-ink);
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  padding: 6px 12px;
  cursor: pointer;
}

/* --------------------------------------------------------------------------
 * 4. PAGE HERO, WORKBENCH KEY VISUAL & SECTION HEADERS
 * -------------------------------------------------------------------------- */
.cv-hb-grid-surface {
  background-image:
    linear-gradient(to right, var(--hb-grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hb-grid-line) 1px, transparent 1px);
  background-size: 24px 24px;
}

.cv-hb-plate-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 3px 9px;
  border: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  color: var(--hb-ink-muted);
}
.cv-hb-plate-tag--botanical {
  border-color: var(--hb-tone-botanical-border);
  color: var(--hb-tone-botanical-ink);
  background: var(--hb-tone-botanical);
}
.cv-hb-plate-tag--amber {
  border-color: var(--hb-tone-amber-border);
  color: var(--hb-tone-amber-ink);
  background: var(--hb-tone-amber);
}
.cv-hb-plate-tag--slate {
  border-color: var(--hb-tone-slate-border);
  color: var(--hb-tone-slate-ink);
  background: var(--hb-tone-slate);
}

.cv-hb-hero {
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-surface);
  padding: 48px 56px 44px;
}
.cv-hb-hero--split,
.cv-hb-hero--split > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 36px;
  align-items: center;
  padding: 44px 56px 48px;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-surface);
}
.cv-hb-hero--split:has(> .wp-block-group__inner-container) {
  display: block;
  padding: 0;
  border-bottom: 0;
}
.cv-hb-hero__left {
  grid-column: span 5;
  max-width: 46rem;
}
.cv-hb-hero:has(.cv-hb-workbench) .cv-hb-hero__left,
.cv-hb-hero:has(.cv-hb-hero__feature) .cv-hb-hero__left {
  grid-column: span 4;
}
.cv-hb-hero:has(.cv-hb-workbench) h1,
.cv-hb-hero:has(.cv-hb-hero__feature) h1 {
  font-size: clamp(1.65rem, 2.15vw, 2.1rem);
}
.cv-hb-hero__feature {
  grid-column: span 8;
}
.cv-hb-hero:not(.cv-hb-hero--split) .cv-hb-hero__left {
  max-width: 46rem;
}
.cv-hb-kicker {
  font-family: var(--mono);
  font-size: 0.74rem;
  letter-spacing: 0.1em;
  color: var(--hb-ink-muted);
  font-weight: 600;
  margin: 0 0 12px;
}
.cv-hb-hero h1 {
  font-size: clamp(1.85rem, 3vw, 2.65rem);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
  color: var(--hb-ink);
  text-wrap: balance;
  /* 日本語を文節で折り返す（対応ブラウザのみ。非対応では従来どおり） */
  word-break: auto-phrase;
}
.cv-hb-hero__lead {
  font-size: 0.96rem;
  color: var(--hb-ink-secondary);
  margin: 0;
  max-width: 42rem;
  line-height: 1.8;
}

/* Focal Key Visual: "今の実験机" Workbench Specimen Plate (.cv-hb-workbench) */
.cv-hb-workbench {
  grid-column: span 8;
  background-color: var(--hb-tone-botanical);
  background-image:
    linear-gradient(to right, var(--hb-grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hb-grid-line) 1px, transparent 1px);
  background-size: 24px 24px;
  border: 1px solid var(--hb-tone-botanical-border);
  position: relative;
  display: flex;
  flex-direction: column;
}
.cv-hb-workbench__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--hb-tone-botanical-border);
  background: var(--hb-bg);
  font-family: var(--mono);
  font-size: 0.72rem;
  color: var(--hb-tone-botanical-ink);
}
.cv-hb-workbench__stage {
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cv-hb-workbench__main-plate {
  width: 100%;
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--hb-ink);
  position: relative;
  overflow: hidden;
}
.cv-hb-workbench__screen {
  aspect-ratio: auto;
  overflow: hidden;
  background: var(--hb-bg);
  border-bottom: 1px solid var(--hb-rule);
  position: relative;
}
.cv-hb-workbench__screen img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform var(--hb-motion);
}
.cv-hb-workbench__main-plate:hover .cv-hb-workbench__screen img {
  transform: scale(1.015);
}
.cv-hb-workbench__caption {
  padding: 14px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  font-size: 0.86rem;
}
.cv-hb-workbench__caption > div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.cv-hb-workbench__caption b {
  color: var(--hb-ink);
  font-weight: 700;
}
.cv-hb-workbench__caption span {
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
}
.cv-hb-workbench__arrow {
  display: inline-block;
  white-space: nowrap;
  flex-shrink: 0;
  font-weight: 700;
  color: var(--hb-ink);
  transition: transform var(--hb-motion), color var(--hb-motion);
}
.cv-hb-workbench__main-plate:hover .cv-hb-workbench__arrow,
.cv-hb-featured-specimen:hover .cv-hb-workbench__arrow {
  transform: translateX(4px);
  color: var(--hb-accent);
}

/* Bottom Strip of Workbench: Secondary Preview Loupe + Active Tool Chips */
.cv-hb-workbench__sub {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 1.15fr;
  gap: 12px;
  align-items: stretch;
}
.cv-hb-workbench__loupe {
  background: var(--hb-tone-amber);
  border: 1px solid var(--hb-tone-amber-border);
  padding: 8px 12px;
  text-decoration: none;
  color: var(--hb-ink);
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  align-items: center;
}
.cv-hb-workbench__loupe-crop {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border: 1px solid var(--hb-tone-amber-border);
  background: var(--hb-surface);
}
.cv-hb-workbench__loupe-crop img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right top;
  display: block;
  transition: transform var(--hb-motion);
}
.cv-hb-workbench__loupe:hover .cv-hb-workbench__loupe-crop img {
  transform: scale(1.04);
}
.cv-hb-workbench__loupe-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.78rem;
}
.cv-hb-workbench__loupe-meta span {
  font-family: var(--mono);
  font-size: 0.66rem;
  color: var(--hb-tone-amber-ink);
}
.cv-hb-workbench__loupe-meta b {
  font-weight: 700;
  color: var(--hb-ink);
}

.cv-hb-workbench__specimens {
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
}
.cv-hb-workbench__spec-head {
  font-family: var(--mono);
  font-size: 0.66rem;
  color: var(--hb-tone-botanical-ink);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.cv-hb-workbench__spec-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* Section Divider Bar */
.cv-hb-sec-bar {
  padding: 32px 56px 16px;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}
.cv-hb-sec-bar h2 {
  font-family: var(--sans);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--hb-ink);
  margin: 0;
}
.cv-hb-sec-bar p {
  font-size: 0.82rem;
  color: var(--hb-ink-muted);
  margin: 0;
}

/* --------------------------------------------------------------------------
 * 5. TOP PAGE (718): 12-COLUMN ASYMMETRIC BENTO + FEATURED EDITORIAL SPLIT
 * -------------------------------------------------------------------------- */
.cv-hb-bento,
.cv-hb-bento > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  background: var(--hb-rule);
  gap: 1px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-bento:has(> .wp-block-group__inner-container) {
  display: block;
  border-bottom: 0;
}

.cv-hb-door {
  background: var(--hb-surface);
  padding: 36px 40px;
  color: var(--hb-ink);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 20px;
  transition: background var(--hb-motion);
  position: relative;
}
.cv-hb-door--8col {
  grid-column: span 7;
  background-color: var(--hb-surface);
}
.cv-hb-door--4col {
  grid-column: span 5;
  background-color: var(--hb-surface);
}
.cv-hb-door__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.cv-hb-door__all {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--hb-ink-secondary);
  text-decoration: none;
  transition: color var(--hb-motion), transform var(--hb-motion);
}
.cv-hb-door__all:hover {
  color: var(--hb-accent);
  transform: translateX(2px);
}
.cv-hb-door__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 0.76rem;
  color: var(--hb-ink-muted);
  margin: 0 0 8px;
}
.cv-hb-door h2,
.cv-hb-door h3 {
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0;
  letter-spacing: -0.015em;
  color: var(--hb-ink);
}
.cv-hb-door h2 a,
.cv-hb-door h3 a {
  color: var(--hb-ink);
  text-decoration: none;
}
.cv-hb-door h2 a:hover,
.cv-hb-door h3 a:hover {
  color: var(--hb-accent);
}
.cv-hb-door__desc {
  margin: -8px 0 0 !important;
  font-size: 0.88rem !important;
  color: var(--hb-ink-secondary) !important;
  line-height: 1.6;
}
.cv-hb-top-quote-wrap {
  background: var(--hb-surface);
  border-bottom: 1px solid var(--hb-rule);
  padding: 28px 40px;
}
body.cv-herbarium-active blockquote.cv-top-quote {
  margin: 0 !important;
  padding: 16px 24px !important;
  background: var(--hb-surface-alt) !important;
  border-left: 3px solid var(--hb-accent) !important;
  color: var(--hb-ink) !important;
}
body.cv-herbarium-active blockquote.cv-top-quote p {
  margin: 0 0 8px !important;
  color: var(--hb-ink) !important;
  font-size: 0.95rem;
  line-height: 1.75;
}
body.cv-herbarium-active blockquote.cv-top-quote cite {
  display: block;
  color: var(--hb-ink-muted) !important;
  font-size: 0.82rem;
  font-style: normal;
}

/* Direct Work Links inside 8-Col "作ったもの" Section */
.cv-hb-door__plates {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 16px;
  align-items: start;
}
.cv-hb-door__work {
  display: flex;
  flex-direction: column;
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  text-decoration: none;
  color: var(--hb-ink);
  transition: border-color var(--hb-motion);
}
.cv-hb-door__work:hover {
  border-color: var(--hb-accent);
}
.cv-hb-door__plate {
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  overflow: hidden;
  position: relative;
}
.cv-hb-door__plate img {
  width: 100%;
  height: 204px;
  object-fit: cover;
  display: block;
  transition: transform var(--hb-motion);
}
/* Full-UI screenshot (AI Meeting Assistant): preserve entire aspect ratio without left/right cropping */
.cv-hb-door__work:first-child .cv-hb-door__plate {
  background: #FFFFFF;
}
.cv-hb-door__work:first-child .cv-hb-door__plate img {
  height: 204px;
  object-fit: contain;
}
.cv-hb-door__work:hover .cv-hb-door__plate img {
  transform: scale(1.02);
}
.cv-hb-door__work-meta {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cv-hb-door__work-meta b {
  font-size: 0.96rem;
  font-weight: 800;
  color: var(--hb-ink);
}
.cv-hb-door__work-meta span {
  font-size: 0.8rem;
  color: var(--hb-ink-secondary);
  line-height: 1.5;
}

/* Direct 7-Tool Quicklist inside 4-Col "道具帖" Section (Clean hairline rows, no nested boxes) */
.cv-hb-tool-quicklist {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--hb-rule);
  display: grid;
  gap: 0;
}
.cv-hb-tool-quicklist li {
  margin: 0;
}
.cv-hb-tool-quicklist a {
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 6px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--hb-rule);
  text-decoration: none;
  color: var(--hb-ink);
  transition: color var(--hb-motion), background var(--hb-motion), padding-left var(--hb-motion);
}
.cv-hb-tool-quicklist a:hover {
  background: var(--hb-surface-hover);
  padding-left: 10px;
}
.cv-hb-tool-quicklist svg {
  width: 18px;
  height: 18px;
  stroke: var(--hb-ink-secondary);
  transition: stroke var(--hb-motion);
}
.cv-hb-tool-quicklist a:hover svg {
  stroke: var(--hb-accent);
}
.cv-hb-tool-quicklist b {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--hb-ink);
}
.cv-hb-tool-quicklist span {
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
}

/* Editorial Split Section: 03 試行録 (Featured Lead Note + Compact Chronological List) */
.cv-hb-editorial-split,
.cv-hb-editorial-split > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  background: var(--hb-rule);
  gap: 1px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-editorial-split:has(> .wp-block-group__inner-container) {
  display: block;
  border-bottom: 0;
}

.cv-hb-featured-log {
  grid-column: span 5;
  background: var(--hb-surface);
  padding: 40px 44px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 20px;
  position: relative;
}
.cv-hb-featured-log h3 {
  font-size: 1.38rem;
  font-weight: 800;
  line-height: 1.38;
  margin: 8px 0 12px;
  color: var(--hb-ink);
}
.cv-hb-featured-log h3 a {
  color: var(--hb-ink);
  text-decoration: none;
}
.cv-hb-featured-log h3 a:hover {
  color: var(--hb-accent);
}
.cv-hb-featured-log p {
  font-size: 0.9rem;
  color: var(--hb-ink-secondary);
  line-height: 1.75;
  margin: 0;
}
.cv-hb-featured-log__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 14px;
  border-top: 1px solid var(--hb-rule);
  font-size: 0.82rem;
}
.cv-hb-featured-log__foot time {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
}
.cv-hb-featured-log__foot a {
  font-weight: 700;
  color: var(--hb-ink);
  text-decoration: none;
}
.cv-hb-featured-log__foot a:hover {
  color: var(--hb-accent);
}

/* Top：このサイトについて（見出し＝About へのリンク＋関連ページ6項目）。
   カードや説明文は足さず、文字・罫線・余白だけで整理する。右の一覧に高さを合わせて間隔を広げない */
.cv-hb-about-index {
  grid-column: span 5;
  background: var(--hb-surface);
  padding: 40px 44px;
  align-self: stretch;
}
.cv-hb-about-index h2 {
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.4;
  margin: 0 0 18px;
}
.cv-hb-about-index h2 a {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  color: var(--hb-ink);
  text-decoration: none;
}
.cv-hb-about-index h2 a:hover,
.cv-hb-about-index h2 a:focus-visible {
  color: var(--hb-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.cv-hb-about-index__arrow {
  font-size: 0.9em;
  font-weight: 700;
  color: var(--hb-accent);
}
.cv-hb-about-index__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--hb-rule);
}
.cv-hb-about-index__list li {
  margin: 0;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-about-index__list li.cv-hb-about-index__policy {
  border-top: 1px solid var(--hb-rule);
  margin-top: 14px;
}
.cv-hb-about-index__list a {
  display: block;
  padding: 11px 2px;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--hb-ink);
  text-decoration: none;
}
.cv-hb-about-index__list a:hover,
.cv-hb-about-index__list a:focus-visible {
  color: var(--hb-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 980px) {
  .cv-hb-about-index {
    grid-column: 1 / -1;
  }
}
@media (max-width: 720px) {
  .cv-hb-about-index {
    padding: 28px 20px;
  }
}

/* About：関連ページ（思想・体制・私淑／ポリシー・規約）への入口 */
body.cv-herbarium-active .cv-about-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 32px;
  margin: 32px 0 8px;
  padding: 20px 0 4px;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-about-links__label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--hb-ink-muted);
  margin: 0 0 6px;
}
body.cv-herbarium-active .cv-about-links ul {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
body.cv-herbarium-active .cv-about-links li {
  margin: 0;
  border-bottom: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .spnc-entry-content .cv-about-links a,
body.cv-herbarium-active .cv-about-links a {
  display: block;
  padding: 10px 0;
  font-weight: 600;
  color: var(--hb-ink);
  text-decoration: none;
}
body.cv-herbarium-active .spnc-entry-content .cv-about-links a:hover,
body.cv-herbarium-active .cv-about-links a:hover,
body.cv-herbarium-active .cv-about-links a:focus-visible {
  color: var(--hb-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 720px) {
  body.cv-herbarium-active .cv-about-links {
    grid-template-columns: 1fr;
  }
}

.cv-hb-recent-section {
  grid-column: span 7;
  padding: 40px 44px;
  background: var(--hb-surface);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 16px;
}
.cv-hb-recent-section h2 {
  font-size: 1.35rem;
  font-weight: 800;
  margin: 0 0 4px;
  color: var(--hb-ink);
}
body.cv-herbarium-active .wp-block-latest-posts.wp-block-latest-posts__list {
  list-style: none;
  margin: 12px 0 20px;
  padding: 0;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .wp-block-latest-posts.wp-block-latest-posts__list > li {
  padding: 14px 0;
  border-bottom: 1px solid var(--hb-rule);
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 4px 16px;
}
body.cv-herbarium-active .wp-block-latest-posts__post-title {
  font-size: 0.96rem;
  font-weight: 700;
  color: var(--hb-ink);
  text-decoration: none;
  line-height: 1.45;
}
body.cv-herbarium-active .wp-block-latest-posts__post-title:hover {
  color: var(--hb-accent);
}
body.cv-herbarium-active .wp-block-latest-posts__post-date {
  font-family: var(--mono);
  font-size: 0.74rem;
  color: var(--hb-ink-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
body.cv-herbarium-active .wp-block-latest-posts__post-excerpt {
  grid-column: 1 / -1;
}
body.cv-herbarium-active .wp-block-latest-posts__post-excerpt p {
  margin: 4px 0 0;
  font-size: 0.84rem;
  color: var(--hb-ink-secondary);
  max-width: 44rem;
}

/* --------------------------------------------------------------------------
 * 6. SILHOUETTE 01 — TOOLS HUB (761): FEATURED SPECIMEN PLATE + ALIGNED GRID
 * -------------------------------------------------------------------------- */
.cv-hb-featured-specimen {
  grid-column: span 7;
  background-color: var(--hb-tone-botanical);
  background-image:
    linear-gradient(to right, var(--hb-grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hb-grid-line) 1px, transparent 1px);
  background-size: 24px 24px;
  border: 1px solid var(--hb-tone-botanical-border);
  text-decoration: none;
  color: var(--hb-ink);
  display: flex;
  flex-direction: column;
}
.cv-hb-featured-specimen__bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  background: var(--hb-bg);
  border-bottom: 1px solid var(--hb-tone-botanical-border);
  font-family: var(--mono);
  font-size: 0.72rem;
  color: var(--hb-tone-botanical-ink);
}
.cv-hb-featured-specimen__body {
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.cv-hb-featured-specimen__diagram {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  align-items: stretch;
}
.cv-hb-spec-emblem {
  background: var(--hb-surface);
  border: 1px solid var(--hb-tone-botanical-border);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 10px;
}
.cv-hb-spec-emblem svg {
  width: 38px;
  height: 38px;
  stroke: var(--hb-ink);
  transition: transform var(--hb-motion), stroke var(--hb-motion);
}
.cv-hb-featured-specimen:hover .cv-hb-spec-emblem svg {
  transform: scale(1.08) rotate(8deg);
  stroke: var(--hb-accent);
}
.cv-hb-spec-emblem span {
  font-family: var(--mono);
  font-size: 0.65rem;
  color: var(--hb-tone-botanical-ink);
}
.cv-hb-spec-channels {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.cv-hb-spec-channel {
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.cv-hb-spec-channel.is-primary {
  border-color: var(--hb-tone-botanical-border);
  background: var(--hb-bg);
}
.cv-hb-spec-channel code {
  font-family: var(--mono);
  font-size: 0.66rem;
  color: var(--hb-tone-botanical-ink);
  background: transparent;
  border: 0;
  padding: 0;
}
.cv-hb-spec-channel span {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--hb-ink);
}
.cv-hb-featured-specimen__foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--hb-tone-botanical-border);
}
.cv-hb-featured-specimen__foot b {
  display: block;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--hb-ink);
}
.cv-hb-featured-specimen__foot span:not(.cv-hb-workbench__arrow) {
  font-size: 0.8rem;
  color: var(--hb-ink-secondary);
}

.cv-hb-filter-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  padding-right: 28px;
  overflow-x: auto;
}
.cv-hb-filter-tabs {
  display: flex;
  align-items: stretch;
}
.cv-hb-tab {
  border: 0;
  border-right: 1px solid var(--hb-rule);
  background: transparent;
  color: var(--hb-ink-secondary);
  font-family: var(--sans);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 14px 24px;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, color 0.12s;
}
.cv-hb-tab:hover {
  color: var(--hb-ink);
  background: var(--hb-surface-hover);
}
.cv-hb-tab.is-active {
  background: var(--hb-accent);
  color: var(--hb-accent-contrast);
  font-weight: 700;
}
.cv-hb-tab span {
  font-family: var(--mono);
  font-size: 0.74rem;
  opacity: 0.8;
  margin-left: 6px;
}
.cv-hb-view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--hb-ink-secondary);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  padding: 6px 12px;
  border: 1px solid var(--hb-rule);
  background: var(--hb-surface);
}
.cv-hb-view-toggle input {
  margin: 0;
  accent-color: var(--hb-accent);
}

/* Tools Index Grid (Compact, High-Scanability Index Cards) */
.cv-hb-matrix,
.cv-hb-matrix > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--hb-bg);
  gap: 1px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-matrix:has(> .wp-block-group__inner-container) {
  display: block;
  border-bottom: 0;
}

.cv-hb-card {
  background: var(--hb-surface);
  color: var(--hb-ink);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 18px;
  padding: 32px 36px;
  outline: 1px solid var(--hb-rule);
  transition: background 0.15s ease;
  position: relative;
}
.cv-hb-card:hover {
  background: var(--hb-surface-hover);
}

.cv-hb-card__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cv-hb-card__icon {
  width: 44px;
  height: 44px;
  border: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hb-ink);
  transition: transform var(--hb-motion), border-color var(--hb-motion), color var(--hb-motion);
}
.cv-hb-card__icon svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
}
.cv-hb-card:hover .cv-hb-card__icon {
  border-color: var(--hb-accent);
  color: var(--hb-accent);
  transform: scale(1.06);
}
.cv-hb-card.cat-infra .cv-hb-card__role {
  background: var(--hb-tone-slate);
  border-color: var(--hb-tone-slate-border);
  color: var(--hb-tone-slate-ink);
}
.cv-hb-card.cat-auto .cv-hb-card__role {
  background: var(--hb-tone-amber);
  border-color: var(--hb-tone-amber-border);
  color: var(--hb-tone-amber-ink);
}
.cv-hb-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cv-hb-card__id {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
  font-weight: 600;
}
.cv-hb-card__role {
  font-family: var(--sans);
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--hb-ink-secondary);
  background: var(--hb-surface-alt);
  border: 1px solid var(--hb-rule);
  padding: 2px 8px;
}
.cv-hb-card__role--main {
  color: var(--hb-accent);
  border-color: var(--hb-accent);
  background: var(--hb-accent-tint);
}

.cv-hb-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cv-hb-card__title,
.cv-hb-card h2,
.cv-hb-card h3 {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--hb-ink);
  line-height: 1.3;
}
.cv-hb-card__title a,
.cv-hb-card h2 a,
.cv-hb-card h3 a {
  color: var(--hb-ink);
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
/* Arrow semantics: internal links use "→", external links use "↗" */
.cv-hb-card__title a::after,
.cv-hb-card h2 a::after,
.cv-hb-card h3 a::after {
  content: "→";
  font-family: var(--sans);
  font-size: 0.95rem;
  color: var(--hb-ink-muted);
  transition: transform 0.15s, color 0.15s;
  flex-shrink: 0;
}
.cv-hb-card__title a[target="_blank"]::after,
.cv-hb-card h2 a[target="_blank"]::after,
.cv-hb-card h3 a[target="_blank"]::after {
  content: "↗";
}
.cv-hb-card:hover .cv-hb-card__title a::after,
.cv-hb-card:hover h2 a::after,
.cv-hb-card:hover h3 a::after {
  transform: translateX(3px);
  color: var(--hb-accent);
}
.cv-hb-card:hover .cv-hb-card__title a[target="_blank"]::after,
.cv-hb-card:hover h2 a[target="_blank"]::after,
.cv-hb-card:hover h3 a[target="_blank"]::after {
  transform: translate(2px, -2px);
}
.cv-hb-card h2 a::before,
.cv-hb-card h3 a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.cv-hb-card__pitch,
.cv-hb-card p {
  font-size: 0.88rem;
  color: var(--hb-ink-secondary);
  margin: 0;
  line-height: 1.65;
}

.cv-hb-card__extra {
  display: none;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed var(--hb-rule);
  font-size: 0.8rem;
  color: var(--hb-ink-secondary);
  gap: 6px;
  line-height: 1.55;
}
body.cv-show-extra .cv-hb-card__extra {
  display: grid;
}
.cv-hb-card__extra b {
  color: var(--hb-ink);
  font-weight: 700;
  margin-right: 6px;
}

/* 761 道具帖一覧：本番の文言を戻すための部品（2026-11-08）
 * 組み合わせの札・区分の説明・注記・末尾の行き先。カード格子とフィルターの構成は変えない。 */
.cv-hb-card p.cv-hb-card__combos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}
.cv-hb-combo {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--hb-ink-secondary);
  background: var(--hb-surface-alt);
  border: 1px solid var(--hb-rule-hairline);
  padding: 1px 8px;
  white-space: nowrap;
}
/* 区分が「主力ツール」の札は、基盤・自動化の色分けより優先して強調する */
.cv-hb-card .cv-hb-card__role.cv-hb-card__role--main {
  color: var(--hb-accent);
  border-color: var(--hb-accent);
  background: var(--hb-accent-tint);
}
/* リンクの無いカード（WordPress・Zapier）は押せるように見せない */
.cv-hb-card--nolink:hover {
  background: var(--hb-surface);
}
.cv-hb-card--nolink:hover .cv-hb-card__icon {
  border-color: var(--hb-rule);
  color: var(--hb-ink);
  transform: none;
}
.cv-hb-legend {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-bg);
}
.cv-hb-legend > div {
  padding: 14px 24px;
  border-right: 1px solid var(--hb-rule-hairline);
}
.cv-hb-legend > div:last-child {
  border-right: 0;
}
.cv-hb-legend dt {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--hb-ink);
  margin: 0 0 2px;
}
.cv-hb-legend dd {
  font-size: 0.78rem;
  line-height: 1.6;
  color: var(--hb-ink-secondary);
  margin: 0;
}
.cv-hb-note {
  padding: 28px 56px;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-surface);
}
.cv-hb-note p + p {
  margin-top: 14px;
}
.cv-hb-note p {
  margin: 0;
  max-width: 46rem;
  padding-left: 16px;
  border-left: 3px solid var(--hb-accent);
  font-size: 0.92rem;
  line-height: 1.85;
  color: var(--hb-ink-secondary);
}
.cv-hb-bridge {
  padding: 20px 56px 28px;
  background: var(--hb-bg);
}
.cv-hb-bridge,
.cv-hb-bridge > .wp-block-group__inner-container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 32px;
}
.cv-hb-bridge p {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--hb-ink-secondary);
}
.cv-hb-bridge a {
  color: var(--hb-accent);
}

/* 61 作ったもの：本番の末尾の案内2つと著作権表示（2026-11-08） */
.cv-hb-closing,
.cv-hb-closing > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--hb-rule);
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-closing:has(> .wp-block-group__inner-container) {
  display: block;
  border-bottom: 0;
}
.cv-hb-closing__item {
  background: var(--hb-surface);
  padding: 32px 56px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.cv-hb-closing__item h2 {
  font-size: 1.15rem;
  font-weight: 800;
  margin: 0;
  color: var(--hb-ink);
}
.cv-hb-closing__item p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.85;
  color: var(--hb-ink-secondary);
}
.cv-hb-closing__item p.cv-hb-closing__link {
  margin-top: auto;
  font-weight: 700;
}
.cv-hb-closing__link a {
  color: var(--hb-accent);
}
p.cv-hb-page-copy {
  margin: 0;
  padding: 20px 56px 28px;
  font-size: 0.78rem;
  color: var(--hb-ink-muted);
}

@media (max-width: 980px) {
  .cv-hb-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .cv-hb-legend > div:nth-child(2) {
    border-right: 0;
  }
  .cv-hb-legend > div:nth-child(-n+2) {
    border-bottom: 1px solid var(--hb-rule-hairline);
  }
}
@media (max-width: 720px) {
  .cv-hb-legend {
    grid-template-columns: 1fr;
  }
  .cv-hb-legend > div {
    padding: 10px 20px;
    border-right: 0;
    border-bottom: 1px solid var(--hb-rule-hairline);
  }
  .cv-hb-legend > div:last-child {
    border-bottom: 0;
  }
  .cv-hb-note,
  .cv-hb-closing__item {
    padding: 24px 20px;
  }
  .cv-hb-bridge,
  p.cv-hb-page-copy {
    padding-left: 20px;
    padding-right: 20px;
  }
  .cv-hb-closing,
  .cv-hb-closing > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
 * 7. SILHOUETTE 02 — RELEASES (61): ASYMMETRIC SHOWCASE & DETAIL CUTOUTS
 * -------------------------------------------------------------------------- */
.cv-hb-showcase-grid,
.cv-hb-showcase-grid > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  background: var(--hb-rule);
  gap: 1px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-showcase-grid:has(> .wp-block-group__inner-container) {
  display: block;
  border-bottom: 0;
}
.cv-hb-showcase-grid--asymmetric,
.cv-hb-showcase-grid--asymmetric > .wp-block-group__inner-container {
  grid-template-columns: repeat(12, 1fr);
}
.cv-hb-showcase-grid--3col,
.cv-hb-showcase-grid--3col > .wp-block-group__inner-container {
  grid-template-columns: repeat(3, 1fr);
}

.cv-hb-showcase-card {
  background: var(--hb-surface);
  color: var(--hb-ink);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: background var(--hb-motion);
}
.cv-hb-showcase-card--8col {
  grid-column: span 8;
  background-color: var(--hb-tone-slate);
}
.cv-hb-showcase-card--4col {
  grid-column: span 4;
}
.cv-hb-showcase-card:hover {
  background: var(--hb-surface-hover);
}
.cv-hb-showcase-card--8col:hover {
  background: var(--hb-tone-slate);
}

/* Flagship 8-Col Stage: Full-Width Panorama Screen + Horizontal Detail Cutout Strip Below */
.cv-hb-showcase-card__stage {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 20px 22px;
  border-bottom: 1px solid var(--hb-tone-slate-border);
  background-image:
    linear-gradient(to right, var(--hb-grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hb-grid-line) 1px, transparent 1px);
  background-size: 24px 24px;
}
.cv-hb-showcase-card__stage .cv-hb-showcase-card__media {
  border: 1px solid var(--hb-tone-slate-border);
}
.cv-hb-showcase-card__cutout {
  background: var(--hb-tone-amber);
  border: 1px solid var(--hb-tone-amber-border);
  padding: 10px 14px;
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 14px;
  align-items: center;
}
.cv-hb-showcase-card__cutout-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cv-hb-showcase-card__cutout-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
  font-family: var(--mono);
  font-size: 0.68rem;
  color: var(--hb-tone-amber-ink);
}
.cv-hb-showcase-card__cutout-img {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border: 1px solid var(--hb-tone-amber-border);
  background: var(--hb-surface);
}
.cv-hb-showcase-card__cutout-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  transform: scale(1.32);
  transform-origin: right center;
  display: block;
  transition: transform var(--hb-motion);
}
.cv-hb-showcase-card--8col:hover .cv-hb-showcase-card__cutout-img img {
  transform: scale(1.4);
}
.cv-hb-showcase-card__cutout-note {
  font-size: 0.78rem !important;
  color: var(--hb-ink-secondary) !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

.cv-hb-showcase-card__media {
  aspect-ratio: 16 / 10;
  width: 100%;
  background: var(--hb-bg);
  border-bottom: 1px solid var(--hb-rule);
  overflow: hidden;
  position: relative;
  margin: 0;
}
.cv-hb-showcase-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--hb-motion);
}
/* 8-Col Full-UI Showcase (AI Meeting Assistant): preserve full aspect ratio without cropping left/right UI */
.cv-hb-showcase-card--8col .cv-hb-showcase-card__media {
  aspect-ratio: auto;
  background: #FFFFFF;
}
.cv-hb-showcase-card--8col .cv-hb-showcase-card__media img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
/* 4-Col Focused Crop (CLI Commentator): zoom into the right commentary timeline + terminal split so text is readable */
.cv-hb-showcase-card--4col .cv-hb-showcase-card__media img {
  object-fit: cover;
  object-position: 100% 18%;
  transform: scale(1.36);
  transform-origin: 100% 16%;
}
.cv-hb-showcase-card:hover .cv-hb-showcase-card__media img {
  transform: scale(1.02);
}
.cv-hb-showcase-card--4col:hover .cv-hb-showcase-card__media img {
  transform: scale(1.4);
}
.cv-hb-showcase-card__body {
  padding: 28px 36px 32px;
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: flex-start;
  gap: 16px;
}
.cv-hb-built {
  margin-top: auto;
}
.cv-hb-showcase-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
}
.cv-hb-showcase-card__meta span:first-child {
  font-family: var(--mono);
}
.cv-hb-showcase-card h2,
.cv-hb-showcase-card h3 {
  font-size: 1.38rem;
  font-weight: 800;
  margin: 6px 0 10px;
  color: var(--hb-ink);
  letter-spacing: -0.015em;
}
.cv-hb-showcase-card h2 a,
.cv-hb-showcase-card h3 a {
  color: var(--hb-ink);
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.cv-hb-showcase-card h2 a::after,
.cv-hb-showcase-card h3 a::after {
  content: "→";
  font-size: 1rem;
  color: var(--hb-ink-muted);
  transition: transform 0.15s, color 0.15s;
}
.cv-hb-showcase-card:hover h2 a::after,
.cv-hb-showcase-card:hover h3 a::after {
  transform: translateX(3px);
  color: var(--hb-accent);
}
.cv-hb-showcase-card h2 a::before,
.cv-hb-showcase-card h3 a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.cv-hb-showcase-card p {
  font-size: 0.9rem;
  color: var(--hb-ink-secondary);
  margin: 0;
  line-height: 1.7;
}
.cv-hb-built {
  padding-top: 14px;
  border-top: 1px dashed var(--hb-rule);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  position: relative;
  z-index: 2;
}
.cv-hb-built__label {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--hb-ink-muted);
}
.cv-hb-built__tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------------
 * 8. INDIVIDUAL TOOL DOSSIER (.cv-tc & Readable Center + Curated Right Rail)
 * -------------------------------------------------------------------------- */
.cv-hb-dossier-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 48px;
  border-bottom: 1px solid var(--hb-rule);
  font-size: 0.78rem;
  background: var(--hb-bg);
  color: var(--hb-ink-muted);
}
.cv-hb-dossier-bar a {
  color: var(--hb-ink-secondary);
  text-decoration: none;
  font-weight: 600;
}
.cv-hb-dossier-bar a:hover {
  color: var(--hb-ink);
}
.cv-hb-dossier-bar span {
  font-family: var(--mono);
  font-size: 0.74rem;
}

body.cv-herbarium-active .cv-tc {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  background: var(--hb-surface);
  color: var(--hb-ink);
}

/* Dossier Header */
body.cv-herbarium-active .cv-tc-head {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 0;
  border-bottom: 1px solid var(--hb-rule);
  padding: 0;
  background: var(--hb-surface);
}
body.cv-herbarium-active .cv-tc-head:has(.cv-tc-head__cta) {
  grid-template-columns: 120px 1fr auto;
}
body.cv-herbarium-active .cv-tc-logo {
  width: 100%;
  height: 100%;
  min-height: 144px;
  border-right: 1px solid var(--hb-rule);
  background-color: var(--hb-tone-botanical);
  background-image:
    linear-gradient(to right, var(--hb-grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--hb-grid-line) 1px, transparent 1px);
  background-size: 20px 20px;
  color: var(--hb-ink);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  position: relative;
}
body.cv-herbarium-active .cv-tc-logo svg {
  width: 48px;
  height: 48px;
  stroke: var(--hb-ink);
  transition: transform var(--hb-motion), stroke var(--hb-motion);
}
body.cv-herbarium-active .cv-tc-head:hover .cv-tc-logo svg {
  transform: scale(1.08);
  stroke: var(--hb-accent);
}
body.cv-herbarium-active .cv-tc-head__body {
  padding: 32px 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
body.cv-herbarium-active .cv-tc-eyebrow {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--hb-ink-muted);
  font-weight: 600;
  margin: 0 0 8px;
}
body.cv-herbarium-active .cv-tc-head h1 {
  font-size: clamp(1.85rem, 3vw, 2.5rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  line-height: 1.15;
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-tagline {
  margin: 0;
  color: var(--hb-ink-secondary);
  font-size: 0.95rem;
  max-width: 44rem;
}
body.cv-herbarium-active .cv-tc-head__cta {
  border-left: 1px solid var(--hb-rule);
  padding: 24px 32px;
  background: var(--hb-bg);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.cv-hb-cta-btn,
body.cv-herbarium-active a.cv-hb-cta-btn {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  background: var(--hb-accent);
  color: var(--hb-accent-contrast);
  font-family: var(--sans);
  font-size: 0.84rem;
  font-weight: 700;
  padding: 10px 18px;
  text-decoration: none;
  white-space: nowrap;
}
.cv-hb-cta-btn:hover,
body.cv-herbarium-active a.cv-hb-cta-btn:hover {
  opacity: 0.92;
  color: var(--hb-accent-contrast);
}

/* Spec Facts Bar */
body.cv-herbarium-active .cv-tc-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  margin: 0;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-rule);
  gap: 1px;
}
body.cv-herbarium-active .cv-tc-fact {
  background: var(--hb-surface-alt);
  padding: 14px 28px;
}
body.cv-herbarium-active .cv-tc-fact dt {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--hb-ink-muted);
}
body.cv-herbarium-active .cv-tc-fact dd {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--hb-ink);
  margin: 2px 0 0;
}

/* 2-Column Body Layout (Center Content + 300px Right Rail on >= 1280px) */
.cv-hb-stage-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: stretch;
}
.cv-hb-stage-main {
  border-right: 1px solid var(--hb-rule);
  background: var(--hb-surface);
  min-width: 0;
  padding: 12px 48px 72px;
}

/* Constrain prose line length to ~38–44 Japanese chars for comfortable reading */
.cv-hb-stage-main > p,
.cv-hb-stage-main > ul,
.cv-hb-stage-main > ol,
.cv-hb-stage-main .wp-block-details > p,
.cv-hb-stage-main .wp-block-details > ul,
.cv-hb-stage-main .cv-tc-acc__body {
  max-width: 43rem;
}

/* Inline Collapsible TOC (Shown when Right Rail stacks below on < 1280px) */
.cv-hb-inline-toc {
  display: none;
  margin: 24px 0 8px;
  border: 1px solid var(--hb-rule);
  background: var(--hb-bg);
}
.cv-hb-inline-toc summary {
  padding: 12px 16px;
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--hb-ink);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.cv-hb-inline-toc ul {
  list-style: none;
  margin: 0;
  padding: 8px 16px 14px;
  border-top: 1px solid var(--hb-rule);
  display: grid;
  gap: 6px;
}
.cv-hb-inline-toc a {
  color: var(--hb-ink-secondary);
  text-decoration: none;
  font-size: 0.84rem;
}
.cv-hb-inline-toc a:hover {
  color: var(--hb-accent);
}

/* Section Axis Headers (.cv-tc-axis) */
body.cv-herbarium-active .cv-tc-axis {
  display: block;
  border-top: 2px solid var(--hb-rule);
  border-bottom: 1px solid var(--hb-rule);
  padding: 18px 0;
  margin: 40px 0 24px;
}
body.cv-herbarium-active .cv-tc-axis:has(.cv-tc-axis__num) {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: baseline;
}
body.cv-herbarium-active .cv-tc-axis__num {
  font-family: var(--mono);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--hb-ink-muted);
  line-height: 1;
}
body.cv-herbarium-active .cv-tc-axis__name {
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-axis__desc {
  display: none;
}
body.cv-herbarium-active .cv-tc-sub {
  color: var(--hb-ink-secondary);
  font-size: 0.88rem;
  line-height: 1.75;
  margin: 14px 0 0;
}

body.cv-herbarium-active .cv-tc h3,
body.cv-herbarium-active.single-post .spnc-entry-content h3:not(:where(.cvo-doc *)) {
  font-size: 1.05rem;
  font-weight: 800;
  margin-top: 32px;
  margin-bottom: 10px;
  color: var(--hb-ink);
}

body.cv-herbarium-active .cv-tc p,
body.cv-herbarium-active .cv-tc li {
  color: var(--hb-ink-secondary);
  font-size: 0.94rem;
  line-height: 1.85;
}
body.cv-herbarium-active .cv-hb-stage-main p a:not(.cv-hb-cta-btn):not(.cv-tc-work):not(.cv-hb-chip):not(:where(.cvo-doc *)),
body.cv-herbarium-active .cv-hb-stage-main li a:not(.cv-hb-cta-btn):not(.cv-tc-work):not(.cv-hb-chip):not(.cv-hb-inline-toc a):not(:where(.cvo-doc *)) {
  color: var(--hb-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.cv-herbarium-active .cv-hb-stage-main p a:not(.cv-hb-cta-btn):not(.cv-tc-work):not(.cv-hb-chip):not(:where(.cvo-doc *)):hover,
body.cv-herbarium-active .cv-hb-stage-main li a:not(.cv-hb-cta-btn):not(.cv-tc-work):not(.cv-hb-chip):not(.cv-hb-inline-toc a):not(:where(.cvo-doc *)):hover {
  color: var(--hb-accent);
}

/* Feature Reference Grid (.cv-tc-features) */
body.cv-herbarium-active .cv-tc-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  background: var(--hb-rule);
  border: 1px solid var(--hb-rule);
  gap: 1px;
}
body.cv-herbarium-active .cv-tc-feature,
body.cv-herbarium-active button.cv-tc-feature {
  background: var(--hb-surface);
  border: 0;
  padding: 18px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  color: var(--hb-ink);
  text-align: left;
  cursor: pointer;
  transition: background 0.15s;
}
body.cv-herbarium-active button.cv-tc-feature:hover,
body.cv-herbarium-active .cv-tc-feature:hover {
  background: var(--hb-surface-hover);
}
body.cv-herbarium-active .cv-tc-feature svg {
  color: var(--hb-ink-secondary);
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
body.cv-herbarium-active .cv-tc-feature b {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--hb-ink);
  display: block;
  margin-bottom: 2px;
}
body.cv-herbarium-active .cv-tc-feature span {
  font-size: 0.8rem;
  color: var(--hb-ink-secondary);
}
body.cv-herbarium-active .cv-tc-feature__more {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--hb-ink-muted);
  border: 1px solid var(--hb-rule);
  padding: 3px 8px;
  white-space: nowrap;
}

/* Popover Modals (.cv-tc-pop) */
body.cv-herbarium-active .cv-tc-pop {
  background: var(--hb-surface);
  color: var(--hb-ink);
  border: 2px solid var(--hb-rule);
  padding: 24px;
  max-width: 540px;
}

/* Accordions (.cv-tc-acc & Standard WordPress .wp-block-details) */
body.cv-herbarium-active .cv-tc-accs {
  display: block;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-acc,
body.cv-herbarium-active .wp-block-details {
  border: 0;
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-surface);
  margin: 0;
}
body.cv-herbarium-active .wp-block-details {
  border-top: 1px solid var(--hb-rule);
  margin-bottom: -1px;
}
body.cv-herbarium-active .cv-tc-acc[open],
body.cv-herbarium-active .wp-block-details[open] {
  background: var(--hb-bg);
}
body.cv-herbarium-active .cv-tc-acc__head,
body.cv-herbarium-active .wp-block-details summary {
  padding: 16px 18px;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--hb-ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
body.cv-herbarium-active .cv-tc-acc__head > svg {
  color: var(--hb-ink-muted);
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
body.cv-herbarium-active .cv-tc-acc__tag {
  font-size: 0.76rem;
  color: var(--hb-ink-muted);
  font-weight: 500;
  margin-left: auto;
  margin-right: 8px;
}
body.cv-herbarium-active .cv-tc-acc__body,
body.cv-herbarium-active .wp-block-details > *:not(summary) {
  padding: 14px 18px 20px;
  font-size: 0.9rem;
  color: var(--hb-ink-secondary);
  border-top: 1px dashed var(--hb-rule);
  line-height: 1.8;
}

/* Cross-link Works Grid inside .cv-tc */
body.cv-herbarium-active .cv-tc-works {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  background: var(--hb-rule);
  border: 1px solid var(--hb-rule);
  gap: 1px;
}
body.cv-herbarium-active .cv-tc-work {
  background: var(--hb-surface);
  border: 0;
  padding: 18px 20px;
  color: var(--hb-ink);
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  transition: background 0.15s;
}
body.cv-herbarium-active a.cv-tc-work:hover {
  background: var(--hb-surface-hover);
}
body.cv-herbarium-active .cv-tc-work b {
  display: block;
  font-size: 0.92rem;
  color: var(--hb-ink);
  margin-bottom: 4px;
}
body.cv-herbarium-active .cv-tc-work span {
  font-size: 0.82rem;
  color: var(--hb-ink-secondary);
}

/* --------------------------------------------------------------------------
 * 道具詳細の共通構成（2026-11-08）
 *   01 道具を知る／02 使ってわかったこと／03 公式ノウハウ・ベストプラクティス／
 *   04 この道具で作ったもの／05 試行録／06 公式サイト・関連リンク
 * -------------------------------------------------------------------------- */

/* 開閉行：PC は「アイコン｜タイトル｜補足｜開閉」の共通列。補足はどの行も同じ位置から左揃え */
body.cv-herbarium-active .cv-tc-acc__head {
  display: grid;
  grid-template-columns: 20px minmax(0, 38%) minmax(0, 1fr) 18px;
  align-items: center;
  justify-content: stretch;
  column-gap: 14px;
  row-gap: 2px;
  text-align: left;
}
body.cv-herbarium-active .cv-tc-acc__head > svg:not(.cv-tc-acc__chev) {
  grid-column: 1;
  grid-row: 1;
}
body.cv-herbarium-active .cv-tc-acc__title {
  grid-column: 2;
  grid-row: 1;
  text-align: left;
  line-height: 1.55;
}
body.cv-herbarium-active .cv-tc-acc__head:not(:has(.cv-tc-acc__tag)) .cv-tc-acc__title {
  grid-column: 2 / 4;
}
body.cv-herbarium-active .cv-tc-acc__tag {
  grid-column: 3;
  grid-row: 1;
  justify-self: start;
  text-align: left;
  margin: 0;
  line-height: 1.55;
}
body.cv-herbarium-active .cv-tc-acc__head .cv-tc-acc__chev {
  grid-column: 4;
  grid-row: 1;
  justify-self: end;
  margin: 0;
}
body.cv-herbarium-active .cv-tc-acc__head:focus-visible,
body.cv-herbarium-active .cv-tc-kb__head:focus-visible {
  outline: 2px solid var(--hb-accent);
  outline-offset: -2px;
}
body.cv-herbarium-active .cv-tc-acc__body {
  padding-left: 52px;
}
/* 実践と失敗：うまくいった／つまずき（注意）を短いラベルで示す */
body.cv-herbarium-active .cv-tc-acc__tag--good,
body.cv-herbarium-active .cv-tc-acc__tag--bad {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 1px 8px;
  border: 1px solid;
}
body.cv-herbarium-active .cv-tc-acc__tag--good {
  color: var(--hb-tone-botanical-ink);
  background: var(--hb-tone-botanical);
  border-color: var(--hb-tone-botanical-border);
}
body.cv-herbarium-active .cv-tc-acc__tag--bad {
  color: var(--hb-ink-secondary);
  background: var(--hb-surface-alt);
  border-color: var(--hb-rule);
}
@media (max-width: 640px) {
  /* スマホ：補足はタイトルの下。本文もタイトルと同じ左端から */
  body.cv-herbarium-active .cv-tc-acc__head {
    grid-template-columns: 20px minmax(0, 1fr) 18px;
    column-gap: 10px;
  }
  body.cv-herbarium-active .cv-tc-acc__head:not(:has(.cv-tc-acc__tag)) .cv-tc-acc__title {
    grid-column: 2;
  }
  body.cv-herbarium-active .cv-tc-acc__tag {
    display: block;
    grid-column: 2;
    grid-row: 2;
  }
  body.cv-herbarium-active .cv-tc-acc__tag--good,
  body.cv-herbarium-active .cv-tc-acc__tag--bad {
    display: inline-block;
  }
  body.cv-herbarium-active .cv-tc-acc__head .cv-tc-acc__chev {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
  }
  body.cv-herbarium-active .cv-tc-acc__body {
    padding-left: 48px;
    padding-right: 14px;
  }
}

/* 節の名前は文節で折り返す（対応ブラウザのみ） */
body.cv-herbarium-active .cv-tc-axis__name {
  word-break: auto-phrase;
}
/* 移した見出し（もとの小見出し）は h4 として一段下げる */
body.cv-herbarium-active .cv-tc h4.wp-block-heading {
  font-size: 0.95rem;
  font-weight: 700;
  margin: 24px 0 10px;
  color: var(--hb-ink);
}
/* リンクではない行には矢印を出さない（押せるように見せない） */
body.cv-herbarium-active div.cv-tc-work .cv-tc-work__arrow {
  display: none;
}

/* 03 公式ノウハウ：資料名を主に左揃え、提供元と要点はその下。出典は本文の最後 */
body.cv-herbarium-active .cv-tc-kb {
  border-top: 1px solid var(--hb-rule);
  margin: 0 0 8px;
}
body.cv-herbarium-active .cv-tc-kb__item {
  border-bottom: 1px solid var(--hb-rule);
  background: var(--hb-surface);
}
body.cv-herbarium-active .cv-tc-kb__item[open] {
  background: var(--hb-bg);
}
body.cv-herbarium-active .cv-tc-kb__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-areas: "title chev" "meta chev";
  column-gap: 14px;
  row-gap: 6px;
  padding: 18px 18px 16px;
  cursor: pointer;
  list-style: none;
  text-align: left;
}
body.cv-herbarium-active .cv-tc-kb__head::-webkit-details-marker {
  display: none;
}
body.cv-herbarium-active .cv-tc-kb__title {
  grid-area: title;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-kb__meta {
  grid-area: meta;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  font-size: 0.82rem;
  line-height: 1.65;
  color: var(--hb-ink-secondary);
}
body.cv-herbarium-active .cv-tc-kb__source {
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.03em;
  color: var(--hb-ink-muted);
  border: 1px solid var(--hb-rule);
  padding: 0 6px;
  white-space: nowrap;
}
body.cv-herbarium-active .cv-tc-kb__head .cv-tc-acc__chev {
  grid-area: chev;
  align-self: center;
  width: 18px;
  height: 18px;
  margin: 0;
  color: var(--hb-ink-muted);
  transition: transform 0.2s ease;
}
body.cv-herbarium-active .cv-tc-kb__item[open] .cv-tc-acc__chev {
  transform: rotate(180deg);
  color: var(--hb-accent);
}
body.cv-herbarium-active .cv-tc-kb__body {
  padding: 2px 18px 20px;
  border-top: 1px dashed var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-kb__body p {
  margin: 14px 0 0;
}
body.cv-herbarium-active .cv-tc-kb__body ul {
  margin: 10px 0 0;
  padding-left: 1.2em;
}
body.cv-herbarium-active .cv-tc-kb__body li {
  margin: 0 0 8px;
}
body.cv-herbarium-active .cv-tc .cv-tc-kb__src {
  font-size: 0.8rem;
  color: var(--hb-ink-muted);
}

/* 05 試行録：日付と記事名の一覧 */
body.cv-herbarium-active .cv-tc-logs {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-logs li {
  display: grid;
  grid-template-columns: 6.5em minmax(0, 1fr);
  align-items: baseline;
  gap: 2px 16px;
  margin: 0;
  padding: 12px 2px;
  border-bottom: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-logs time {
  font-family: var(--mono);
  font-size: 0.76rem;
  color: var(--hb-ink-muted);
}
body.cv-herbarium-active .cv-tc-logs a {
  font-weight: 600;
  line-height: 1.6;
}

/* 06 公式サイト・関連リンク：名前を主に、ドメインは補足 */
body.cv-herbarium-active .cv-tc-links {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0 24px;
  margin: 0 0 24px;
  padding: 0;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-links li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 12px 2px;
  border-bottom: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-links a {
  font-weight: 600;
}
body.cv-herbarium-active .cv-tc .cv-tc-links__host {
  font-family: var(--mono);
  font-size: 0.72rem;
  color: var(--hb-ink-muted);
}

@media (max-width: 640px) {
  body.cv-herbarium-active .cv-tc-logs li {
    grid-template-columns: 1fr;
  }
}

/* 機能のポップアップ：見出しと閉じるボタンは上に固定し、長い本文だけをスクロールする。
   .cv-tc 直下の要素を max-width:100% にする規則（詳細度 0,3,1）より強くして、読みやすい幅に収める */
body.cv-herbarium-active .cv-tc .cv-tc-pop[popover] {
  width: calc(100% - 32px);
  max-width: 580px;
  max-height: min(86vh, 760px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 24px 22px;
}
body.cv-herbarium-active .cv-tc-pop__head {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--hb-surface);
  margin: 0 -24px 14px;
  padding: 16px 16px 12px 24px;
  border-bottom: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-pop h4 {
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-pop__head > svg {
  color: var(--hb-accent);
}
body.cv-herbarium-active .cv-tc-pop__close {
  min-width: 40px;
  min-height: 40px;
  color: var(--hb-ink-secondary);
  border: 1px solid var(--hb-rule);
  background: var(--hb-surface);
}
body.cv-herbarium-active .cv-tc-pop__close:hover,
body.cv-herbarium-active .cv-tc-pop__close:focus-visible {
  color: var(--hb-ink);
  border-color: var(--hb-ink-muted);
}
body.cv-herbarium-active .cv-tc-pop__body {
  display: grid;
  gap: 16px;
}
body.cv-herbarium-active .cv-tc-pop__sec {
  display: grid;
  gap: 6px;
}
body.cv-herbarium-active .cv-tc .cv-tc-pop__label {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--hb-accent);
}
body.cv-herbarium-active .cv-tc .cv-tc-pop p,
body.cv-herbarium-active .cv-tc .cv-tc-pop li {
  font-size: 0.88rem;
  line-height: 1.75;
  margin: 0;
}
body.cv-herbarium-active .cv-tc .cv-tc-pop__lead {
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-pop__sec ul {
  margin: 0;
  padding-left: 1.15em;
  display: grid;
  gap: 6px;
}
body.cv-herbarium-active .cv-tc-pop__example dl {
  display: grid;
  grid-template-columns: 4.5em minmax(0, 1fr);
  gap: 6px 12px;
  margin: 0;
  padding: 12px 14px;
  background: var(--hb-bg);
  border: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .cv-tc-pop__example dt {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--hb-ink-muted);
}
body.cv-herbarium-active .cv-tc-pop__example dd {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.7;
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-pop__code {
  margin: 0;
  padding: 12px 14px;
  background: var(--hb-bg);
  border: 1px solid var(--hb-rule);
  overflow-x: auto;
  white-space: pre;
  font-family: var(--mono);
  font-size: 0.8rem;
  line-height: 1.65;
  color: var(--hb-ink);
}
body.cv-herbarium-active .cv-tc-pop__code code {
  background: none;
  border: 0;
  padding: 0;
  color: inherit;
  font-size: inherit;
}
body.cv-herbarium-active .cv-tc .cv-tc-pop__src {
  font-size: 0.78rem;
  color: var(--hb-ink-muted);
}
@media (max-width: 640px) {
  body.cv-herbarium-active .cv-tc-pop {
    padding: 0 16px 18px;
    max-height: 88vh;
  }
  body.cv-herbarium-active .cv-tc-pop__head {
    margin: 0 -16px 12px;
    padding: 12px 10px 10px 16px;
  }
  body.cv-herbarium-active .cv-tc-pop__example dl {
    grid-template-columns: 1fr;
  }
  body.cv-herbarium-active .cv-tc-pop__example dd {
    margin-bottom: 4px;
  }
}

body.cv-herbarium-active code:not(:where(.cvo-doc *, .app-page *)) {
  font-family: var(--mono);
  font-size: 0.84em;
  color: var(--hb-ink);
  background: var(--hb-surface-alt);
  padding: 2px 6px;
  border: 1px solid var(--hb-rule);
}

/* --------------------------------------------------------------------------
 * 9. RIGHT SPECIMEN RAIL (.cv-hb-rail) — Reading Aids Only (No Ad Clutter)
 * -------------------------------------------------------------------------- */
.cv-hb-rail {
  background: var(--hb-bg);
  display: flex;
  flex-direction: column;
}
.cv-hb-rail__sticky {
  position: sticky;
  top: 28px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  overscroll-behavior: contain;
  display: flex;
  flex-direction: column;
}
body.admin-bar .cv-hb-rail__sticky {
  top: 56px;
  max-height: calc(100vh - 76px);
}
.cv-hb-rail__block {
  padding: 16px 20px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-rail__label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--hb-ink-muted);
  margin: 0 0 8px;
}
.cv-hb-rail__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 5px;
}
.cv-hb-rail__list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  color: var(--hb-ink-secondary);
  text-decoration: none;
  font-size: 0.8rem;
  padding: 6px 10px;
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  transition: border-color 0.15s, color 0.15s;
}
.cv-hb-rail__list a:hover {
  border-color: var(--hb-ink-muted);
  color: var(--hb-ink);
}
.cv-hb-rail__list span:last-child {
  font-size: 0.74rem;
  color: var(--hb-ink-muted);
}

.cv-hb-rail__note {
  font-size: 0.78rem;
  color: var(--hb-ink-secondary);
  line-height: 1.55;
  margin-bottom: 10px;
}
.cv-hb-rail__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.cv-hb-chip {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--hb-ink-secondary);
  background: var(--hb-surface);
  border: 1px solid var(--hb-rule);
  padding: 3px 9px;
  text-decoration: none;
  display: inline-block;
}
.cv-hb-chip:hover {
  border-color: var(--hb-accent);
  color: var(--hb-ink);
}
.cv-hb-chip.is-active {
  background: var(--hb-accent);
  color: var(--hb-accent-contrast);
  border-color: var(--hb-accent);
}
.cv-hb-cat-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

/* Prev / Next Specimen Bar */
.cv-hb-rail__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--hb-rule);
  gap: 1px;
  border-bottom: 1px solid var(--hb-rule);
}
.cv-hb-rail__nav a {
  background: var(--hb-surface);
  padding: 12px 14px;
  text-decoration: none;
  color: var(--hb-ink);
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: background 0.15s;
}
.cv-hb-rail__nav a:hover {
  background: var(--hb-surface-hover);
}
.cv-hb-rail__nav span {
  font-size: 0.7rem;
  color: var(--hb-ink-muted);
}
.cv-hb-rail__nav b {
  font-size: 0.82rem;
  color: var(--hb-ink);
}

/* --------------------------------------------------------------------------
 * 10. SILHOUETTE 03 — BLOG ARCHIVE, CATEGORY, SEARCH & SINGLE POST
 * -------------------------------------------------------------------------- */
/* Suppress Newscrunch's "Latest News" wrapper and thumbnail overlays in Blog Archive, Category & Search */
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-main-wrapper,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-overlay,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-img,
body.cv-herbarium-active:is(.blog, .archive, .search) #content figure.spnc-post-thumbnail {
  display: none !important;
}

/* Neutralize Newscrunch category-page float/grid/white-box styles */
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-blog-cat-wrapper,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: var(--hb-surface);
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post .spnc-post,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost .spnc-post,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-grid-catpost.spnc-post,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-grid-catpost.spnc-post:nth-child(odd),
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-grid-catpost.spnc-post:nth-child(even),
body.cv-herbarium-active.search #content .spnc-post {
  float: none;
  width: 100%;
  max-width: 100%;
  background: var(--hb-surface) !important;
  border: 0;
  border-bottom: 1px solid var(--hb-rule);
  padding: 28px 56px;
  margin: 0;
  box-shadow: none;
  transition: background var(--hb-motion);
  position: relative;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post .spnc-post,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost .spnc-post {
  background-color: var(--hb-tone-botanical) !important;
  padding: 36px 56px;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post .spnc-post:hover,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost .spnc-post:hover,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-grid-catpost.spnc-post:hover,
body.cv-herbarium-active.search #content .spnc-post:hover {
  background: var(--hb-surface-hover) !important;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-wrap,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-format-wrapper,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-format-wrapper .spnc-entry-meta,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-format-wrapper .spnc-cat-links,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-content,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-content-wrapper,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-wrapper {
  position: static !important;
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  background: transparent !important;
  box-shadow: none !important;
}
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-post-format-wrapper .spnc-entry-meta {
  margin-bottom: 8px;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-header,
body.cv-herbarium-active:is(.blog, .archive, .search) #content header.entry-header {
  border-bottom: 0;
  margin: 0 0 8px;
  padding: 0;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-title {
  margin: 4px 0 8px;
  line-height: 1.4;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-title a {
  color: var(--hb-ink) !important;
  font-family: var(--sans);
  font-size: 1.22rem;
  font-weight: 800;
  text-decoration: none;
  line-height: 1.4;
  display: inline;
  -webkit-line-clamp: unset;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post .spnc-entry-title a,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost .spnc-entry-title a {
  font-size: clamp(1.35rem, 2vw, 1.65rem);
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-title a:hover {
  color: var(--hb-accent) !important;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-description,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-footer-meta p.spnc-description {
  color: var(--hb-ink-secondary) !important;
  font-family: var(--sans);
  font-size: 0.92rem;
  line-height: 1.75;
  max-width: 46rem;
  margin: 6px 0 12px;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-meta {
  margin: 0 0 6px;
  font-size: 0.76rem;
  color: var(--hb-ink-muted) !important;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-meta a,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-meta .entry-date,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-tag-links,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-tag-links a {
  font-family: var(--mono);
  font-size: 0.76rem;
  color: var(--hb-ink-muted) !important;
  background: transparent !important;
  text-decoration: none;
}
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-entry-meta i {
  display: none !important;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-links a {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--hb-ink-secondary) !important;
  background: var(--hb-surface-alt) !important;
  border: 1px solid var(--hb-rule);
  padding: 2px 8px;
  display: inline-block;
  text-transform: none;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-links a::after {
  display: none !important;
}

body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-footer-meta {
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

/* Style "Read More" / "記事を読む →" link in Blog Archive */
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-more-link {
  display: inline-flex;
  align-items: center;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  font-family: var(--sans);
  font-size: 0.82rem !important;
  font-weight: 700;
  line-height: 1.5;
  color: var(--hb-ink-secondary) !important;
  text-decoration: none;
  transition: color var(--hb-motion), transform var(--hb-motion);
}
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-more-link:hover {
  color: var(--hb-accent) !important;
  transform: translateX(3px);
}

/* Blog Archive Pagination */
body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-pagination,
body.cv-herbarium-active:is(.blog, .archive, .search) #content .pagination {
  padding: 28px 56px;
  margin: 0;
  background: var(--hb-bg);
  border-bottom: 1px solid var(--hb-rule);
  text-align: left;
}
body.cv-herbarium-active #content .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  margin-right: 6px;
  font-family: var(--mono);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--hb-ink-secondary) !important;
  background: var(--hb-surface) !important;
  border: 1px solid var(--hb-rule) !important;
  text-decoration: none;
}
body.cv-herbarium-active #content .page-numbers.current,
body.cv-herbarium-active #content .page-numbers:hover {
  background: var(--hb-accent) !important;
  color: var(--hb-accent-contrast) !important;
  border-color: var(--hb-accent) !important;
  font-weight: 700;
}

/* Single Post Content: Cohesive Header (Category + Title + Author/Date) + Calm Reading Stage */
body.cv-herbarium-active.single-post #content.spnc-single-post,
body.cv-herbarium-active.single-post .spnc-single-post,
body.cv-herbarium-active.single-post article.post {
  background: var(--hb-surface);
  padding: 0;
  margin: 0;
  border: 0;
}
body.cv-herbarium-active.single-post #content .spnc-post > .spnc-post-overlay {
  display: none;
}
body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta {
  background-color: var(--hb-tone-botanical);
  margin: 0;
  padding: 24px 48px 8px;
  font-size: 0.78rem;
  color: var(--hb-ink-muted);
}
body.cv-herbarium-active.single-post #content .spnc-post-content > header.entry-header + .spnc-entry-meta {
  padding: 8px 48px 24px;
  border-bottom: 1px solid var(--hb-rule);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta .spnc-cat-links a {
  font-family: var(--sans);
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--hb-ink-secondary) !important;
  background: var(--hb-surface) !important;
  border: 1px solid var(--hb-rule);
  padding: 3px 10px;
  text-decoration: none;
  display: inline-block;
}
body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta a,
body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta .entry-date {
  font-family: var(--mono);
  font-size: 0.78rem;
  color: var(--hb-ink-secondary) !important;
  background: transparent !important;
  text-decoration: none;
}
body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta i {
  display: none !important;
}
body.cv-herbarium-active.single-post .spnc-entry-content pre:not(:where(.cvo-doc *)),
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content pre:not(:where(.cvo-doc *)) {
  max-width: 100%;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink) !important;
  border: 1px solid var(--hb-rule) !important;
  padding: 16px 20px;
}
body.cv-herbarium-active.single-post .spnc-entry-content pre:not(:where(.cvo-doc *)) code,
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content pre:not(:where(.cvo-doc *)) code {
  display: block;
  max-width: 100%;
  white-space: pre-wrap;
  word-break: break-word;
  background: transparent !important;
  color: inherit !important;
  border: 0 !important;
  padding: 0;
}
body.cv-herbarium-active.single-post .spnc-single-post .spnc-entry-title,
body.cv-herbarium-active.single-post h1.entry-title {
  font-size: clamp(1.65rem, 2.6vw, 2.25rem);
  font-weight: 800;
  color: var(--hb-ink);
  line-height: 1.32;
  margin: 0;
  padding: 4px 48px 8px;
  background-color: var(--hb-tone-botanical);
  border-bottom: 0;
}
body.cv-herbarium-active.single-post .spnc-entry-content p:not(:where(.cvo-doc *)),
body.cv-herbarium-active.single-post .spnc-entry-content li:not(:where(.cvo-doc *)),
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content p:not(:where(.cvo-doc *)),
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content li:not(:where(.cvo-doc *)) {
  color: var(--hb-ink-secondary);
  font-size: 0.96rem;
  line-height: 1.85;
  max-width: 43rem;
}
body.cv-herbarium-active.single-post .spnc-entry-content h2:not(:where(.cvo-doc *)),
body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content h2:not(:where(.cvo-doc *)) {
  font-size: 1.38rem;
  font-weight: 800;
  color: var(--hb-ink);
  border-top: 2px solid var(--hb-rule);
  border-bottom: 1px solid var(--hb-rule);
  padding: 14px 0;
  margin: 40px 0 20px;
}

/* Comprehensive Light/Dark Readability for Headings, Strong, Links, Blockquotes & Tables in Posts & Static Pages */
body.cv-herbarium-active #spnc_panelSidebar,
body.cv-herbarium-active .spnc_sidebar_panel {
  display: none !important;
}
body.cv-herbarium-active .app-page .badge-tip .tip-text {
  display: none;
}
body.cv-herbarium-active .app-page .badge-tip.show .tip-text,
body.cv-herbarium-active .app-page .badge-tip:hover .tip-text {
  display: block;
}
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759, .page-id-85) .spnc-entry-content :is(h1, h2, h3, h4, h5, h6):not(:where(.cvo-doc *, .app-page *, .cv85-hero *, .has-background h1)) {
  color: var(--hb-ink);
  overflow-wrap: anywhere;
}
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759, .page-id-85) .spnc-entry-content :is(strong, b, dt):not(:where(.cvo-doc *, .app-page *, .cv85-hero *, .has-background *)) {
  color: var(--hb-ink);
}
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759) .spnc-entry-content p:not(:where(.cvo-doc *, .app-page *, .cv85-hero *, .has-background p)),
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759) .spnc-entry-content li:not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759) .spnc-entry-content dd:not(:where(.cvo-doc *, .app-page *)) {
  color: var(--hb-ink-secondary);
  overflow-wrap: anywhere;
}
body.cv-herbarium-active:is(.single-post, .cv-hb-standard-page, .page-id-759, .page-id-788) .spnc-entry-content a:not(:where(.cvo-doc *, .app-page *, .cv-hb-cta-btn, .cv-tc-work, .cv-hb-chip, .wp-block-button__link, .wp-block-file__button, .wp-element-button, .pricing-card-cta)),
body.cv-herbarium-active .cv-tc a:not([class]) {
  color: var(--hb-accent) !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}
body.cv-herbarium-active .wp-block-file__button,
body.cv-herbarium-active .wp-element-button,
body.cv-herbarium-active .wp-block-button__link {
  background-color: var(--hb-accent) !important;
  color: var(--hb-accent-contrast) !important;
}

/* Override parent theme Newscrunch blockquote (#f2f4f6 / #000) & table (#f2f4f6 odd rows / #000 thead) */
body.cv-herbarium-active .spnc-entry-content blockquote:not(:where(.cvo-doc *)),
body.cv-herbarium-active .wp-block-quote:not(:where(.cvo-doc *)) {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink-secondary) !important;
  border-left: 3px solid var(--hb-accent) !important;
  padding: 16px 20px;
  margin: 24px 0;
}
body.cv-herbarium-active .spnc-entry-content blockquote:not(:where(.cvo-doc *)) p,
body.cv-herbarium-active .spnc-entry-content blockquote:not(:where(.cvo-doc *)) cite,
body.cv-herbarium-active .wp-block-quote:not(:where(.cvo-doc *)) p,
body.cv-herbarium-active .wp-block-quote:not(:where(.cvo-doc *)) cite {
  color: var(--hb-ink-secondary) !important;
  background: transparent !important;
}

body.cv-herbarium-active .spnc-entry-content table:not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content tr:not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content tbody tr:nth-child(2n+1):not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content tbody tr:nth-child(2n):not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content td:not(:where(.cvo-doc *, .app-page *)) {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink-secondary) !important;
  border-color: var(--hb-rule) !important;
}
body.cv-herbarium-active .spnc-entry-content tbody tr:nth-child(2n+1):not(:where(.cvo-doc *, .app-page *)) td {
  background-color: var(--hb-surface-alt) !important;
}
body.cv-herbarium-active .spnc-entry-content th:not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content thead th:not(:where(.cvo-doc *, .app-page *)),
body.cv-herbarium-active .spnc-entry-content tbody th:not(:where(.cvo-doc *, .app-page *)) {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
}

/* Protect self-contained article embeds (.cvo-doc in post 1043 & .cvo-fig in post 1098) in both Light & Dark */
body.cv-herbarium-active .cvo-doc .cvo-cover {
  background-color: #1F252C;
  color: #F5F6F3;
}
html[data-cv-theme="dark"] body.cv-herbarium-active .cvo-doc .cvo-cover {
  background-color: #15182A;
  color: #F5F6F3;
}
body.cv-herbarium-active .cvo-doc .cvo-cover h1 {
  color: #F5F6F3 !important;
}
body.cv-herbarium-active .cvo-doc .cvo-cover .cvo-eyebrow {
  color: #90A497 !important;
}
body.cv-herbarium-active .cvo-doc .cvo-cover p {
  color: #D6DCD7 !important;
}
body.cv-herbarium-active .cvo-doc .cvo-cover .cvo-stamp {
  color: #AEB4AE !important;
}
body.cv-herbarium-active .cvo-doc pre {
  background-color: #232A31 !important;
  color: #E4E8E2 !important;
}
body.cv-herbarium-active .cvo-doc pre code {
  background: transparent !important;
  color: inherit !important;
  border: 0 !important;
}
body.cv-herbarium-active .cvo-doc pre .cm {
  color: #9DB5A7 !important;
}
body.cv-herbarium-active .cvo-doc .cvo-svgbox,
body.cv-herbarium-active .cvo-fig .cvo-svgbox {
  color: #1F252C !important;
}

/* Post Views Counter, Post Tags, Author Box, Related Posts, Post Navigation & Comments */
body.cv-herbarium-active .post-views,
body.cv-herbarium-active .post-views * {
  color: var(--hb-ink-muted) !important;
  background: transparent !important;
}
body.cv-herbarium-active .spnc-tag-links,
body.cv-herbarium-active .spnc-tag-links a,
body.cv-herbarium-active .tag-links,
body.cv-herbarium-active .tag-links a,
body.cv-herbarium-active span.spnc-text-black {
  color: var(--hb-ink-secondary) !important;
  background: transparent !important;
}
body.cv-herbarium-active .spnc-author-box,
body.cv-herbarium-active .spnc-author-box-wrapper {
  background-color: var(--hb-surface-alt) !important;
  border: 1px solid var(--hb-rule) !important;
  color: var(--hb-ink) !important;
  padding: 20px 24px;
  margin: 32px 48px;
}
body.cv-herbarium-active .spnc-author-box a,
body.cv-herbarium-active .spnc-author-box p {
  color: var(--hb-ink) !important;
}

body.cv-herbarium-active .spnc-related-posts,
body.cv-herbarium-active .spnc-related-post-wrapper,
body.cv-herbarium-active .spnc-related-posts .spnc-post,
body.cv-herbarium-active .spnc-related-posts .spnc-post-wrapper,
body.cv-herbarium-active .spnc-related-posts .spnc-content-wrapper {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
}
body.cv-herbarium-active .spnc-related-posts {
  padding: 28px 48px;
  border-top: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .spnc-related-posts :is(h2, h3, h4, .widget-title, .spnc-main-wrapper-heading, .spnc-main-wrapper-heading *, .spnc-blog-1-heading, .spnc-blog-1-heading *),
body.cv-herbarium-active .spnc-related-posts a,
body.cv-herbarium-active .spnc-related-posts a.a_effect1 {
  color: var(--hb-ink) !important;
  background-color: transparent !important;
  text-decoration: none;
}
body.cv-herbarium-active .spnc-related-posts :is(.widget-title, .spnc-main-wrapper-heading, .spnc-blog-1-heading):before,
body.cv-herbarium-active .spnc-related-posts :is(.widget-title, .spnc-main-wrapper-heading, .spnc-blog-1-heading):after {
  display: none !important;
}
body.cv-herbarium-active .spnc-related-posts a:hover,
body.cv-herbarium-active .spnc-related-posts a.a_effect1:hover {
  color: var(--hb-accent) !important;
}
body.cv-herbarium-active .spnc-related-posts .spnc-entry-meta,
body.cv-herbarium-active .spnc-related-posts .spnc-entry-meta a,
body.cv-herbarium-active .spnc-related-posts time {
  color: var(--hb-ink-muted) !important;
}

body.cv-herbarium-active .spnc-pagination-single,
body.cv-herbarium-active .post-navigation,
body.cv-herbarium-active .nav-links {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
}
body.cv-herbarium-active .spnc-pagination-single a,
body.cv-herbarium-active .post-navigation a,
body.cv-herbarium-active .nav-links a {
  color: var(--hb-ink) !important;
}

body.cv-herbarium-active #comments,
body.cv-herbarium-active #respond,
body.cv-herbarium-active .comment-respond,
body.cv-herbarium-active article.comment-form,
body.cv-herbarium-active article.comment-section,
body.cv-herbarium-active .comment-section,
body.cv-herbarium-active .spnc-comment-section {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
  box-shadow: none !important;
}
body.cv-herbarium-active #comments,
body.cv-herbarium-active #respond,
body.cv-herbarium-active article.comment-section,
body.cv-herbarium-active .comment-section {
  padding: 28px 48px !important;
  border-top: 1px solid var(--hb-rule) !important;
  margin-bottom: 0 !important;
}
body.cv-herbarium-active .comment-box,
body.cv-herbarium-active .comment-body,
body.cv-herbarium-active .comment-detail {
  background-color: transparent !important;
  color: var(--hb-ink) !important;
}
body.cv-herbarium-active .comment-box {
  border-bottom: 1px solid var(--hb-rule);
  padding: 18px 0;
  margin-bottom: 0;
}
body.cv-herbarium-active .comment-box:last-child {
  border-bottom: none;
}
body.cv-herbarium-active .pull-left-comment,
body.cv-herbarium-active .pull-left-comment img.comment-img {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink-muted) !important;
  border: 1px solid var(--hb-rule);
}
body.cv-herbarium-active .comment-section .comment-title h3,
body.cv-herbarium-active .comment-section .comment-title h3 span,
body.cv-herbarium-active .comment-box .comment-detail .comment-detail-title,
body.cv-herbarium-active .comment-detail-title,
body.cv-herbarium-active .comment-detail-title a {
  color: var(--hb-ink) !important;
  background-color: transparent !important;
  font-weight: 700;
}
body.cv-herbarium-active .comment-box .comment-detail time.comment-date,
body.cv-herbarium-active .comment-date {
  color: var(--hb-ink-muted) !important;
  background-color: transparent !important;
  font-family: var(--hb-font-mono);
  font-size: 0.85em;
  font-weight: 500;
  margin-left: 10px;
}
body.cv-herbarium-active .comment-box .comment-detail p,
body.cv-herbarium-active .comment-box .comment-detail span[itemprop="commentText"],
body.cv-herbarium-active .comment-box .comment-detail [itemprop="commentText"] * {
  color: var(--hb-ink) !important;
  background-color: transparent !important;
}
body.cv-herbarium-active .comment-box .comment-detail span[itemprop="commentText"] a {
  color: var(--hb-accent) !important;
  text-decoration: underline;
}
body.cv-herbarium-active .comment-box .reply a,
body.cv-herbarium-active a.comment-reply-link {
  color: var(--hb-accent) !important;
  background-color: transparent !important;
  font-weight: 600;
  text-decoration: none;
}
body.cv-herbarium-active .comment-box .reply a:hover,
body.cv-herbarium-active a.comment-reply-link:hover {
  text-decoration: underline;
}
body.cv-herbarium-active #comments :is(h2, h3, h4, p, span, cite, a, .comments-title, .spnc-blog-1-heading, .spnc-blog-1-heading *),
body.cv-herbarium-active #respond :is(h2, h3, h4, p, span, label, a, .comment-reply-title, .spnc-blog-1-heading, .spnc-blog-1-heading *),
body.cv-herbarium-active .spnc-blog-1-heading,
body.cv-herbarium-active .spnc-blog-1-heading *,
body.cv-herbarium-active .comment-reply-title,
body.cv-herbarium-active .comment-form label,
body.cv-herbarium-active .comment-notes,
body.cv-herbarium-active .logged-in-as,
body.cv-herbarium-active .comment-form-cookies-consent label,
body.cv-herbarium-active #content label,
body.cv-herbarium-active .post-password-form,
body.cv-herbarium-active .post-password-form p,
body.cv-herbarium-active .post-password-form label {
  color: var(--hb-ink) !important;
  background-color: transparent !important;
}
body.cv-herbarium-active #comments :is(h2, h3, h4, .comments-title, .spnc-blog-1-heading):before,
body.cv-herbarium-active #respond :is(h2, h3, h4, .comment-reply-title, .spnc-blog-1-heading):before,
body.cv-herbarium-active .spnc-blog-1-heading:before,
body.cv-herbarium-active .spnc-blog-1-heading:after {
  display: none !important;
}
body.cv-herbarium-active .comment-form input[type="text"],
body.cv-herbarium-active .comment-form input[type="email"],
body.cv-herbarium-active .comment-form input[type="url"],
body.cv-herbarium-active .comment-form textarea,
body.cv-herbarium-active .post-password-form input[type="password"] {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink) !important;
  border: 1px solid var(--hb-rule) !important;
  padding: 10px 12px;
}
body.cv-herbarium-active .comment-form input[type="submit"],
body.cv-herbarium-active .comment-form .submit,
body.cv-herbarium-active .form-submit input,
body.cv-herbarium-active .post-password-form input[type="submit"] {
  background-color: var(--hb-accent) !important;
  color: var(--hb-accent-contrast) !important;
  border: 1px solid var(--hb-accent) !important;
  font-weight: 700;
  padding: 10px 22px;
  cursor: pointer;
}

/* Easy TOC (#ez-toc-container):
   - Hidden on pages where the new Herbarium TOC is generated (keeping heading .ez-toc-section[id] anchors intact)
   - Visible and styled on pages without the new Herbarium TOC */
body.cv-herbarium-active.cv-hb-has-toc #ez-toc-container,
body.cv-herbarium-active.cv-hb-has-toc .ez-toc-container,
body.cv-herbarium-active .cv-hb-stage-main:has(.cv-hb-inline-toc) #ez-toc-container,
body.cv-herbarium-active .cv-hb-stage-main:has(.cv-hb-inline-toc) .ez-toc-container,
body.cv-herbarium-active .cv-hb-stage-main:has(h2, h3, h4) #ez-toc-container,
body.cv-herbarium-active .cv-hb-stage-main:has(h2, h3, h4) .ez-toc-container {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}
body.cv-herbarium-active #ez-toc-container,
body.cv-herbarium-active .ez-toc-container {
  background-color: var(--hb-surface-alt) !important;
  border: 1px solid var(--hb-rule) !important;
  color: var(--hb-ink) !important;
  padding: 16px 20px !important;
  box-shadow: none !important;
  margin: 24px 0 !important;
}
body.cv-herbarium-active #ez-toc-container p.ez-toc-title,
body.cv-herbarium-active .ez-toc-container p.ez-toc-title,
body.cv-herbarium-active #ez-toc-container .ez-toc-title-container,
body.cv-herbarium-active #ez-toc-container .ez-toc-title-toggle a {
  color: var(--hb-ink) !important;
  font-weight: 700 !important;
}
body.cv-herbarium-active #ez-toc-container a,
body.cv-herbarium-active .ez-toc-container a,
body.cv-herbarium-active #ez-toc-container ul.ez-toc-list a {
  color: var(--hb-ink-secondary) !important;
  text-decoration: none !important;
}
body.cv-herbarium-active #ez-toc-container a:hover,
body.cv-herbarium-active .ez-toc-container a:hover {
  color: var(--hb-accent) !important;
}

/* 404 Error Page */
body.cv-herbarium-active.error404 #content,
body.cv-herbarium-active.error404 .spnc-error-page,
body.cv-herbarium-active.error404 .spnc-error-404 {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink) !important;
  padding: 64px 48px !important;
}
body.cv-herbarium-active.error404 #content :is(h1, h2, h3, h4, p, span) {
  color: var(--hb-ink) !important;
}
body.cv-herbarium-active.error404 #content a {
  background-color: var(--hb-accent) !important;
  color: var(--hb-accent-contrast) !important;
  border: 1px solid var(--hb-accent) !important;
  padding: 10px 20px;
  display: inline-block;
  text-decoration: none;
}

/* Legacy Inline-Styled Pages: 519 (AI Image License), 525 (DMCA), 551 (studay_zapier), 314 (PORKBEATS), 568 (slide20250604), 22 (Life log), 442, 113, 223 */
body.cv-herbarium-active.page-id-525 .spnc-entry-content {
  max-width: 880px !important;
  margin: 0 auto !important;
  padding: 48px 48px 80px !important;
}
body.cv-herbarium-active.page-id-519 [style*="#e67e22"],
body.cv-herbarium-active.page-id-519 [style*="230, 126, 34"] {
  background-color: #b85400 !important;
  color: #ffffff !important;
}
body.cv-herbarium-active.postid-551 .tip-title {
  color: #c43c00 !important;
}
body.cv-herbarium-active.postid-551 .pricing-card-cta {
  background-color: #c43c00 !important;
  color: #ffffff !important;
}
body.cv-herbarium-active.postid-113 .spnc-entry-content a[style*="color"] {
  color: var(--hb-accent) !important;
}
body.cv-herbarium-active.postid-223 .spnc-entry-content span[style*="color"] {
  color: var(--hb-ink-muted) !important;
}
body.cv-herbarium-active.postid-223 .spnc-entry-content table,
body.cv-herbarium-active.postid-223 .spnc-entry-content tbody,
body.cv-herbarium-active.postid-223 .spnc-entry-content tr,
body.cv-herbarium-active.postid-223 .spnc-entry-content td,
body.cv-herbarium-active.postid-223 .spnc-entry-content div[style*="width"] {
  max-width: 100% !important;
  width: auto !important;
  box-sizing: border-box !important;
}
body.cv-herbarium-active.postid-442 .pdfemb-errormsg,
body.cv-herbarium-active.postid-442 .pdfemb-errormsg * {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink) !important;
}
body.cv-herbarium-active.page-id-22 .wp-block-themeisle-blocks-tabs,
body.cv-herbarium-active.page-id-22 .wp-block-themeisle-blocks-tabs div {
  background-color: var(--hb-surface) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active:is(.page-id-519, .page-id-525, .postid-551) .spnc-entry-content :is(.license-section, .collapsible, .content, .attribution-box, .info-box, .warning, .form-container, .legal-notice, .contact-info, .sworn-statement, .declaration, .toc, section, .card, .tip-container, .pricing-card, .feature-icon),
html[data-cv-theme="dark"] body.cv-herbarium-active.page-id-525 .spnc-entry-content div:not(.step-number),
html[data-cv-theme="dark"] body.cv-herbarium-active:is(.page-id-519, .page-id-525, .postid-551) .spnc-entry-content :is(div, section, aside, p, ul, ol, li, table, thead, tbody, tr, th, td, blockquote)[style*="background"] {
  background-color: var(--hb-surface-alt) !important;
  color: var(--hb-ink) !important;
  border-color: var(--hb-rule) !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active:is(.page-id-519, .page-id-525, .postid-551) .spnc-entry-content :is(h1, h2, h3, h4, p, li, span, strong, b, label, th, td, .pricing-card-price, .pricing-card-duration),
html[data-cv-theme="dark"] body.cv-herbarium-active:is(.page-id-519, .page-id-525, .postid-551) .spnc-entry-content :is(h1, h2, h3, h4, p, li, span, strong, b, th, td, div)[style*="color"] {
  color: var(--hb-ink) !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active.postid-551 .spnc-entry-content :is(.toc-icon, .pricing-card-cta),
html[data-cv-theme="dark"] body.cv-herbarium-active.page-id-525 .spnc-entry-content .step-number {
  background-color: #c43c00 !important;
  color: #ffffff !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active.postid-551 .spnc-entry-content .tip-title {
  color: #ff8c66 !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active:is(.page-id-519, .page-id-525, .postid-551) .spnc-entry-content a[style*="color"] {
  color: var(--hb-accent) !important;
}
html[data-cv-theme="dark"] body.cv-herbarium-active.page-id-519 .spnc-entry-content span[style*="#e67e22"],
html[data-cv-theme="dark"] body.cv-herbarium-active.page-id-519 .spnc-entry-content span[style*="background"] {
  background-color: #b85400 !important;
  color: #ffffff !important;
}

/* 314 PORKBEATS: opaque dark studio surface so album cards are readable in both Light & Dark */
body.cv-herbarium-active.page-id-314 .spnc-entry-content {
  background-color: #101223 !important;
  color: #f2f5f3 !important;
  padding: 48px 40px 80px !important;
}
body.cv-herbarium-active.page-id-314 .pb-album-card {
  background-color: #181a34 !important;
}
body.cv-herbarium-active.page-id-314 .pb-header h2 {
  -webkit-text-fill-color: #d6c8ff !important;
  color: #d6c8ff !important;
  background: none !important;
}
body.cv-herbarium-active.page-id-314 .pb-header p,
body.cv-herbarium-active.page-id-314 .pb-footer {
  color: #b8b8ff !important;
}
body.cv-herbarium-active.page-id-314 .pb-listen-btn,
body.cv-herbarium-active.page-id-314 .pb-album-brand {
  background-color: #39398a !important;
  color: #ffffff !important;
}

/* 568 slide20250604: preserve white slide cards & high-contrast headings in both Light & Dark */
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide {
  background-color: #ffffff !important;
  color: #1f252c !important;
}
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide :is(p, li, div:not(.slide-number), span, strong) {
  color: #1f252c !important;
}
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide .slide-number {
  background-color: #b82828 !important;
  background-image: none !important;
  color: #ffffff !important;
}
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide h1 {
  color: #b82828 !important;
}
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide h2 {
  color: #0f6b63 !important;
}
body.cv-herbarium-active.page-id-568 .spnc-entry-content .slide h3 {
  color: #14597a !important;
}

/* --------------------------------------------------------------------------
 * 11. SPONSORED / PR COMPONENTS (Visually Separated from Navigation)
 * -------------------------------------------------------------------------- */
.cv-pr-pill {
  font-family: var(--mono);
  font-size: 0.65rem;
  font-weight: 600;
  padding: 1px 6px;
  background: var(--hb-surface-alt);
  color: var(--hb-ink-muted);
  border: 1px solid var(--hb-rule);
  letter-spacing: 0.05em;
  display: inline-block;
  white-space: nowrap;
  flex-shrink: 0;
}

.cv-pr-showcase {
  background: var(--hb-bg);
  padding: 40px 56px 56px;
  border-top: 1px solid var(--hb-rule);
  border-bottom: 1px solid var(--hb-rule);
}
.cv-pr-showcase__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 10px;
}
.cv-pr-showcase__title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--hb-ink-secondary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}
.cv-pr-showcase__note {
  font-size: 0.75rem;
  color: var(--hb-ink-muted);
  margin: 0;
}
.cv-pr-grid,
.cv-pr-grid > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.cv-pr-grid:has(> .wp-block-group__inner-container) {
  display: block;
}
.cv-pr-item {
  background: var(--hb-surface);
  border: 1px dashed var(--hb-rule);
  padding: 20px 24px;
  color: var(--hb-ink);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}
.cv-pr-item__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.72rem;
  color: var(--hb-ink-muted);
  margin: 0;
}
.cv-pr-item h3 {
  margin: 6px 0;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--hb-ink);
}
.cv-pr-item p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--hb-ink-secondary);
  line-height: 1.6;
}
.cv-pr-item__cta {
  font-size: 0.78rem;
  font-weight: 600;
  border-top: 1px dashed var(--hb-rule);
  padding-top: 10px;
  margin: 0;
}
.cv-pr-item__cta a {
  color: var(--hb-ink-secondary);
  text-decoration: none;
}
.cv-pr-item__cta a:hover {
  color: var(--hb-accent);
}

/* Single Bottom PR Box inside Dossier */
.cv-hb-article-pr {
  margin: 48px 0 0;
  max-width: 43rem;
  border: 1px dashed var(--hb-rule);
  background: var(--hb-bg);
  padding: 22px 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.cv-hb-article-pr__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.cv-hb-article-pr h4 {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--hb-ink);
}
.cv-hb-article-pr p {
  margin: 0;
  font-size: 0.84rem;
  color: var(--hb-ink-secondary);
}

/* Minimal Common Herbarium Footer (Policy & Site Links) */
.cv-hb-footer {
  margin-left: var(--hb-dock-w);
  border-top: 1px solid var(--hb-rule);
  background: var(--hb-bg);
  padding: 24px 56px;
}
.cv-hb-footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.78rem;
  color: var(--hb-ink-muted);
}
.cv-hb-footer__brand {
  display: flex;
  align-items: center;
  gap: 10px;
}
.cv-hb-footer__brand strong {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--hb-ink-secondary);
}
.cv-hb-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}
.cv-hb-footer__links a {
  color: var(--hb-ink-secondary);
  text-decoration: none;
  transition: color var(--hb-motion);
}
.cv-hb-footer__links a:hover {
  color: var(--hb-accent);
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
 * 12. RESPONSIVE BREAKPOINTS (Protecting Central Reading Width)
 * -------------------------------------------------------------------------- */
/* < 1280px: Stack Right Rail below Center Content so prose never gets squeezed;
 *           show inline collapsible TOC at the top of the article. */
@media (max-width: 1279px) {
  .cv-hb-stage-grid {
    grid-template-columns: 1fr;
  }
  .cv-hb-stage-main {
    border-right: 0;
  }
  .cv-hb-inline-toc {
    display: block;
  }
  .cv-hb-rail {
    border-top: 1px solid var(--hb-rule);
  }
  /* Hide duplicate TOC block in bottom rail when inline TOC is active */
  .cv-hb-rail__block--toc {
    display: none;
  }
  .cv-hb-hero--split,
  .cv-hb-hero--split > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .cv-hb-hero__left,
  .cv-hb-hero:has(.cv-hb-workbench) .cv-hb-hero__left,
  .cv-hb-hero:has(.cv-hb-hero__feature) .cv-hb-hero__left,
  .cv-hb-workbench,
  .cv-hb-hero__feature,
  .cv-hb-featured-specimen {
    grid-column: 1 / -1;
  }
  .cv-hb-showcase-grid--asymmetric,
  .cv-hb-showcase-grid--asymmetric > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
  .cv-hb-showcase-card--8col,
  .cv-hb-showcase-card--4col {
    grid-column: 1 / -1;
  }
  .cv-hb-matrix,
  .cv-hb-matrix > .wp-block-group__inner-container,
  .cv-pr-grid,
  .cv-pr-grid > .wp-block-group__inner-container,
  .cv-hb-showcase-grid--3col,
  .cv-hb-showcase-grid--3col > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* <= 980px: Collapse Left Dock into accessible off-canvas drawer & stack asymmetric 12-col grids */
@media (max-width: 980px) {
  .cv-hb-mobile-bar {
    display: flex;
  }
  .cv-hb-dock {
    position: fixed;
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform 0.2s ease, visibility 0s linear 0.2s;
    width: 260px;
  }
  body.cv-dock-open .cv-hb-dock {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.2s ease, visibility 0s linear 0s;
  }
  body.cv-herbarium-active #page,
  .cv-hb-footer {
    margin-left: 0;
  }
  .cv-hb-bento,
  .cv-hb-bento > .wp-block-group__inner-container,
  .cv-hb-editorial-split,
  .cv-hb-editorial-split > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
  }
  .cv-hb-door--8col,
  .cv-hb-door--4col,
  .cv-hb-featured-log,
  .cv-hb-recent-section {
    grid-column: 1 / -1;
  }
  /* Explicitly match :has(.cv-tc-head__cta) specificity so mobile 1-column always wins */
  body.cv-herbarium-active .cv-tc-head,
  body.cv-herbarium-active .cv-tc-head:has(.cv-tc-head__cta) {
    grid-template-columns: 1fr;
  }
  body.cv-herbarium-active .cv-tc-logo {
    min-height: 88px;
    border-right: 0;
    border-bottom: 1px solid var(--hb-rule);
    justify-content: flex-start;
    padding: 18px 28px;
  }
  body.cv-herbarium-active .cv-tc-head__body {
    padding: 24px 28px;
  }
  body.cv-herbarium-active .cv-tc-head__cta {
    border-left: 0;
    border-top: 1px solid var(--hb-rule);
    padding: 18px 28px;
  }
}

/* <= 768px: Stack filter tabs and view toggle so neither tabs nor toggle overflow off-screen */
@media (max-width: 768px) {
  .cv-hb-filter-strip {
    flex-direction: column;
    align-items: stretch;
    padding-right: 0;
    overflow-x: visible;
  }
  .cv-hb-filter-tabs {
    width: 100%;
    flex-wrap: wrap;
    overflow-x: visible;
    border-bottom: 1px solid var(--hb-rule);
  }
  .cv-hb-tab {
    padding: 10px 12px;
    font-size: 0.78rem;
    flex: 1 1 auto;
    text-align: center;
  }
  .cv-hb-view-toggle {
    width: 100%;
    border: 0;
    padding: 10px 20px;
    justify-content: flex-start;
  }
}

/* <= 720px: Single-column cards & comfortable mobile padding */
@media (max-width: 720px) {
  .cv-hb-matrix,
  .cv-hb-matrix > .wp-block-group__inner-container,
  .cv-hb-showcase-grid,
  .cv-hb-showcase-grid > .wp-block-group__inner-container,
  .cv-hb-showcase-grid--3col,
  .cv-hb-showcase-grid--3col > .wp-block-group__inner-container,
  .cv-pr-grid,
  .cv-pr-grid > .wp-block-group__inner-container,
  .cv-hb-workbench__sub,
  .cv-hb-featured-specimen__diagram,
  .cv-hb-spec-channels,
  .cv-hb-showcase-card__cutout,
  .cv-hb-door__plates,
  .cv-hb-featured-log__diagram,
  body.cv-herbarium-active .cv-tc-features {
    grid-template-columns: 1fr;
  }
  .cv-hb-featured-specimen__foot {
    flex-direction: column;
    align-items: flex-start;
  }
  .cv-hb-hero,
  .cv-hb-hero--split,
  .cv-hb-hero--split > .wp-block-group__inner-container,
  .cv-hb-sec-bar,
  .cv-hb-card,
  .cv-hb-door,
  .cv-hb-featured-log,
  .cv-hb-showcase-card__body,
  .cv-pr-showcase,
  .cv-hb-recent-section,
  .cv-hb-stage-main,
  .cv-hb-footer,
  body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-cat-first-post .spnc-post,
  body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-first-catpost .spnc-post,
  body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-grid-catpost.spnc-post,
  body.cv-herbarium-active.search #content .spnc-post,
  body.cv-herbarium-active:is(.blog, .archive, .search) #content .spnc-pagination,
  body.cv-herbarium-active .spnc-related-posts,
  body.cv-herbarium-active #comments,
  body.cv-herbarium-active #respond,
  body.cv-herbarium-active article.comment-section,
  body.cv-herbarium-active .comment-section,
  .cv-hb-top-quote-wrap {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  body.cv-herbarium-active .spnc-author-box,
  body.cv-herbarium-active .spnc-author-box-wrapper {
    margin: 24px 20px;
  }
  body.cv-herbarium-active.cv-hb-standard-page .spnc-entry-content {
    padding: 28px 20px 64px !important;
  }
  body.cv-herbarium-active.page-id-788 .cv-tc {
    padding: 24px 20px 56px;
  }
  .cv-hb-workbench__stage,
  .cv-hb-featured-specimen__body,
  .cv-hb-showcase-card__stage {
    padding: 14px;
  }
  .cv-hb-dossier-bar {
    padding: 10px 20px;
  }
  body.cv-herbarium-active.single-post #content .spnc-post-content > .spnc-entry-meta {
    padding: 20px 20px 6px;
  }
  body.cv-herbarium-active.single-post #content .spnc-post-content > header.entry-header + .spnc-entry-meta {
    padding: 6px 20px 20px;
  }
  body.cv-herbarium-active.single-post .spnc-single-post .spnc-entry-title,
  body.cv-herbarium-active.single-post .spnc-entry-title,
  body.cv-herbarium-active.single-post h1.entry-title {
    padding: 4px 20px 6px;
  }
}

/* Respect Reduced Motion Preferences */
@media (prefers-reduced-motion: reduce) {
  body.cv-herbarium-active *,
  body.cv-herbarium-active *::before,
  body.cv-herbarium-active *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    transform: none !important;
  }
}
