/* Reusable structures: scoped to explicit author-selected patterns. */
:is(.jt-reading-prep,.jt-reading-ledger,.jt-reading-definitions,.jt-reading-observations,.jt-reading-comparison){box-sizing:border-box;max-width:100%;min-width:0}
:is(.jt-reading-prep,.jt-reading-definitions,.jt-reading-observations,.jt-reading-comparison){margin-block:32px;color:#263b35}
:is(.jt-reading-prep,.jt-reading-prep > .wp-block-group__inner-container) > ul,
:is(.jt-reading-observations,.jt-reading-observations > .wp-block-group__inner-container) > ul,
ul.jt-reading-observations{list-style:none!important;padding:0!important;margin-block:20px 28px!important}
:is(.jt-reading-prep,.jt-reading-prep > .wp-block-group__inner-container) > ul > li,
:is(.jt-reading-observations,.jt-reading-observations > .wp-block-group__inner-container) > ul > li,
ul.jt-reading-observations > li{position:relative;box-sizing:border-box;padding:14px 0 14px 24px!important;margin:0!important;border-bottom:1px solid #d8d3c9;line-height:1.65}
:is(.jt-reading-prep,.jt-reading-prep > .wp-block-group__inner-container) > ul > li::before,
:is(.jt-reading-observations,.jt-reading-observations > .wp-block-group__inner-container) > ul > li::before,
ul.jt-reading-observations > li::before{content:'';position:absolute;left:0;top:24px;width:6px;height:6px;border-radius:50%;background:#42685a}
dl.jt-reading-ledger{margin-block:24px 32px;border-top:1px solid #a8b5a8}
.jt-reading-ledger > div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;padding-block:18px;border-bottom:1px solid #d8d3c9;min-width:0}
.jt-reading-ledger dt{font-weight:600;line-height:1.5;margin:0;color:#213d33}
.jt-reading-ledger dd{margin:0;line-height:1.65;min-width:0}
.jt-reading-definitions .jt-reading-definition{--jt-sys-fs-h3:17px;--jt-sys-lh-h3:1.5;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;border-bottom:1px solid #d8d3c9;padding-block:18px;margin:0}
/* Definition terms are row labels, not the article's display-heading ladder. */
body.single-post .entry-content .jt-reading-definitions .jt-reading-definition h3,
:is(.entry-content,.editor-styles-wrapper) .jt-reading-definitions .jt-reading-definition h3{font-family:inherit!important;font-size:17px!important;font-weight:600!important;line-height:1.5!important;margin:0!important;color:#213d33}
.jt-reading-definitions .jt-reading-definition p{margin:0!important;min-width:0}
ul.jt-reading-terms{list-style:none!important;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:24px 0!important;padding:0!important;border-block:1px solid #a8b5a8}
ul.jt-reading-terms > li{box-sizing:border-box;min-width:0;padding:20px 16px!important;margin:0!important;border-inline-start:1px solid #d8d3c9;font-weight:600;line-height:1.55;color:#213d33}
ul.jt-reading-terms > li:first-child{border-inline-start:0;padding-inline-start:0!important}
.jt-reading-comparison .wp-block-table{overflow-x:auto;margin:20px 0;max-width:100%}
.jt-reading-comparison table{width:100%;border-collapse:collapse;table-layout:fixed}
.jt-reading-comparison :is(th,td){padding:16px;text-align:left;vertical-align:top;border:0;border-bottom:1px solid #d8d3c9;overflow-wrap:anywhere}
.jt-reading-comparison th{background:#eaf0e8;color:#213d33}
/* Unclassified/native editor tables must fit the pattern's own column. Once
   WordPress classifies a post table, the existing accessible card system owns
   its phone layout and header relationships; these rules deliberately stop. */
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison .wp-block-table table:not(.jt-auto-card-table){display:table;width:100%;min-width:0;max-width:100%;table-layout:fixed;white-space:normal}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison table:not(.jt-auto-card-table) > :is(thead,tbody,tfoot){width:auto;min-width:0;max-width:100%}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison table:not(.jt-auto-card-table) > thead{display:table-header-group}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison table:not(.jt-auto-card-table) > tbody{display:table-row-group}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison table:not(.jt-auto-card-table) > tfoot{display:table-footer-group}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-comparison table:not(.jt-auto-card-table) :is(th,td){min-width:0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){
 .jt-reading-ledger > div,.jt-reading-definitions .jt-reading-definition{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:18px}
 ul.jt-reading-terms{grid-template-columns:minmax(0,1fr)}
 ul.jt-reading-terms > li{border-inline-start:0;border-top:1px solid #d8d3c9;padding:16px 0!important}
 ul.jt-reading-terms > li:first-child{border-top:0}
 .jt-reading-comparison :is(th,td){padding:12px 10px}
}

/* Classic themes restore a native Group inner container at render time. */
.jt-reading-definition > .wp-block-group__inner-container{grid-column:1/-1;display:grid;grid-template-columns:inherit;gap:inherit;min-width:0}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-prep,.jt-reading-comparison,.jt-reading-definitions,.jt-reading-observations,.jt-reading-terms,.jt-reading-ledger){max-inline-size:min(704px,100%,calc(100vw - 40px));margin-inline:auto}
/* Semantic reading wrappers for posts, pages and treatments. Load this through
   reading-patterns.css only when these classes occur in the rendered content.
   These modules own their box; do not nest existing aids, CTAs or tools inside. */
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-section,.jt-reading-sources,.jt-reading-faq) {
  box-sizing:border-box;
  max-inline-size:min(704px,100%,calc(100vw - 40px));
  margin-inline:auto;
}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-section + .jt-reading-section {
  margin-block-start:clamp(32px,4vw,48px);
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-section,.jt-reading-section > .wp-block-group__inner-container) > p {
  font-size:17px;
  line-height:1.65;
  margin-block:0 24px;
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-section,.jt-reading-section > .wp-block-group__inner-container) > :is(ul,ol) > li {
  font-size:17px;
  line-height:1.65;
}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-sources {
  --jt-sys-fs-h2:26px;
  --jt-sys-lh-h2:1.3;
  margin-block-start:40px;
  padding-block-start:24px;
  border-block-start:1px solid #d8d3c9;
}
/* Full explicit semantic scope meets the legacy article heading ladder. */
body.single-post :is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-sources,.jt-reading-sources > .wp-block-group__inner-container) > h2:first-child,
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-sources,.jt-reading-sources > .wp-block-group__inner-container) > h2:first-child {
  font-size:26px!important;
  line-height:1.3!important;
  margin-block-end:12px!important;
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-sources,.jt-reading-sources > .wp-block-group__inner-container) > p {
  font-size:16px;
  line-height:1.7;
}
:is(.entry-content,.editor-styles-wrapper) .jt-reading-faq {
  margin-block-start:40px;
  border-bottom:1px solid #d8d3c9;
}
body :is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details {
  border-top:1px solid #d8d3c9;
  border-bottom:0;
  padding-block:0;
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details > summary {
  padding-block:16px;
  min-height:52px;
  display:flex;
  align-items:center;
  list-style:none;
  font-size:17px;
  line-height:1.35;
  font-weight:700;
  cursor:pointer;
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details > summary::-webkit-details-marker {display:none}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details > summary:focus-visible {outline:2px solid currentColor;outline-offset:3px}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details[open] {padding-bottom:16px}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details > summary::after {
  content:'+';
  margin-inline-start:auto;
  padding-inline-start:16px;
  flex:none;
  font-size:1.4em;
  line-height:1;
}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details[open] > summary::after {content:'−'}
:is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-faq,.jt-reading-faq > .wp-block-group__inner-container) > details > :is(p,ul,ol) {
  font-size:17px;
  line-height:1.65;
  margin-block:0 16px;
}
@media(max-width:767px) {
  :is(.entry-content,.editor-styles-wrapper) .jt-reading-sources {--jt-sys-fs-h2:22px}
  body.single-post :is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-sources,.jt-reading-sources > .wp-block-group__inner-container) > h2:first-child,
  :is(.entry-content,.editor-styles-wrapper) :is(.jt-reading-sources,.jt-reading-sources > .wp-block-group__inner-container) > h2:first-child {font-size:22px!important}
}

/* These lists already draw their own marker; suppress the inherited native disc. */
body :is(.entry-content,.editor-styles-wrapper) :is(ul.jt-reading-observations,.jt-reading-observations > ul,.jt-reading-observations > .wp-block-group__inner-container > ul,.jt-reading-prep > ul,.jt-reading-prep > .wp-block-group__inner-container > ul) > li { list-style-type:none !important; }
