/* JTK structure (stage 3). Loaded after theme.css. Rollback: delete mu-plugins/jtk-structure/. */
/* Breadcrumb */
.jtk-breadcrumb { margin: 0 0 0.9rem; font-size: 0.86rem; color: var(--jtk-muted); }
.jtk-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0; padding: 0; list-style: none; }
.jtk-breadcrumb li + li::before { content: "›"; margin-right: 0.5rem; color: var(--jtk-muted); }
.jtk-breadcrumb a { color: var(--jtk-blue); font-weight: 700; text-decoration: none; }
.jtk-breadcrumb a:hover { text-decoration: underline; }
.jtk-breadcrumb [aria-current] span { display: inline-block; max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
/* Answer box */
.jtk-answer-box { margin: 0 0 1.4rem; padding: 1.1rem 1.25rem; border: 1px solid var(--jtk-rule); border-left: 6px solid var(--jtk-blue); background: #fffdf8; }
.jtk-answer-box > p { margin: 0.35rem 0 0; }
.jtk-answer-box > p:first-child { margin-top: 0; }
.jtk-answer-box .jtk-answer-box__label { color: var(--jtk-blue); font-size: 0.78rem !important; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.jtk-answer-box ul { margin: 0.5rem 0 0; padding-left: 1.2rem; }
.jtk-answer-box li { margin: 0.2rem 0; }
/* Tool / checklist CTA (deliberately unlike an ad: outlined, check icon, left-aligned) */
.jtk-tool-cta { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 0.9rem; align-items: center; margin: 0 0 1.6rem; padding: 0.95rem 1.1rem; border: 2px solid var(--jtk-ink); background: var(--jtk-paper); }
.jtk-tool-cta__icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--jtk-ink); color: #fff; font-weight: 800; }
.jtk-tool-cta strong { display: block; font-size: 1.02rem; }
.jtk-tool-cta span:not(.jtk-tool-cta__icon) { display: block; color: var(--jtk-muted); font-size: 0.92rem; line-height: 1.4; }
.jtk-tool-cta a { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1rem; background: var(--jtk-ink); color: #fff; font-weight: 800; text-decoration: none; white-space: nowrap; }
.jtk-tool-cta a:hover { background: var(--jtk-blue); }
/* TOC */
.jtk-toc { margin: 0 0 2rem; }
.jtk-toc__title { margin: 0 0 0.5rem !important; font-family: var(--jtk-display); font-size: 1.15rem !important; font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase; }
.jtk-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: jtk-toc; }
.jtk-toc li { counter-increment: jtk-toc; border-top: 1px solid var(--jtk-soft-rule, rgba(0,0,0,.12)); }
.jtk-toc a { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: 0.4rem; padding: 0.55rem 0; color: var(--jtk-ink); font-size: 0.95rem; line-height: 1.35; text-decoration: none; }
.jtk-toc a::before { content: counter(jtk-toc, decimal-leading-zero); color: var(--jtk-blue); font-family: var(--jtk-display); font-weight: 600; }
.jtk-toc a:hover { color: var(--jtk-blue); }
.jtk-toc--inline { padding: 1rem 1.1rem 0.6rem; background: var(--jtk-paper-deep); }
.jtk-article-rail .jtk-toc { margin: 0; }
.jtk-article-rail:not(:has(.jtk-toc)) { padding: 0; border: 0; background: none; }
@media (min-width: 1121px) { .jtk-toc--inline { display: none; } .jtk-legacy-document .jtk-toc--inline { display: block; } }
@media (max-width: 1120px) { .jtk-article-rail { display: none; } }
/* Next in hub */
.jtk-hub-nav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1px; margin: 3rem 0 0; border: 1px solid var(--jtk-rule); background: var(--jtk-rule); }
.jtk-hub-nav a { display: flex; flex-direction: column; justify-content: center; gap: 0.2rem; min-height: 72px; padding: 1rem 1.15rem; background: #fffdf8; color: var(--jtk-ink); font-weight: 700; text-decoration: none; }
.jtk-hub-nav a:hover { background: var(--jtk-paper); }
.jtk-hub-nav__next { text-align: right; }
.jtk-hub-nav__next small { color: var(--jtk-red); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
@media (max-width: 650px) { .jtk-hub-nav { grid-template-columns: 1fr; } .jtk-hub-nav__next { text-align: left; } }
/* Hub pages */
.jtk-hub-page .jtk-breadcrumb { margin-bottom: 0.6rem; }
.jtk-hub-list { margin: 1rem 0 2rem; padding: 0; list-style: none; border-top: 1px solid var(--jtk-rule); }
.jtk-hub-list li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 0.8rem; padding: 1rem 0; border-bottom: 1px solid var(--jtk-rule); }
.jtk-hub-list__n { color: var(--jtk-red); font-family: var(--jtk-display); font-size: 1.6rem; line-height: 1; }
.jtk-hub-list h3 { margin: 0 0 0.3rem !important; font-size: 1.2rem !important; line-height: 1.3; text-transform: none !important; font-family: inherit !important; }
.jtk-hub-list h3 a { color: var(--jtk-ink); }
.jtk-hub-list p { margin: 0; color: var(--jtk-muted); font-size: 0.95rem; }
.jtk-hub-empty { padding: 1rem 1.1rem; border: 1px dashed var(--jtk-rule); background: #fffdf8; }
.jtk-hub-page .jtk-hub-upcoming li { color: var(--jtk-muted); }
.jtk-hub-page h2 { font-size: clamp(1.5rem, 1rem + 1.6vw, 2.1rem) !important; line-height: 1.15 !important; text-transform: none !important; }
/* Home hub index */
.jtk-home-hubs { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.jtk-home-hub h3 a { color: inherit; text-decoration: none; }
.jtk-home-hub h3 a:hover { text-decoration: underline; }
.jtk-home-hub__open { font-weight: 800; }
.jtk-chip-season { border-color: var(--jtk-gold) !important; background: rgb(240 189 94 / 18%) !important; }
@media (max-width: 1120px) { .jtk-home-hubs { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 820px) { .jtk-home-hubs { grid-template-columns: 1fr !important; } }
/* Header nav with six hubs */
@media (max-width: 1240px) { .jtk-desktop-nav { gap: 1.1rem; } .jtk-desktop-nav a { font-size: 0.92rem; } }
@media (max-width: 1120px) { .jtk-desktop-nav { gap: 0.8rem; } .jtk-desktop-nav a { font-size: 0.84rem; } }
/* Footer v3 */
@media (min-width: 821px) { .jtk-site-footer--v3 { grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.6fr); } }
.jtk-site-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem 1.5rem; }
.jtk-site-footer--v3 .jtk-site-footer__cols nav { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0.45rem; }
.jtk-site-footer__h { margin: 0 0 0.25rem !important; color: var(--jtk-ink); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.jtk-site-footer--v3 .jtk-site-footer__cols a { text-decoration: none; font-size: 0.88rem; }
.jtk-site-footer--v3 .jtk-site-footer__cols a:hover { color: var(--jtk-ink); text-decoration: underline; }
.jtk-site-footer--v3 .jtk-site-footer__meta { grid-column: 1 / -1; align-items: flex-start; text-align: left; padding-top: 1rem; border-top: 1px solid var(--jtk-soft-rule, rgba(0,0,0,.12)); }
@media (max-width: 1120px) { .jtk-site-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .jtk-site-footer__cols { grid-template-columns: 1fr 1fr; gap: 1rem; } }
/* Ad slot containers (only rendered when enabled or previewed) */
.jtk-ad { position: relative; display: block; clear: both; margin: 2rem auto; min-height: 300px; text-align: center; }
.jtk-ad--art-end { min-height: 420px; }
.jtk-ad--home-1 { width: min(100% - 2 * var(--jtk-page-pad, 1rem), 1000px); }
.jtk-ad__label { display: block; margin-bottom: 0.3rem; color: var(--jtk-muted); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; }
.jtk-ad.is-preview { display: grid; place-items: center; background: repeating-linear-gradient(45deg, #eee7d8, #eee7d8 10px, #f5f0e6 10px, #f5f0e6 20px); outline: 1px dashed var(--jtk-muted); }
/* Diagrams */
.jtk-figure { margin: 1.6rem 0 2rem; }
.jtk-figure svg, .jtk-figure img { display: block; width: 100%; height: auto; }
.jtk-figure figcaption { margin-top: 0.5rem; color: var(--jtk-muted); font-size: 0.85rem; line-height: 1.45; }
/* Sources */
.jtk-sources { font-size: 0.92rem; }
.jtk-sources li { margin: 0.3rem 0; }
@media (max-width: 520px) {
  .jtk-tool-cta { grid-template-columns: auto minmax(0, 1fr); }
  .jtk-tool-cta a { grid-column: 1 / -1; justify-content: center; }
}
/* Fix: guide-purpose band overflowed the 760px article column at 1280px (3 fixed min columns). */
@media (min-width: 821px) {
	.jtk-article-grid .jtk-guide-purpose { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
	.jtk-article-grid .jtk-guide-purpose > p:first-child { grid-column: 1 / -1; }
	.jtk-article-grid .jtk-guide-purpose h2 { font-size: clamp(2rem, 3vw, 3rem) !important; }
}

/* Checklist block (posts) */
.jtk-checklist { margin: 1rem 0 2rem; padding: 1.1rem 1.25rem 0.6rem; border: 2px solid var(--jtk-green); background: #fffdf8; }
.jtk-checklist > p { margin: 0.4rem 0 0.2rem; color: var(--jtk-green); font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; }
.jtk-checklist ul { margin: 0 0 0.8rem; padding: 0; list-style: none; }
.jtk-checklist li { margin: 0.35rem 0; padding-left: 0.1rem; line-height: 1.45; }
@media print { .jtk-site-header, .jtk-site-footer, .jtk-related-guides, .jtk-hub-nav, .jtk-analytics-consent { display: none !important; } }
/* Fix: purpose checkpoint squeezed its right column inside the 760px article column. */
@media (min-width: 821px) {
	.jtk-article-grid .jtk-purpose-checkpoint { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
	.jtk-article-grid .jtk-purpose-checkpoint__copy > strong { font-size: clamp(2rem, 3vw, 3rem); }
}
