/*
Theme Name: Kakenhi Minimal — Auth Pilot (test only)
Theme URI: https://科研費.com/
Author: The Lab
Description: 科研費.com 専用の軽量テーマ。visual shell（layout / typography / design tokens / header / footer / global UI）のみを担当します。
Version: 0.4.2-rc13
Text Domain: kakenhi-minimal
*/

:root {
  /* v2.2 transitional UI tokens, shared with existing service plugins.
     kakenhicom-core will become the sole token owner after a separate migration. */
  --kcom-color-bg: #FFFFFF;
  --kcom-color-surface: #FFFFFF;
  --kcom-color-primary: #0F766E;
  --kcom-color-primary-hover: #115E59;
  --kcom-color-accent: #FBBF24;
  --kcom-color-accent-hover: #F59E0B;
  --kcom-color-text: #1F2937;
  --kcom-color-muted: #64748B;
  --kcom-color-subtle-bg: #F7FAF9;
  --kcom-color-border: #DCE5E1;
  --kcom-color-control-border: #7B8794;
  --kcom-color-selected: #E8F5F2;
  --kcom-color-accent-border: #92400E;

  /* Compatibility aliases for the existing theme/plugins: DO NOT remove yet. */
  --bg: var(--kcom-color-bg);
  --surface: var(--kcom-color-surface);
  --text: var(--kcom-color-text);
  --muted: var(--kcom-color-muted);
  --border: var(--kcom-color-border);
  --primary: var(--kcom-color-primary);
  --primary-hover: var(--kcom-color-primary-hover);
  --selected: var(--kcom-color-selected);
  --deep-navy: var(--kcom-color-text);
  --muted-gold: var(--kcom-color-accent);
  --success: #3E7C65;
  --warning: #9A6A2B;
  --danger: #B34A4A;

  --km-bg: var(--bg);
  --km-surface: var(--surface);
  --km-text: var(--text);
  --km-muted: var(--muted);
  --km-border: var(--border);
  --km-blue: var(--primary);
  --km-blue-hover: var(--primary-hover);
  --km-blue-soft: var(--selected);
  --km-navy: var(--deep-navy);
  --km-gold: var(--muted-gold);

  --km-radius: 8px;
  --km-content: 1120px;
  --km-app: 1280px;
  --km-reading: 900px;
  --km-guide-landing: 1040px;
  --km-tip-reading: 860px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: .16em; }
a:hover { color: var(--primary-hover); }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 3px;
}
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, .button, .wp-element-button, .wp-block-button__link { border-radius: 6px; }

.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  clip: auto !important; width: auto; height: auto; margin: 8px; padding: 8px 12px;
  background: var(--surface); color: var(--text); z-index: 100000;
}

.site-header {
  position: relative;
  z-index: 100;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
}
.site-header__inner {
  max-width: var(--km-content); margin: 0 auto; min-height: 64px; padding: 0 24px;
  display: flex; align-items: center; gap: 24px;
}
.site-brand { flex: 0 0 auto; }
.site-brand__link { display: inline-flex; align-items: baseline; gap: 8px; min-height: 44px; align-items: center; color: var(--text); text-decoration: none; }
.site-brand__name { font-size: 22px; line-height: 1; font-weight: 700; letter-spacing: -.03em; white-space: nowrap; }
.site-brand__dot { color: var(--primary); }

.primary-nav { margin-left: auto; }
.primary-nav ul { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.primary-nav a {
  display: flex; align-items: center; min-height: 44px; padding: 8px 10px; border-radius: 6px;
  color: var(--text); text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.primary-nav a:hover,
.primary-nav .is-current > a { background: var(--selected); color: var(--primary-hover); }
.primary-nav .nav-account a { border: 1px solid var(--kcom-color-control-border); margin-left: 4px; padding-inline: 12px; }

.mobile-nav { display: none; margin-left: auto; position: relative; }
.mobile-nav summary {
  cursor: pointer; list-style: none; min-height: 44px; display: flex; align-items: center;
  border: 1px solid var(--kcom-color-control-border); border-radius: 6px; padding: 7px 12px; font-size: 14px; font-weight: 600;
}
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav__panel {
  position: absolute; right: 0; top: 50px; z-index: 1000; min-width: 250px;
  background: var(--surface); border: 1px solid var(--kcom-color-control-border); border-radius: 8px; padding: 8px;
}
.mobile-nav__panel ul { margin: 0; padding: 0; list-style: none; }
.mobile-nav__panel a {
  display: flex; align-items: center; min-height: 44px; padding: 9px 10px; border-radius: 6px;
  color: var(--text); text-decoration: none;
}
.mobile-nav__panel a:hover,
.mobile-nav__panel .is-current > a { background: var(--selected); color: var(--primary-hover); }

.site-main { min-height: 62vh; }
.content-shell { max-width: var(--km-content); margin: 0 auto; padding: 32px 24px 64px; }
.content-shell--app { max-width: var(--km-app); width: 100%; margin-inline: auto; padding-top: 20px; }
.content-shell--reading { max-width: var(--km-reading); }
.page-header, .entry-header { margin-bottom: 24px; }
.entry-title, .page-title { margin: 0; font-size: 28px; line-height: 1.3; letter-spacing: -.02em; }
.entry-meta { margin-top: 8px; color: var(--muted); font-size: 14px; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2 { margin-top: 2.2em; padding-top: .15em; font-size: 22px; line-height: 1.45; }
.entry-content h3 { margin-top: 1.8em; font-size: 18px; line-height: 1.5; }
.entry-content p, .entry-content li { line-height: 1.8; }
.entry-content blockquote { margin: 1.5em 0; padding: 1px 0 1px 16px; border-left: 3px solid var(--primary); color: var(--text); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: 9px 10px; border: 1px solid var(--border); text-align: left; vertical-align: top; }

/* Home: retained as a presentation-only landing shell for this migration step. */
.km-home-hero { background: var(--surface); border-bottom: 1px solid var(--border); }
.km-home-hero__inner { max-width: var(--km-content); margin: 0 auto; padding: 72px 24px 64px; }
.km-eyebrow { margin: 0 0 18px; color: var(--primary); font-size: 12px; letter-spacing: .16em; font-weight: 700; }
.km-home-hero h1 { margin: 0; max-width: 840px; font-size: clamp(40px, 5.2vw, 60px); line-height: 1.18; letter-spacing: -.04em; font-weight: 650; }
.km-home-hero__lead { max-width: 720px; margin: 24px 0 28px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.km-home-search { max-width: 820px; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.km-home-search input {
  min-width: 0; height: 52px; padding: 0 16px; border: 1px solid var(--kcom-color-control-border); border-radius: 8px;
  background: var(--surface); color: var(--text); outline: none;
}
.km-home-search input:focus-visible { border-color: var(--primary); }
.km-home-search button {
  height: 52px; padding: 0 24px; border: 1px solid var(--primary); border-radius: 8px;
  background: var(--primary); color: var(--surface); font-weight: 650; cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease;
}
.km-home-search button:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.km-home-primary-link { display: inline-block; margin-top: 16px; font-weight: 650; text-decoration: none; }

.km-home-actions { background: var(--bg); }
.km-home-actions__inner {
  max-width: var(--km-content); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(3, 1fr);
  border-left: 1px solid var(--border); border-right: 1px solid var(--border);
}
.km-home-action { min-width: 0; padding: 36px 32px 40px; border-right: 1px solid var(--border); }
.km-home-action:last-child { border-right: 0; }
.km-home-action__number { margin-bottom: 24px; color: var(--primary); font-size: 13px; letter-spacing: .08em; font-variant-numeric: tabular-nums; font-weight: 700; }
.km-home-action h2 { margin: 0 0 12px; font-size: 22px; letter-spacing: -.02em; }
.km-home-action p { margin: 0 0 20px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.km-home-action a { font-size: 15px; font-weight: 650; text-decoration: none; }
.km-home-action__links { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; }

.km-home-learn { background: var(--surface); border-top: 1px solid var(--border); }
.km-home-learn__inner { max-width: var(--km-content); margin: 0 auto; padding: 56px 24px 80px; }
.km-section-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--border); }
.km-section-number { padding-top: 4px; color: var(--primary); font-size: 13px; font-weight: 700; }
.km-section-kicker { margin: 0 0 4px; color: var(--primary); font-size: 12px; letter-spacing: .14em; font-weight: 700; }
.km-section-heading h2 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
.km-home-original-content .entry-content > h1:first-child { display: none; }

.layout-with-sidebar {
  max-width: var(--km-content); margin: 0 auto; padding: 32px 24px 64px;
  display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 48px; align-items: start;
}
.layout-with-sidebar__main { min-width: 0; }
.site-sidebar { min-width: 0; }
.site-sidebar__sticky { position: sticky; top: 24px; }
.widget { margin: 0 0 24px; }
.widget img { display: block; }
.sidebar-widget__title { margin: 0 0 10px; font-size: 13px; color: var(--muted); font-weight: 650; }

/* Only explicit sponsor modules receive a Sponsor Card surface. */
.kakenhi-sponsor-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--km-radius); padding: 16px; }
.kakenhi-sponsor-card__label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 13px; letter-spacing: .06em; }
.kakenhi-sponsor-card__title { margin: 0 0 6px; color: var(--text); font-size: 16px; }
.kakenhi-sponsor-card__body { margin: 0; color: var(--muted); font-size: 14px; }
.kakenhi-sponsor-card__cta { display: inline-block; margin-top: 10px; font-weight: 600; text-decoration: none; }

.archive-list { display: grid; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--km-radius); overflow: hidden; }
.archive-item { background: var(--surface); padding: 18px 20px; }
.archive-item__title { margin: 0 0 5px; font-size: 18px; line-height: 1.45; }
.archive-item__title a { color: var(--text); text-decoration: none; }
.archive-item__title a:hover { color: var(--primary-hover); }
.archive-item__meta { color: var(--muted); font-size: 13px; }

.site-footer { border-top: 1px solid var(--border); background: var(--surface); }
.site-footer__inner {
  max-width: var(--km-content); margin: 0 auto; padding: 28px 24px; display: flex; gap: 24px;
  justify-content: space-between; align-items: center; color: var(--muted); font-size: 13px;
}
.site-footer__brand { color: var(--text); font-weight: 650; }
.site-footer__copy { margin-left: 8px; color: var(--muted); font-weight: 400; }
.footer-nav ul { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0; padding: 0; }
.footer-nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); text-decoration: none; }
.footer-nav a:hover { color: var(--text); }

.alignwide { margin-left: min(-8vw, -80px); margin-right: min(-8vw, -80px); max-width: none; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.wp-block-button__link,
.wp-element-button {
  background: var(--primary); color: var(--surface); border: 1px solid var(--primary); text-decoration: none;
}
.wp-block-button__link:hover,
.wp-element-button:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: var(--surface); }



/* v0.4.2-rc4 — Design System v1.1 harmonization / de-cardification / comparison-first UI. */
body.kakenhi-app-page :where(input, select, textarea, button) { font-size: 16px; }
body.kakenhi-app-page :where(small, .tlp-muted) { font-size: 14px; }

/* Keep The Lab workspace navigation light; public researcher search uses only global nav. */
.tlp-workspace-nav {
  max-width: var(--km-content) !important;
  margin: 0 auto 16px !important;
  padding: 0 0 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.tlp-workspace-nav__brand { font-size: 14px !important; white-space: nowrap; }
.tlp-workspace-nav__links { display: flex !important; gap: 4px !important; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.tlp-workspace-nav__links::-webkit-scrollbar { display: none; }
.tlp-workspace-nav__links a {
  min-height: 40px !important;
  padding: 8px 8px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 14px !important;
  white-space: nowrap;
}
.tlp-workspace-nav__links a:hover { color: var(--text) !important; background: var(--selected) !important; }
.km-route-the-lab-researchers .tlp-workspace-nav { display: none !important; }

/* The Lab sections: prefer whitespace + divider to nested rounded panels. */
.kakenhi-app-page .tlp-home { width: min(1040px, 100%); margin-inline: auto; }
.kakenhi-app-page .tlp-home__header {
  margin: 0 !important;
  padding: 20px 0 28px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.kakenhi-app-page .tlp-home__header h1 { font-size: 28px !important; line-height: 1.3 !important; }
.kakenhi-app-page .tlp-home__brand,
.kakenhi-app-page .tlp-eyebrow { color: var(--primary) !important; font-size: 13px !important; letter-spacing: .08em !important; font-weight: 700 !important; }
.kakenhi-app-page .tlp-panel {
  margin: 0 !important;
  padding: 24px 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.kakenhi-app-page .tlp-panel__heading { margin-bottom: 14px !important; }
.kakenhi-app-page .tlp-panel__heading h2,
.kakenhi-app-page .tlp-panel > h2 { font-size: 22px !important; line-height: 1.4 !important; }
.kakenhi-app-page .tlp-panel p { font-size: 16px !important; line-height: 1.75 !important; }
.kakenhi-app-page .tlp-button { min-height: 44px !important; border-radius: 6px !important; font-size: 14px !important; }
.kakenhi-app-page .tlp-button--primary { background: var(--primary) !important; border-color: var(--primary) !important; color: #fff !important; }

/* Funding: no sponsor rail on search/work screens; results are a flat list, not a stack of cards. */
.km-route-grant-search .grant-v2 {
  --text: var(--km-text);
  --muted: var(--km-muted);
  --line: var(--km-border);
  --soft: var(--km-bg);
  --accent: var(--km-blue);
  --radius: 6px;
}
.km-route-grant-search .grant-v2__sponsor-rail,
.km-route-grant-search .grant-v2-detail-workspace__sponsor { display: none !important; }
.km-route-grant-search .grant-v2__results-layout.has-sponsor { grid-template-columns: minmax(0,1fr) !important; }
.km-route-grant-search .grant-v2-detail-workspace__grid {
  grid-template-columns: minmax(0, 980px) !important;
  width: min(1040px, calc(100% - 48px)) !important;
  justify-content: center;
}
.km-route-grant-search .grant-v2__heading { font-size: 28px !important; line-height: 1.3 !important; }
.km-route-grant-search .grant-v2__eyebrow { color: var(--primary) !important; font-size: 13px !important; }
.km-route-grant-search .grant-v2__filterbar :where(summary, button, select),
.km-route-grant-search .grant-v2__results-head,
.km-route-grant-search .grant-v2__results-head select { font-size: 14px !important; }
.km-route-grant-search .grant-v2__results { display: block !important; }
.km-route-grant-search .grant-v2-card {
  margin: 0 !important;
  padding: 10px 2px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.km-route-grant-search .grant-v2-card:hover,
.km-route-grant-search .grant-v2-card:focus { background: #fff !important; border-bottom-color: var(--border) !important; box-shadow: none !important; }
.km-route-grant-search .grant-v2-card__title { font-size: 18px !important; }
.km-route-grant-search .grant-v2-card__tags { margin: 4px 0 !important; gap: 4px !important; }
.km-route-grant-search .grant-v2-card__summary {
  margin: 0 0 4px !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  -webkit-line-clamp: 1 !important;
}
.km-route-grant-search .grant-v2-card__bottomline {
  padding-top: 4px !important;
  gap: 6px 12px !important;
  font-size: 14px !important;
}
.km-route-grant-search .grant-v2-card__tags span { font-size: 12px !important; }

/* Submission-method chips are factual metadata, never placeholder/drop-zone styling. */
.km-route-grant-search .grant-v2-card__tags .km-submission-chip {
  border: 1px solid transparent !important;
  border-style: solid !important;
  background: var(--selected) !important;
  color: var(--primary-hover) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
.km-route-grant-search .grant-v2-card__tags .km-no-dashed-chip {
  border-style: solid !important;
}
.km-route-grant-search .grant-v2-card__detail {
  min-width: auto !important;
  min-height: 36px !important;
  margin-left: auto !important;
  padding: 0 4px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--primary-hover) !important;
  font-size: 14px !important;
}
.km-route-grant-search .grant-v2-card__detail:hover { color: var(--text) !important; text-decoration: underline; }

/* Tools Hub: larger labels without turning rows into cards. */
.km-route-tools .kth-header h1 { font-size: 28px !important; }
.km-route-tools .kth-eyebrow { color: var(--primary) !important; font-size: 12px !important; }
.km-route-tools .kth-description { font-size: 15px !important; }
.km-route-tools .kth-meta { font-size: 14px !important; }
.km-route-tools .kth-open { color: var(--primary) !important; }

@media (max-width: 920px) {
  .primary-nav { display: none; }
  .mobile-nav { display: block; }
}
@media (max-width: 860px) {
  .site-header__inner { min-height: 62px; padding: 0 16px; }
  .content-shell { padding: 24px 16px 48px; }
  .content-shell--app { padding-top: 16px; }
  .layout-with-sidebar { display: block; padding: 24px 16px 48px; }
  .site-sidebar { margin-top: 38px; }
  .site-sidebar__sticky { position: static; }
  .site-footer__inner { display: block; padding-inline: 16px; }
  .footer-nav { margin-top: 10px; }
  .alignwide { margin-left: 0; margin-right: 0; }
  .km-home-hero__inner { padding: 56px 20px 48px; }
  .km-home-hero h1 { font-size: clamp(38px, 10vw, 52px); }
  .km-home-actions__inner { grid-template-columns: 1fr; padding: 0 20px; border: 0; }
  .km-home-action { padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--border); }
  .km-home-action:last-child { border-bottom: 0; }
  .km-home-action__number { margin-bottom: 16px; }
  .km-home-learn__inner { padding: 44px 20px 60px; }
}
@media (max-width: 680px) {
  .mobile-nav summary { font-size: 15px; }
  .mobile-nav__panel a { font-size: 15px; }
  .kakenhi-app-page .tlp-workspace-nav { gap: 10px !important; margin-bottom: 10px !important; }
  .kakenhi-app-page .tlp-workspace-nav__brand { display: none; }
  .kakenhi-app-page .tlp-workspace-nav__links { width: 100%; }
  .kakenhi-app-page .tlp-workspace-nav__links a { font-size: 14px !important; padding-inline: 6px !important; }
  .kakenhi-app-page .tlp-home { width: 100%; }
  .kakenhi-app-page .tlp-home__header { padding: 10px 0 20px !important; }
  .kakenhi-app-page .tlp-home__header h1 { font-size: 28px !important; }
  .kakenhi-app-page .tlp-panel { padding: 20px 0 !important; }
  .kakenhi-app-page .tlp-panel__heading h2,
  .kakenhi-app-page .tlp-panel > h2 { font-size: 21px !important; }
  .km-route-grant-search .grant-v2__heading { font-size: 28px !important; }
  .km-route-grant-search .grant-v2-card { padding: 9px 0 !important; }
  .km-route-grant-search .grant-v2-card__summary { -webkit-line-clamp: 1 !important; }
  .km-route-grant-search .grant-v2-card__title { font-size: 17px !important; }
  .km-route-grant-search .grant-v2-detail-workspace__grid { width: 100% !important; }
  .km-route-tools .kth-header h1 { font-size: 28px !important; }
}

@media (max-width: 560px) {
  .site-brand__name { font-size: 21px; }
  .km-home-search { grid-template-columns: 1fr; }
  .km-home-search button { width: 100%; }
  .entry-title, .page-title { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* =========================================================
   v0.4.2-rc4 — Design System v1.1 shared component grammar
   ========================================================= */

/* Dense UI: 14px is the normal floor. 12px is reserved for captions/minor metadata. */
body.kakenhi-app-page :where(.entry-meta, .caption, [class*="__meta"], [class*="__label"]) {
  font-size: max(12px, 0.75rem);
}
body.kakenhi-app-page :where(button, select, input, textarea, summary) { min-height: 40px; }

/* Functional colors are semantic only. */
.is-success, .status-success, [data-status="success"] { color: var(--success) !important; }
.is-warning, .status-warning, [data-status="warning"] { color: var(--warning) !important; }
.is-danger, .status-danger, .is-error, .status-error, [data-status="danger"], [data-status="error"] { color: var(--danger) !important; }

/* Header: global navigation wins over a persistent tagline. */
.site-header__inner { max-width: var(--km-app); }
.site-brand__name { font-size: 21px; }

/* Funding: normal deadlines are neutral. Red remains available only to explicit urgent/danger states. */
.km-route-grant-search :where([class*="deadline"], [class*="closing-date"]) {
  color: var(--text) !important;
}
.km-route-grant-search :where(.is-urgent, .urgent, .is-danger, .danger, .is-overdue, .overdue)[class*="deadline"],
.km-route-grant-search :where(.is-urgent, .urgent, .is-danger, .danger, .is-overdue, .overdue) :where([class*="deadline"], [class*="closing-date"]) {
  color: var(--danger) !important;
}

/* Fixed information (submission method / eligibility etc.) should read as information, not a drop zone. */
.km-route-grant-search .km-fixed-info-block {
  margin-block: 18px !important;
  padding: 4px 0 4px 16px !important;
  border: 0 !important;
  border-left: 3px solid var(--primary) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.km-route-grant-search .km-fixed-info-block :where(h2, h3, h4, strong):first-child { margin-top: 0 !important; }

/* Funding density control: 3 modes, with old localStorage values mapped in JS. */
.km-density-control {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
  white-space: nowrap;
}
.km-density-control__label {
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
}
.km-density-control__select {
  min-height: 40px;
  padding: 7px 32px 7px 10px;
  border: 1px solid var(--kcom-color-control-border);
  border-radius: 6px;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 14px;
  line-height: 1.3;
}

/* List mode: comparison-first rendering generated from already-rendered plugin values. */
.km-comparison-header,
.km-comparison-row {
  grid-template-columns: minmax(320px, 1fr) minmax(100px, .18fr) minmax(88px, .13fr) minmax(112px, .16fr) minmax(88px, .12fr) 44px;
  column-gap: 16px;
  align-items: center;
}
.km-comparison-header {
  display: none;
  padding: 9px 8px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}
.km-comparison-header > :not(:first-child) { text-align: right; }
.km-comparison-header > :last-child { text-align: center; }

body.km-density-list .km-comparison-header { display: grid; }
body.km-density-list .grant-v2-card.km-comparison-ready {
  padding: 0 !important;
  min-width: 0;
}
body.km-density-list .grant-v2-card.km-comparison-ready > :not(.km-comparison-row) { display: none !important; }
body.km-density-list .grant-v2-card.km-comparison-ready > .km-comparison-row { display: grid; }
.km-comparison-row {
  display: none;
  min-height: 52px;
  padding: 8px;
  border-bottom: 1px solid var(--border);
  background: transparent;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.km-comparison-row:hover { background: var(--selected); }
.km-comparison-title {
  min-width: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.4;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.km-comparison-title:hover { color: var(--primary-hover); text-decoration: underline; }
.km-comparison-value { text-align: right; color: var(--text); white-space: nowrap; }
.km-comparison-value.is-empty { color: var(--muted); }
.km-comparison-favorite {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
}
.km-comparison-favorite :where(button, a) { min-width: 40px; min-height: 40px; background: transparent !important; box-shadow: none !important; }

/* Fallback when plugin markup does not expose enough structured values. */
body.km-density-list .grant-v2-card:not(.km-comparison-ready) {
  padding: 8px 2px !important;
}
body.km-density-list .grant-v2-card:not(.km-comparison-ready) :where(.grant-v2-card__tags, .grant-v2-card__summary, .grant-v2-card__badges, .grant-v2-card__description) {
  display: none !important;
}
body.km-density-list .grant-v2-card:not(.km-comparison-ready) :where(.grant-v2-card__bottomline, .grant-v2-card__meta, .grant-v2-card__footer) {
  font-size: 14px !important;
  font-variant-numeric: tabular-nums;
}
body.km-density-list .grant-v2-card.km-title-linked .grant-v2-card__detail { display: none !important; }

/* Standard: title + important metadata + one-line synopsis. */
body.km-density-standard .grant-v2-card { padding-block: 10px !important; }
body.km-density-standard .grant-v2-card__summary,
body.km-density-standard .grant-v2-card__description {
  display: -webkit-box !important;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.km-density-standard .grant-v2-card__bottomline,
body.km-density-standard .grant-v2-card__meta,
body.km-density-standard .grant-v2-card__footer { font-size: 14px !important; font-variant-numeric: tabular-nums; }

/* Detail: retain plugin content, but keep the same typography grammar. */
body.km-density-detail .grant-v2-card { padding-block: 14px !important; }
body.km-density-detail .grant-v2-card__summary,
body.km-density-detail .grant-v2-card__description,
body.km-density-detail .km-full-summary-block {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  white-space: pre-line !important;
  text-overflow: clip !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  margin-block: 8px !important;
}
body.km-density-detail .grant-v2-card__summary :where(p, div, span),
body.km-density-detail .grant-v2-card__description :where(p, div, span),
body.km-density-detail .km-full-summary-block :where(p, div, span) {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  white-space: pre-line !important;
  text-overflow: clip !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  max-width: none !important;
}

/* Standard/detail are reading modes: dashed borders are reserved for true drop/upload targets. */
body.km-density-standard .km-remove-dashed,
body.km-density-detail .km-remove-dashed {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.km-density-standard .km-remove-dashed.km-fixed-info-block,
body.km-density-detail .km-remove-dashed.km-fixed-info-block {
  border: 0 !important;
  border-left: 3px solid var(--primary) !important;
}

/* Researcher / The Lab: section + divider over nested card surfaces. */
.km-route-the-lab-researchers :where(.tlp-card, .tlp-researcher-card, [class*="researcher-card"]),
.kakenhi-app-page :where(.tlp-profile-card, .tlp-summary-card) {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.km-route-the-lab-researchers :where(.tlp-card, .tlp-researcher-card, [class*="researcher-card"]) {
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  background: transparent !important;
}

/* Tools: flat/grouped list grammar, teal only as a small accent. */
.km-route-tools :where(.kth-grid, .kth-list, .kth-tools-grid) { gap: 0 !important; }
.km-route-tools :where(.kth-card, .kth-item, .kth-tool, .kth-tool-card, .kth-tool-row) {
  position: relative;
  margin: 0 !important;
  padding: 16px 16px 16px 20px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.km-route-tools :where(.kth-card, .kth-item, .kth-tool, .kth-tool-card, .kth-tool-row)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  bottom: 16px;
  width: 3px;
  background: var(--primary);
}
.km-route-tools :where(.kth-card, .kth-item, .kth-tool, .kth-tool-card, .kth-tool-row):hover { background: var(--selected) !important; }
.km-route-tools .kth-open { color: var(--primary) !important; font-size: 14px !important; }

@media (max-width: 920px) {
  .site-header__inner { max-width: 100%; }
}

@media (max-width: 760px) {
  .content-shell--app { max-width: 100%; }
  .km-density-control { margin-left: 0; }
  .km-density-control__select { min-height: 42px; font-size: 16px; }
  .km-comparison-header { display: none !important; }
  body.km-density-list .grant-v2-card.km-comparison-ready > :not(.km-comparison-row) { display: none !important; }
  body.km-density-list .grant-v2-card.km-comparison-ready > .km-comparison-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    padding: 10px 0;
  }
  .km-comparison-title { grid-column: 1 / -1; font-size: 16px; white-space: normal; }
  .km-comparison-value { text-align: left; font-size: 14px; }
  .km-comparison-value::before { content: attr(data-label) " "; color: var(--muted); font-size: 12px; }
  .km-comparison-favorite { grid-column: 2; grid-row: 2 / span 2; align-self: center; }
}

/* =========================================================
   v0.4.2-rc9 — Content shell: Home / Guide / Tips
   Presentation only. Existing post bodies and shortcodes are preserved.
   ========================================================= */

/* Home: quiet product entry + two content systems. */
.km-content-home .site-main { background: var(--surface); }
.km-content-home .km-home-hero { background: var(--surface); border-bottom: 0; }
.km-content-home .km-home-hero__inner { max-width: var(--km-app); padding-top: 72px; padding-bottom: 52px; }
.km-content-home .km-home-hero h1 { max-width: 900px; font-size: clamp(38px, 5vw, 56px); font-weight: 650; }
.km-content-home .km-home-hero__lead { max-width: 820px; margin-top: 20px; font-size: 17px; }
.km-content-home .km-home-search { max-width: 860px; margin-top: 28px; }

.km-home-purpose { background: var(--bg); border-block: 1px solid var(--border); }
.km-home-purpose__inner {
  max-width: var(--km-app); margin: 0 auto; padding: 0 24px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
}
.km-purpose-link {
  min-width: 0; position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px;
  align-content: center; min-height: 118px; padding: 24px 28px 24px 0; margin-right: 28px;
  border-right: 1px solid var(--border); color: var(--text); text-decoration: none;
}
.km-purpose-link:last-child { border-right: 0; margin-right: 0; }
.km-purpose-link__title { font-size: 17px; font-weight: 700; letter-spacing: -.015em; }
.km-purpose-link__desc { grid-column: 1; color: var(--muted); font-size: 14px; line-height: 1.55; }
.km-purpose-link__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--primary); font-size: 18px; }
.km-purpose-link:hover .km-purpose-link__title { color: var(--primary-hover); }

.km-home-content-section { background: var(--surface); }
.km-home-content-section + .km-home-content-section { border-top: 1px solid var(--border); }
.km-home-content-section__inner,
.km-home-tools__inner { max-width: var(--km-app); margin: 0 auto; padding: 56px 24px 64px; }
.km-home-content-heading {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: end;
  margin-bottom: 24px;
}
.km-home-content-heading > div { max-width: 760px; }
.km-home-content-heading h2 { margin: 0; font-size: 28px; line-height: 1.35; letter-spacing: -.025em; }
.km-home-content-heading p:not(.km-content-kicker) { margin: 8px 0 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.km-content-kicker { margin: 0 0 6px; color: var(--primary); font-size: 12px; font-weight: 700; letter-spacing: .09em; }
.km-text-link { font-weight: 650; text-decoration: none; white-space: nowrap; }

.km-content-index { border-top: 1px solid var(--border); }
.km-content-index__row { border-bottom: 1px solid var(--border); }
.km-content-index__main {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center;
  min-height: 58px; padding: 13px 0; color: var(--text); text-decoration: none;
}
.km-content-index__main:hover { background: var(--selected); }
.km-content-index__title { min-width: 0; font-size: 16px; font-weight: 650; line-height: 1.5; }
.km-content-index__meta { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.km-content-index--tips .km-content-index__title { font-weight: 600; }

.km-home-tips { background: var(--bg); }
.km-home-tools { background: var(--surface); border-top: 1px solid var(--border); }
.km-home-content-heading--compact { margin-bottom: 20px; }
.km-home-tool-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.km-home-tool-links a {
  min-width: 0; padding: 18px 20px 18px 16px; border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border); color: var(--text); text-decoration: none;
}
.km-home-tool-links a:last-child { border-right: 0; }
.km-home-tool-links a:hover { background: var(--selected); }
.km-home-tool-links strong { display: block; margin-bottom: 4px; font-size: 16px; }
.km-home-tool-links span { display: block; color: var(--muted); font-size: 13px; line-height: 1.55; }

/* Reading system shared by Guide and Tips. */
.km-reading-layout { max-width: var(--km-reading); margin: 0 auto; padding: 48px 24px 80px; }
.km-reading-breadcrumb {
  display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 28px; color: var(--muted); font-size: 13px;
}
.km-reading-breadcrumb a { color: var(--muted); text-decoration: none; }
.km-reading-breadcrumb a:hover { color: var(--primary-hover); }
.km-reading-header { margin: 0 0 36px; }
.km-reading-header--landing { padding-bottom: 28px; border-bottom: 1px solid var(--border); }
.km-reading-kicker { margin: 0 0 10px; color: var(--primary); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.km-reading-header h1 { margin: 0; font-size: clamp(30px, 4vw, 40px); line-height: 1.35; letter-spacing: -.035em; font-weight: 700; }
.km-reading-header--landing h1 { font-size: 34px; }
.km-reading-lead { margin: 16px 0 0; color: var(--muted); font-size: 16px; line-height: 1.85; }
.km-reading-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; color: var(--muted); font-size: 13px; }
.km-reading-meta a { color: var(--muted); text-decoration: none; }
.km-reading-meta a:hover { color: var(--primary-hover); }
.km-reading-switch { display: flex; flex-wrap: wrap; gap: 0 18px; margin-top: 22px; font-size: 14px; }
.km-reading-switch a, .km-reading-switch span { padding: 6px 0; text-decoration: none; }
.km-reading-switch span[aria-current="page"] { color: var(--text); font-weight: 700; border-bottom: 2px solid var(--primary); }

.km-reading-body { font-size: 16px; line-height: 1.85; }
.km-reading-body > * { max-width: 100%; }
.km-reading-body h2 { margin: 2.5em 0 .75em; padding-top: 0; font-size: 24px; line-height: 1.5; letter-spacing: -.02em; }
.km-reading-body h3 { margin: 2em 0 .6em; font-size: 19px; line-height: 1.55; }
.km-reading-body p { margin: 1.05em 0; }
.km-reading-body ul, .km-reading-body ol { padding-left: 1.45em; }
.km-reading-body li + li { margin-top: .35em; }
.km-reading-body figure { margin: 28px 0; }
.km-reading-body figcaption { color: var(--muted); font-size: 12px; line-height: 1.6; }
.km-reading-body blockquote { margin: 26px 0; padding: 2px 0 2px 18px; border-left: 3px solid var(--primary); background: transparent; }
.km-reading-body hr { margin: 40px 0; border: 0; border-top: 1px solid var(--border); }
.km-reading-body table { font-size: 14px; }

/* Legacy Emanon blocks: preserve content, remove old card-soup presentation. */
.km-reading-body :where(.epb-box, .wp-block-emanon-premium-blocks-box, [class*="epb-box"]) {
  border-radius: 0 !important; box-shadow: none !important;
}
.km-reading-body :where(.wp-block-emanon-premium-blocks-linkcard, [class*="linkcard"]) {
  border-radius: 0 !important; box-shadow: none !important;
}
.km-reading-body :where(.wp-block-emanon-premium-blocks-linkcard, [class*="linkcard"]) a {
  text-decoration: none;
}
.km-reading-body .wp-block-columns { gap: 24px; }

/* Guide content favors long-form reading. */
.km-guide-content > :where(p, ul, ol, h2, h3, h4, blockquote) { max-width: var(--km-reading); }

/* Tips are shorter but use the same reading grammar. */
.km-tip-single .km-reading-header h1 { font-size: clamp(28px, 3.5vw, 36px); }
.km-tip-content { font-size: 16px; }
.km-tip-content h2 { font-size: 21px; }

.km-reading-next {
  margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--border);
}
.km-reading-next h2 { margin: 0; font-size: 22px; }
.km-reading-next > p:not(.km-content-kicker) { margin: 8px 0 12px; color: var(--muted); line-height: 1.7; }

.km-reading-related { margin-top: 56px; padding-top: 34px; border-top: 1px solid var(--border); }
.km-reading-section-title { margin-bottom: 18px; }
.km-reading-section-title h2 { margin: 0; font-size: 22px; }
.km-reading-index { border-top: 1px solid var(--border); }
.km-reading-index__row { border-bottom: 1px solid var(--border); }
.km-reading-index__row a {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center;
  min-height: 54px; padding: 12px 0; color: var(--text); text-decoration: none;
}
.km-reading-index__row a:hover { color: var(--primary-hover); }
.km-reading-index__row span { line-height: 1.5; }
.km-reading-index__row time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }

/* The existing 365 shortcodes stay in place; flatten their shell without touching gates/content. */
.km-tip-archive-content :where([class*="kakenhi-365"], [class*="daily-kakenhi"], [class*="tips-archive"]) {
  box-shadow: none !important;
}
.km-tip-archive-content :where([class*="card"], [class*="item"]) {
  border-radius: 0 !important;
}

.km-empty-state { color: var(--muted); }

@media (max-width: 980px) {
  .km-home-purpose__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .km-purpose-link:nth-child(2) { border-right: 0; margin-right: 0; }
  .km-purpose-link:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
}

@media (max-width: 760px) {
  .km-content-home .km-home-hero__inner { padding: 48px 20px 40px; }
  .km-content-home .km-home-hero h1 { font-size: 36px; }
  .km-content-home .km-home-hero__lead { font-size: 16px; }
  .km-home-search { grid-template-columns: 1fr; }
  .km-home-search button { width: 100%; }

  .km-home-purpose__inner { grid-template-columns: 1fr; padding: 0 20px; }
  .km-purpose-link { min-height: 92px; margin-right: 0; padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--border); }
  .km-purpose-link:last-child { border-bottom: 0; }

  .km-home-content-section__inner, .km-home-tools__inner { padding: 42px 20px 48px; }
  .km-home-content-heading { grid-template-columns: 1fr; gap: 12px; align-items: start; }
  .km-home-content-heading h2 { font-size: 24px; }
  .km-text-link { white-space: normal; }
  .km-content-index__main { grid-template-columns: 1fr; gap: 3px; }
  .km-content-index__meta { grid-row: 2; }
  .km-home-tool-links { grid-template-columns: 1fr; }
  .km-home-tool-links a { border-right: 0; }

  .km-reading-layout { padding: 32px 20px 60px; }
  .km-reading-header { margin-bottom: 28px; }
  .km-reading-header h1 { font-size: 30px; }
  .km-reading-header--landing h1 { font-size: 30px; }
  .km-reading-lead { font-size: 15px; }
  .km-reading-body h2 { font-size: 22px; }
  .km-reading-index__row a { grid-template-columns: 1fr; gap: 2px; }
  .km-reading-index__row time { grid-row: 2; }
}


/* =========================================================
   v0.4.2-rc10 — Wider reading shell + lightweight link cards
   Presentation only. Existing content and URLs are preserved.
   ========================================================= */

/* Guide index is an information-organizing page rather than a narrow essay. */
.km-guide-landing {
  max-width: var(--km-guide-landing);
}

/* Long-form guide articles can breathe more than the previous 760px shell. */
.km-guide-single {
  max-width: var(--km-reading);
}
.km-guide-single .km-reading-header,
.km-guide-single .km-reading-body,
.km-guide-single .km-reading-next,
.km-guide-single .km-reading-related {
  width: 100%;
  max-width: none;
}
.km-guide-content > :where(p, ul, ol, h2, h3, h4, blockquote) {
  max-width: none;
}

/* Tips stay slightly more compact than Guides, but use the same grammar. */
.km-tip-single,
.km-tips-landing {
  max-width: var(--km-tip-reading);
}

/* Legacy Emanon link cards: treat them as related-content rows, not product cards. */
.km-reading-body :where(.wp-block-emanon-premium-blocks-linkcard, .epb-linkcard, [class*="epb-linkcard"]) {
  width: 100% !important;
  max-width: none !important;
  margin: 20px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.km-reading-body :where(.epb-linkcard_link, [class*="epb-linkcard_link"]) {
  display: block !important;
  width: 100% !important;
  color: var(--text) !important;
  text-decoration: none !important;
}
.km-reading-body :where(.epb-linkcard_inner, [class*="epb-linkcard_inner"]) {
  width: 100% !important;
  min-height: 0 !important;
  padding: 16px 44px 16px 18px !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
  transition: background-color 150ms ease, border-color 150ms ease !important;
}
.km-reading-body :where(.epb-linkcard_link, [class*="epb-linkcard_link"]):hover :where(.epb-linkcard_inner, [class*="epb-linkcard_inner"]) {
  background: var(--selected) !important;
  border-color: #C9DCDD !important;
}
.km-reading-body :where(.epb-linkcard_label, [class*="epb-linkcard_label"]) {
  margin: 0 0 6px !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  letter-spacing: .04em !important;
  line-height: 1.5 !important;
}
.km-reading-body :where(.epb-linkcard_title, [class*="epb-linkcard_title"]) {
  color: var(--text) !important;
  font-size: 16px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  line-height: 1.55 !important;
}

/* Same-site WordPress embeds are link cards too. Let them use the reading column. */
.km-reading-body :where(.wp-block-embed, .wp-block-embed-com, .is-provider-com) {
  width: 100% !important;
  max-width: none !important;
  margin: 20px 0 !important;
}
.km-reading-body :where(.wp-block-embed__wrapper) {
  width: 100% !important;
  max-width: none !important;
}
.km-reading-body iframe.wp-embedded-content {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

@media (max-width: 980px) {
  .km-guide-landing,
  .km-guide-single,
  .km-tip-single,
  .km-tips-landing {
    max-width: 100%;
  }
}

@media (max-width: 760px) {
  .km-reading-body :where(.epb-linkcard_inner, [class*="epb-linkcard_inner"]) {
    padding: 14px 36px 14px 14px !important;
  }
}


/* =========================================================
   v0.4.2-rc11 — Legacy Guide pages: full-width related links
   Some Guide assets are WordPress Pages rather than Posts, so they do not
   receive .km-reading-body. Apply the same presentation grammar to ordinary
   public page content without changing content/data.
   ========================================================= */

/* Legacy Emanon link cards inside ordinary public pages. */
.content-shell:not(.content-shell--app) .entry-content :where(.wp-block-emanon-premium-blocks-linkcard, .epb-linkcard, [class*="epb-linkcard"]) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 20px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.content-shell:not(.content-shell--app) .entry-content :where(.epb-linkcard_link, [class*="epb-linkcard_link"]) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  color: var(--text) !important;
  text-decoration: none !important;
}
.content-shell:not(.content-shell--app) .entry-content :where(.epb-linkcard_inner, [class*="epb-linkcard_inner"]) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  padding: 16px 44px 16px 18px !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}

/* Same-site WordPress oEmbed cards inside ordinary public pages.
   The width restriction can live on figure, wrapper, or iframe, so reset all. */
.content-shell:not(.content-shell--app) .entry-content :where(
  figure.wp-block-embed,
  .wp-block-embed,
  .wp-block-embed-com,
  .is-provider-com,
  .wp-block-embed__wrapper
) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.content-shell:not(.content-shell--app) .entry-content :where(
  iframe.wp-embedded-content,
  .wp-block-embed__wrapper > iframe,
  iframe[src*="kakenhi.com/"],
  iframe[src*="xn--w8yz0bc56a.com/"]
) {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}

/* =========================================================
   v0.4.2-rc12 — Curated Guide / Tips content architecture
   Relations/settings live in kakenhi-content-curation; theme renders only.
   ========================================================= */

.km-content-index__excerpt {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
  font-weight: 400;
}

/* Curated Guide Hub */
.km-guide-landing--curated { max-width: 1080px; }
.km-guide-sections { border-top: 1px solid var(--border); }
.km-guide-section { padding: 42px 0 48px; border-bottom: 1px solid var(--border); scroll-margin-top: 24px; }
.km-guide-section__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin-bottom: 18px;
}
.km-guide-section__header h2 { margin: 0; font-size: 26px; line-height: 1.35; letter-spacing: -.025em; }
.km-guide-section__header p:not(.km-content-kicker) { max-width: 760px; margin: 8px 0 0; color: var(--muted); line-height: 1.75; }
.km-guide-section__parent {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 58px;
  padding: 12px 0;
  border-block: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
}
.km-guide-section__parent:hover { color: var(--primary-hover); background: var(--selected); }
.km-guide-section__parent-label { color: var(--primary); font-size: 12px; font-weight: 700; white-space: nowrap; }
.km-guide-section__parent strong { font-size: 16px; line-height: 1.55; }
.km-guide-section__articles { border-bottom: 1px solid var(--border); }
.km-guide-section__articles article + article { border-top: 1px solid var(--border); }
.km-guide-section__articles a {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 20px;
  min-height: 52px;
  align-items: center;
  padding: 11px 0 11px 28px;
  color: var(--text);
  text-decoration: none;
}
.km-guide-section__articles a:hover { color: var(--primary-hover); }
.km-guide-section__articles time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.km-guide-section__tips { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border); }
.km-guide-section__tips-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; align-items: end; margin-bottom: 12px; }
.km-guide-section__tips-head h3 { margin: 0; font-size: 18px; }
.km-featured-tips { border-top: 1px solid var(--border); }
.km-featured-tips article { border-bottom: 1px solid var(--border); }
.km-featured-tips a {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
  align-items: center;
  min-height: 50px;
  padding: 10px 0;
  color: var(--text);
  text-decoration: none;
}
.km-featured-tips a:hover { color: var(--primary-hover); background: var(--selected); }
.km-featured-tips small { color: var(--muted); font-size: 12px; }

/* Tips Hub: topic-first, while Daily and date archive remain visible. */
.km-tips-hub-section { margin-top: 52px; padding-top: 30px; border-top: 1px solid var(--border); }
.km-tips-hub-section:first-of-type { margin-top: 0; }
.km-topic-index { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border-top: 1px solid var(--border); }
.km-topic-index a {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  min-height: 52px;
  align-items: center;
  padding: 11px 14px 11px 0;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
}
.km-topic-index a:nth-child(odd) { border-right: 1px solid var(--border); margin-right: 18px; }
.km-topic-index a:hover { color: var(--primary-hover); }
.km-topic-index small { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.km-tips-hub-shortcode,
.km-tip-archive-content { width: 100%; max-width: none; }

/* Daily Tip sidebar: same content, new quiet shell. */
.km-reading-layout--with-daily { max-width: 1240px; }
.km-reading-grid { display: grid; grid-template-columns: minmax(0, 900px) 280px; gap: 48px; align-items: start; }
.km-tip-single.km-reading-layout--with-daily .km-reading-grid { grid-template-columns: minmax(0, 860px) 280px; }
.km-reading-grid__main { min-width: 0; }
.km-reading-grid__aside { min-width: 0; }
.km-reading-grid__aside.is-sticky { position: sticky; top: 24px; }
.km-daily-tip { padding: 16px 0 16px 16px; border-left: 3px solid var(--primary); }
.km-daily-tip__title { margin: 0 0 12px; font-size: 17px; line-height: 1.45; }
.km-daily-tip__content { font-size: 14px; line-height: 1.7; }
.km-daily-tip__content > :first-child { margin-top: 0; }
.km-daily-tip__more { display: inline-block; margin-top: 12px; font-size: 13px; }
.km-daily-tip :where([class*="card"], [class*="box"], [class*="panel"]) { box-shadow: none !important; }
.km-daily-tip-mobile { display: none; }

@media (max-width: 1040px) {
  .km-reading-layout--with-daily { max-width: 100%; }
  .km-reading-grid { grid-template-columns: minmax(0,1fr) 250px; gap: 32px; }
  .km-tip-single.km-reading-layout--with-daily .km-reading-grid { grid-template-columns: minmax(0,1fr) 250px; }
}

@media (max-width: 820px) {
  .km-guide-section__header,
  .km-guide-section__tips-head { grid-template-columns: 1fr; gap: 10px; align-items: start; }
  .km-guide-section__articles a { padding-left: 14px; }
  .km-topic-index { grid-template-columns: 1fr; }
  .km-topic-index a:nth-child(odd) { border-right: 0; margin-right: 0; }
  .km-reading-grid { display: block; }
  .km-reading-grid__aside { display: none; }
  .km-daily-tip-mobile { display: block; margin: 28px 0; }
  .km-daily-tip-mobile--intro { margin-top: 0; }
}

@media (max-width: 600px) {
  .km-guide-section { padding: 32px 0 36px; }
  .km-guide-section__header h2 { font-size: 23px; }
  .km-guide-section__parent { grid-template-columns: 1fr auto; }
  .km-guide-section__parent-label { grid-column: 1 / -1; }
  .km-guide-section__articles a,
  .km-featured-tips a { grid-template-columns: 1fr; gap: 2px; }
  .km-guide-section__articles time,
  .km-featured-tips small { grid-row: 2; }
}
