/* Article reading roles. Preserve approved headers, diagrams, media and legacy
 * grids; this layer only coordinates named text/section roles on posts.
 * WhatsApp identity and floating placement remain in whatsapp-cta.css. */
body.single-post {
  --jt-reading-support: 14px;
  --jt-reading-label: 12px;
  --jt-reading-body: 17px;
  --jt-reading-section-gap: clamp(32px, 4vw, 48px);
}
/* A standalone section title/short introduction and its following B7 questions
 * form one reading group, rather than two independently padded sections. */
body.single-post .entry-content > [data-jt-reading-role="intro"]:has(+ .bk7) {
  padding-block-end: 0;
}
body.single-post .entry-content > :is([data-jt-reading-role="intro"], h2.bk0, h3.bk0) + .bk7 {
  padding-block-start: 16px;
}
/* Plain prose and its following question introduction share one boundary.
 * Removing the two facing pads lets the existing final prose margin collapse
 * with the canonical section gap. Authored spacers and panels never opt in. */
body.single-post .entry-content > [data-jt-reading-role="prose"]:has(+ [data-jt-reading-role="intro"] + .bk7) {
  padding-block-end: 0;
}
body.single-post .entry-content > [data-jt-reading-role="prose"] + [data-jt-reading-role="intro"]:has(+ .bk7) {
  padding-block-start: 0;
  margin-block-start: var(--jt-reading-section-gap);
}
/* Later explanations stay in the reading flow rather than restart the article.
 * Their authored opening-panel classes and inline presentation are retired. */
body.single-post .entry-content .jt-reading-explanation {
  box-sizing: border-box;
  width: min(704px, calc(100% - 40px));
  margin: var(--jt-reading-section-gap) auto;
  padding-block: 24px 0;
  border-block-start: 1px solid var(--jt-brand-line, #c7bdb5);
}
body.single-post .entry-content .jt-reading-explanation > h3 {
  font-size: clamp(24px, 2.1vw, 30px);
  line-height: 1.2;
  margin-block: 8px 16px;
}
body.single-post .entry-content .jt-reading-explanation > p {
  font-size: var(--jt-reading-body);
  line-height: 1.65;
}
body.single-post .entry-content .jt-reading-explanation > .jt-reading-explanation__label {
  font-size: var(--jt-reading-support);
  line-height: 1.5;
  margin: 0;
  text-transform: none;
}
body.single-post .entry-content .jt-reading-explanation__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 44px;
  max-width: 100%;
  padding: 12px 18px;
  border: 1px solid #1e3a2f;
  background: #1e3a2f;
  color: #f1ece7;
  font-size: 16px;
  line-height: 1.4;
  text-decoration: none;
  text-align: center;
}
body.single-post .entry-content .jt-reading-explanation__action:is(:hover,:focus-visible) {
  background: #31453c;
  color: #fff;
  outline: 2px solid #1e3a2f;
  outline-offset: 3px;
}
/* Supporting prose must remain readable instead of becoming fine print. */
body.single-post .entry-content :is(.jt-conversion.jt-conversion .jt-conversion__caption,
  .jt-owned-authority-media__figure > figcaption,
  .jt-tool .jt-tool__help, .jt-tool .jt-tool__disclaimer,
  .jt-reader-notes .jt-reader-notes__step-note) {
  font-size: var(--jt-reading-support) !important;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
body.single-post .entry-content :is(.jt-conversion.jt-conversion .jt-conversion__kicker,
  .jt-reader-notes .jt-reader-notes__step-label,
  .jt-authority-end.jt-authority-end .jt-authority-end__access dt) {
  font-size: var(--jt-reading-label) !important;
  line-height: 1.4 !important;
}
body.single-post .entry-content .jt-tool .jt-tool__intro {
  font-size: var(--jt-reading-body) !important;
  line-height: 1.6 !important;
}
body.single-post .entry-content .jt-next20-faq-row > p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
/* These paragraphs describe the photograph, rather than act as an eyebrow. */
body.single-post .entry-content .jt-owned-authority-media__figure > figcaption {
  padding-block: 12px !important;
}
/* Keep this authored routine's controls, numbers and prose on one reading rail.
 * Narrow screens retain their current full-width flow. */
@media (min-width: 768px) {
  body.single-post .entry-content #skincare-routine-app > .routine-container {
    width: min(var(--jt-ship-text-rail), 100%);
    margin-inline: auto;
  }
}
/* A text-only consultation must not combine a narrow reading wrapper with
 * another side-heading grid: that left only 310px for desktop prose. */
body.single-post .entry-content .jt-next12 .jt-next12__consult.jt-reading-prep {
  display: block !important;
  box-sizing: border-box;
  width: min(704px, 100%);
  max-width: 100%;
  margin-inline: auto !important;
  margin-block: var(--jt-reading-section-gap) !important;
}
body.single-post .entry-content .jt-next12 .jt-next12__consult.jt-reading-prep > :is(h2,p,ul,ol) {
  width: auto !important;
  max-width: 100% !important;
  grid-column: auto !important;
  text-align: left;
}
body.single-post .entry-content .jt-next12 .jt-next12__consult.jt-reading-prep > h2 {
  margin-block: 0 16px !important;
}
body.single-post .entry-content .jt-next12 .jt-next12__consult.jt-reading-prep > p {
  font-size: var(--jt-reading-body) !important;
  line-height: 1.65 !important;
  margin-block: 0 24px !important;
}
/* Group educational text tightly; leave a deliberate pause before a new
 * standalone reading section. Do not change card/table/interactive children. */
body.single-post .entry-content > .jt-reading-section + .jt-reading-section {
  margin-block-start: var(--jt-reading-section-gap) !important;
}
body.single-post .entry-content .jt-reading-section > :is(h2,h3) + p {
  margin-block-start: 16px;
}
/* Preserved CTA notes use the same text rail as their neighbouring prose. */
body.single-post .entry-content .jt-conversion-note.jt-conversion-note div:has(> .jt-conversion-note__link) {
  box-sizing: border-box;
  width: min(704px, 100%);
  max-width: 100%;
  margin-inline: auto !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
/* A long word at text zoom must not impose the paragraph's intrinsic width
 * on this wrapping note. Keep emergency wrapping inside its prose only. */
body.single-post .entry-content .jt-conversion-note.jt-conversion-note div:has(> .jt-conversion-note__link) > p {
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow-wrap: anywhere;
}
body.single-post .entry-content .jt-conversion-note.jt-conversion-note div > a.jt-conversion-note__link {
  margin: 0 !important;
}
@media (max-width: 600px) {
  body.single-post .entry-content .jt-conversion-note.jt-conversion-note div > a.jt-conversion-note__link {
    flex: 1 1 100%;
  }
}

/* Shared reading layout contract (2026-10-21).
 * New components use .jt-reading-grid; incumbent aliases are listed here once.
 * This layer owns only parallel reading layout, never diagrams, data tables,
 * carousel tracks or navigation. The two legacy conversion-note sibling
 * selectors are tied to existing semantic heading IDs; keep their adjacency
 * or assign the replacement component .jt-reading-grid when reorganizing.
 * Zero-specificity alias groups let owning-component refinements win.
 * Important layering resolves legacy article
 * specificity without post-ID patches. Its geometry does not own WA paint.
 */
@layer jt-reading-layout {
 body.single-post { --jt-reading-pair-gap: 24px; }
 body.single-post .entry-content :where(
  .jt-reading-grid, .jt-next20-card-grid, .jt-next12__grid, .jt60-grid,
  .jt-up15__safety > ul,
  .jt-pr-next15__safety > ul,
  .jt-eeat-upgrade__safety > ul,
  .eczema-sheet > dl,
  .jt-typo-zone:has(> h3#jt-men-skin-guide) > dl[style*="grid-template-columns"],
  .b2-cols:not(:has(img, picture, video, iframe, figure, svg)),
  #app-shave-guide,
  #painel-comparacao > div:has(> div > #comparacao-eficacia),
  ol.route,
  .jt-mc13994-flow,
  .a-photo-grid,
  #vitamin-d-chart,
  .jt-mc9505-rails,
  .b4-3-ul.b4-3-ar,
  .b8924-facts,
  ol.acral-route,
  .tolerance-path,
  :is(.skin-aging-visual,.treatment-options-visual,.minoxidil-mechanism-visual,.prevention-guide-visual,.differential-diagnosis-visual,.rash-patterns-visual,.recovery-flowchart) > div > div[style*="grid-template-columns"],
  .treatment-guide > div[style*="grid-template-columns"],
  .treatment-algorithm-visual > div > div > div > div[style*="grid-template-columns"],
  #prevencao-tecnica-aplicacao > div[style*="grid-template-columns"],
  .medical-article > :is(#opcoes-terapeuticas,#conhecendo-sua-pele) > div[style*="grid-template-columns"],
  .jt-p1-hub-depth > div:has(> .jt-p1-hub-card),
  .jt-conversion-note:has(#jt-avaliacao-dermatologica-para-pele-negra-e-morena) + div > div[style*="grid-template-columns"],
  .jt-conversion-note:has(#jt-organize-a-investigacao-da-queda-com-a-dra-juliana-toma) + div > div > div[style*="grid-template-columns"],
  section.jt-modern-decision[aria-label="Tratamentos relacionados à luz intensa pulsada"] > div.jt-typo-zone[style*="grid-template-columns"],
  .jt-mc31197-grid, .a-map, .mc-lenses, .jt-ha-choice-comparison, .jt-reading-terms,
  .jt26-b15:not(.jt26-b15--money-depth) :is(.jt26-b15-grid, .jt26-b15-option-grid, .jt26-b15-flow),
  .jt25-grid--three, .jt25-layer-map, .jt26-grid--three, .jt-eeat-treatment-matrix,
  .jt-bk1-scan__grid, .jt-wall-aid__grid, .jt-clinical-aid__grid,
  .jt60-pathways, .jt26-r26-pathways, .jt26-b15-pathways,
  .jt26-pathways, .jt-seo-link-cluster__grid, .jtpv__practical dl,
  .jt-next12__safety > ul, .b7-rows:not(.jt-reading-chapters):not(:has(img, picture, video, iframe, figure, svg, .b7-thumb))
 ):not([hidden]) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(280px, calc((100% - var(--jt-reading-pair-gap)) / 2))), 1fr)) !important;
  gap: var(--jt-reading-pair-gap) !important;
 }
 body.single-post .entry-content :where(
  .jt-reading-grid, .jt-next20-card-grid, .jt-next12__grid, .jt60-grid,
  .jt-up15__safety > ul,
  .jt-pr-next15__safety > ul,
  .jt-eeat-upgrade__safety > ul,
  .eczema-sheet > dl,
  .jt-typo-zone:has(> h3#jt-men-skin-guide) > dl[style*="grid-template-columns"],
  .b2-cols:not(:has(img, picture, video, iframe, figure, svg)),
  #app-shave-guide,
  #painel-comparacao > div:has(> div > #comparacao-eficacia),
  ol.route,
  .jt-mc13994-flow,
  .a-photo-grid,
  #vitamin-d-chart,
  .jt-mc9505-rails,
  .b4-3-ul.b4-3-ar,
  .b8924-facts,
  ol.acral-route,
  .tolerance-path,
  :is(.skin-aging-visual,.treatment-options-visual,.minoxidil-mechanism-visual,.prevention-guide-visual,.differential-diagnosis-visual,.rash-patterns-visual,.recovery-flowchart) > div > div[style*="grid-template-columns"],
  .treatment-guide > div[style*="grid-template-columns"],
  .treatment-algorithm-visual > div > div > div > div[style*="grid-template-columns"],
  #prevencao-tecnica-aplicacao > div[style*="grid-template-columns"],
  .medical-article > :is(#opcoes-terapeuticas,#conhecendo-sua-pele) > div[style*="grid-template-columns"],
  .jt-p1-hub-depth > div:has(> .jt-p1-hub-card),
  .jt-conversion-note:has(#jt-avaliacao-dermatologica-para-pele-negra-e-morena) + div > div[style*="grid-template-columns"],
  .jt-conversion-note:has(#jt-organize-a-investigacao-da-queda-com-a-dra-juliana-toma) + div > div > div[style*="grid-template-columns"],
  section.jt-modern-decision[aria-label="Tratamentos relacionados à luz intensa pulsada"] > div.jt-typo-zone[style*="grid-template-columns"],
  .jt-mc31197-grid, .a-map, .mc-lenses, .jt-ha-choice-comparison, .jt-reading-terms,
  .jt26-b15:not(.jt26-b15--money-depth) :is(.jt26-b15-grid, .jt26-b15-option-grid, .jt26-b15-flow),
  .jt25-grid--three, .jt25-layer-map, .jt26-grid--three, .jt-eeat-treatment-matrix,
  .jt-bk1-scan__grid, .jt-wall-aid__grid, .jt-clinical-aid__grid,
  .jt60-pathways, .jt26-r26-pathways, .jt26-b15-pathways,
  .jt26-pathways, .jt-seo-link-cluster__grid, .jtpv__practical dl,
  .jt-next12__safety > ul, .b7-rows:not(.jt-reading-chapters):not(:has(img, picture, video, iframe, figure, svg, .b7-thumb))
 ) > * { min-width: 0 !important; grid-column: auto !important; grid-row: auto !important; }
 body.single-post .entry-content :where(
  .jt-reading-grid, .jt-next20-card-grid, .jt-next12__grid, .jt60-grid,
  .jt-up15__safety > ul,
  .jt-pr-next15__safety > ul,
  .jt-eeat-upgrade__safety > ul,
  .eczema-sheet > dl,
  .jt-typo-zone:has(> h3#jt-men-skin-guide) > dl[style*="grid-template-columns"],
  .b2-cols:not(:has(img, picture, video, iframe, figure, svg)),
  #app-shave-guide,
  #painel-comparacao > div:has(> div > #comparacao-eficacia),
  ol.route,
  .jt-mc13994-flow,
  .a-photo-grid,
  #vitamin-d-chart,
  .jt-mc9505-rails,
  .b4-3-ul.b4-3-ar,
  .b8924-facts,
  ol.acral-route,
  .tolerance-path,
  :is(.skin-aging-visual,.treatment-options-visual,.minoxidil-mechanism-visual,.prevention-guide-visual,.differential-diagnosis-visual,.rash-patterns-visual,.recovery-flowchart) > div > div[style*="grid-template-columns"],
  .treatment-guide > div[style*="grid-template-columns"],
  .treatment-algorithm-visual > div > div > div > div[style*="grid-template-columns"],
  #prevencao-tecnica-aplicacao > div[style*="grid-template-columns"],
  .medical-article > :is(#opcoes-terapeuticas,#conhecendo-sua-pele) > div[style*="grid-template-columns"],
  .jt-p1-hub-depth > div:has(> .jt-p1-hub-card),
  .jt-conversion-note:has(#jt-avaliacao-dermatologica-para-pele-negra-e-morena) + div > div[style*="grid-template-columns"],
  .jt-conversion-note:has(#jt-organize-a-investigacao-da-queda-com-a-dra-juliana-toma) + div > div > div[style*="grid-template-columns"],
  section.jt-modern-decision[aria-label="Tratamentos relacionados à luz intensa pulsada"] > div.jt-typo-zone[style*="grid-template-columns"],
  .jt-mc31197-grid, .a-map, .mc-lenses, .jt-ha-choice-comparison, .jt-reading-terms,
  .jt26-b15:not(.jt26-b15--money-depth) :is(.jt26-b15-grid, .jt26-b15-option-grid, .jt26-b15-flow),
  .jt25-grid--three, .jt25-layer-map, .jt26-grid--three, .jt-eeat-treatment-matrix,
  .jt-bk1-scan__grid, .jt-wall-aid__grid, .jt-clinical-aid__grid,
  .jt60-pathways, .jt26-r26-pathways, .jt26-b15-pathways,
  .jt26-pathways, .jt-seo-link-cluster__grid, .jtpv__practical dl,
  .jt-next12__safety > ul, .b7-rows:not(.jt-reading-chapters):not(:has(img, picture, video, iframe, figure, svg, .b7-thumb))
 ) > :last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
 body.single-post .entry-content :is(.jt60-pathways, .jt26-r26-pathways,
  .jt26-b15-pathways, .jt26-pathways, .jt-seo-link-cluster__grid) > a {
  margin-inline: 0 !important;
 }
 /* The old two-column float width is no longer meaningful inside a
  * grid track; each list item fills the column assigned by this layer. */
 body.single-post .entry-content .b4-3-ul.b4-3-ar > .b4-3-it {
  width: auto !important; max-width: 100% !important;
  margin-inline: 0 !important; float: none !important;
 }
 /* A text-only B7 card is itself a reading column. Its old internal
  * heading/paragraph grid must not create a second layer of narrow tracks. */
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row {
  display: block !important;
 }
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row > * {
  width: auto !important; min-width: 0 !important;
  float: none !important;
 }
 /* Full-row cards keep their full surface, while their reading content shares
  * the surrounding prose rail. Non-prose children keep the prior width policy. */
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row > :is(h2,h3,h4,p,ul,ol) {
  max-width: min(704px, 100%) !important;
 }
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row > :not(h2,h3,h4,p,ul,ol) {
  max-width: 100% !important;
 }
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row > :is(h2,h3,h4) {
  margin-block-end: 16px !important;
 }
 body.single-post .entry-content .b7-rows:not(:has(img, picture, video, iframe, figure, svg, .b7-thumb)) > .b7-row > :is(p,ul,ol) + :is(p,ul,ol) {
  margin-block-start: 16px !important;
 }
 /* This step group includes a heading before its four numbered cards. */
 body.single-post .entry-content #app-shave-guide > h3 { grid-column: 1 / -1 !important; }
 body.single-post .entry-content #app-shave-guide > .sg-row { grid-column: auto !important; }
 body.single-post .entry-content #app-shave-guide > .sg-row:last-child:nth-child(even) { grid-column: 1 / -1 !important; }
 /* Keep the A+B+C relationship legible as an ordered vertical sequence. */
 body.single-post .entry-content .a-chain {
  display: grid !important; grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
 }
 body.single-post .entry-content .a-chain > .a-plus { justify-self: center !important; margin: 0 !important; }
 /* Each comparison card owns its four internal rows after the parent wraps.
  * A legacy four-row subgrid would otherwise collapse into a single grid row. */
 body.single-post .entry-content .jt-ha-choice-comparison > .stat-card {
  grid-template-rows: auto auto auto auto !important;
  align-content: start !important;
 }
 /* These are short reading terms, not a bulleted list. Legacy pseudo-markers
  * and column dividers do not describe the new two-plus-one arrangement. */
 body.single-post .entry-content .jt-reading-terms > li {
  list-style: none !important; border-inline: 0 !important;
  padding-inline: 0 !important;
 }
 body.single-post .entry-content .jt-reading-terms > li::before,
 body.single-post .entry-content .jt-reading-terms > li::after {
  content: none !important; display: none !important;
 }
 /* Both gallery markups share a caption role, including classless figures. */
 body.single-post .entry-content .jt-owned-authority-media__grid > figure > figcaption {
  font-size: 14px !important; line-height: 1.5 !important;
  text-transform: none !important; letter-spacing: 0 !important;
 }
 /* Four/five photograph galleries become two readable columns on desktop.
  * The existing three-image, two-column mosaic keeps its authored crops. */
 @media (min-width: 901px) {
  body.single-post .entry-content .jt-owned-authority-media--post .jt-owned-authority-media__grid:has(> figure:nth-child(4)) {
   grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
   grid-template-rows: none !important; height: auto !important; max-height: none !important;
   grid-auto-rows: auto !important;
  }
  body.single-post .entry-content .jt-owned-authority-media--post .jt-owned-authority-media__grid:has(> figure:nth-child(4)) > figure {
   grid-column: auto !important; grid-row: auto !important;
   height: auto !important; min-height: 0 !important;
  }
  body.single-post .entry-content .jt-owned-authority-media--post .jt-owned-authority-media__grid:has(> figure:nth-child(4)) > figure > img {
   height: clamp(240px, 24vw, 340px) !important; min-height: 0 !important;
  }
  body.single-post .entry-content .jt-owned-authority-media--post .jt-owned-authority-media__grid:has(> figure:nth-child(5):last-child) > figure:first-child { grid-column: 1 / -1 !important; }
 }
 /* Internal primary actions have the same obvious hit area as secondary
  * actions, but WhatsApp continues to use its own independent identity layer. */
 body.single-post .entry-content a.jt-next20-cta-primary:not([href*="wa.me"]):not([href*="whatsapp.com"]) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  box-sizing: border-box; min-height: 48px; max-width: 100%;
  padding: 12px 20px !important; border: 1px solid currentColor !important;
  border-radius: 999px; text-decoration: none !important;
  font-size: 16px !important; line-height: 1.4 !important;
  text-align: center !important; white-space: normal !important;
 }
 body.single-post .entry-content a.jt-next20-cta-primary:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
 body.single-post .entry-content a.jt-next20-cta-primary:hover { text-decoration: underline !important; text-underline-offset: 3px; }
 @media (max-width: 767px) {
  /* One outer inset for the two condition explanations. Their text, order,
   * headings and links stay intact; no diagram or interactive state is touched. */
  body.single-post .entry-content .inflammatory-conditions-visual {
   padding-block: 24px !important;
   border-radius: 0 !important;
  }
  body.single-post .entry-content .inflammatory-conditions-visual > div {
   padding-inline: 16px !important;
  }
  body.single-post .entry-content .inflammatory-conditions-visual .jt-typo-zone {
   padding: 0 !important;
   background: none !important;
   border-radius: 0 !important;
  }
  body.single-post .entry-content .inflammatory-conditions-visual h4 {
   padding-inline: 0 !important;
   border-inline: 0 !important;
  }
  /* The phase panel is explanatory copy around a live diagram. Remove its
   * extra inset, preserving the phase controls, flex relationship and drawing. */
  body.single-post .entry-content #laser-removal-diagram {
   padding: 16px !important;
  }
  body.single-post .entry-content #laser-removal-diagram > #phase-content {
   padding: 0 !important;
   border: 0 !important;
   background: none !important;
  }
  body.single-post .entry-content #phase-content :is(#phase1-content, #phase2-content) > div > div:first-child > p[style*="padding"] {
   padding-inline: 0 !important;
   border-inline: 0 !important;
  }
 }

}

 /* Authored essay groups are sequential chapters. Compact B7 criteria keep
  * the paired contract above. The source marker is conservative; the media /
  * control veto also protects nodes injected after the ACF renderer runs. */
 body.single-post .entry-content :is(.b7-rows.jt-reading-chapters:not(:has(img, picture, video, iframe, figure, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb)), .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break)))) {
  display: block;
  width: min(704px, 100%);
  max-width: 100%;
  margin-inline: auto;
  background: none;
  border: 0;
 }
 body.single-post .entry-content :is(.b7-rows.jt-reading-chapters:not(:has(img, picture, video, iframe, figure, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb)), .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break)))) > .b7-row {
  padding: 32px 0;
  margin: 0;
  border: 0;
  border-block-start: 1px solid var(--jt-brand-line, #c7bdb5);
  background: none;
 }
 /* Chapters contain substantive reading text. Compact legacy-card typography
  * opts out of this role at its source rather than requiring another override. */
 body.single-post .entry-content :is(.b7-rows.jt-reading-chapters:not(:has(img, picture, video, iframe, figure, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb)), .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break)))) > .b7-row :is(p,li) {
  font-size: var(--jt-reading-body);
  line-height: 1.65;
 }


@media (max-width: 767px) {
  body.single-post .entry-content :is(.b7-rows.jt-reading-chapters:not(:has(img, picture, video, iframe, figure, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb)), .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break)))) > .b7-row {
   padding-block: 24px;
  }
}

 /* Illustrated chapters retain the wide editorial photo breaks. Prose alone
  * uses the same 704px rail as plain chapters; a photo never splits an essay
  * into parallel cards. The source owner validates every illustrated row. */
body.single-post .entry-content .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break))) {
  width: 100%;
}
body.single-post .entry-content .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break))) > .b7-row {
  width: min(704px, 100%);
  margin-inline: auto;
}
body.single-post .entry-content .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break))) > .b7-row:has(> .jt-bk7-media-break) {
  width: 100%;
  border: 0;
}
body.single-post .entry-content .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break))) > .b7-row > .jt-bk7-media-break {
  background: #242329;
}
body.single-post .entry-content .b7-rows.jt-reading-chapters--illustrated:not(:has(picture, video, iframe, svg, table, button, input, select, textarea, form, canvas, details, summary, .b7-thumb, figure:not(.jt-bk7-media-break))) > .b7-row > img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 20px auto;
}

 /* The B15 dossier owns its chapter hierarchy. This replaces its generic
  * grid aliases; treatment/landing variants still use page-jt26-pathways.css.
  * Only the clinical aside keeps a solid panel. Supporting facts use rules,
  * and split columns take their intrinsic height instead of equal boxes. */
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-grid, .jt26-b15-flow) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(280px, calc((100% - var(--jt-reading-pair-gap)) / 2))), 1fr));
  gap: var(--jt-reading-pair-gap);
  align-items: start;
 }
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-grid, .jt26-b15-flow) > * {
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
 }
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-grid, .jt26-b15-flow) > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
 }
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-lead, .jt26-b15-split) {
  align-items: start;
  gap: 32px;
 }
 body.single-post .entry-content .jt26-b15--money-depth .jt26-b15-split {
  margin-block: 40px;
  padding-block-start: 32px;
  border-block-start: 1px solid var(--jt-brand-line, #c7bdb5);
 }
 body.single-post .entry-content .jt26-b15--money-depth :where(.jt26-b15-lead > div, .jt26-b15-split > div, .jt26-b15-card, .jt26-b15-option, .jt26-b15-step, .jt26-b15-checks) {
  padding: 0;
  border: 0;
  background: none;
  min-height: 0;
 }
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-card, .jt26-b15-option, .jt26-b15-step) {
  padding-block: 16px;
  border-block-start: 1px solid var(--jt-brand-line, #c7bdb5);
 }
 body.single-post .entry-content .jt26-b15--money-depth .jt26-b15-option-grid {
  display: block;
  margin-block: 24px;
 }
 body.single-post .entry-content .jt26-b15--money-depth .jt26-b15-option > :last-child {
  margin-block-end: 0;
 }
 body.single-post .entry-content .jt26-b15--money-depth > :is(.jt26-b15-checks, .jt26-b15-callout, .jt26-b15-summary) {
  width: min(704px, 100%);
  margin: 40px auto;
 }
 body.single-post .entry-content .jt26-b15--money-depth > .jt26-b15-option-grid {
  width: min(704px, 100%);
  margin-inline: auto;
 }
 body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-card, .jt26-b15-option, .jt26-b15-step) :is(p, li) {
  font-size: var(--jt-reading-body);
  line-height: 1.65;
 }

@media (max-width: 767px) {
  /* Retained important only for the legacy article-base mobile inset. */
  body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-lead > div, .jt26-b15-split > div) {
   padding-inline: 0 !important;
  }
  body.single-post .entry-content .jt26-b15--money-depth :is(.jt26-b15-lead > aside, .jt26-b15-callout, .jt26-b15-summary) {
   margin-inline: -16px;
   padding-inline: 16px;
   width: calc(100% + 32px);
   max-width: none;
   border-inline: 0;
  }
}

/* Authored care sequences own their natural flow. No absolute connector or
 * content-dependent inline-style selector is needed for this reading role. */
body.single-post .entry-content .jt-care-sequence {
  box-sizing: border-box;
  width: min(704px, calc(100% - 40px));
  margin: var(--jt-reading-section-gap) auto;
  color: #31453c;
  font-family: Roobert, "Helvetica Neue", Arial, sans-serif;
  font-size: var(--jt-reading-body);
  line-height: 1.65;
}
body.single-post .entry-content .jt-care-sequence > :is(h3, h4) {
  margin: 0 0 12px;
  font-size: clamp(24px, 2.1vw, 30px);
  line-height: 1.2;
}
body.single-post .entry-content .jt-care-sequence__intro {
  margin: 0 0 24px;
  font-size: inherit;
  line-height: inherit;
}
body.single-post .entry-content .jt-care-sequence__steps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 32px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.single-post .entry-content .jt-care-sequence__step {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
  align-items: center;
  gap: 12px 14px;
  min-width: 0;
  margin: 0;
  padding: 20px 0;
  border-block-start: 1px solid var(--jt-brand-line, #c7bdb5);
}
body.single-post .entry-content .jt-care-sequence__marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 2.25em;
  min-height: 2.25em;
  padding: .25em;
  background: #075e54;
  color: #fff;
  border-radius: 50%;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.2;
}
body.single-post .entry-content .jt-care-sequence__marker--illustration {
  min-width: 0;
  min-height: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  font-size: 28px;
  line-height: 1.4;
}
body.single-post .entry-content .jt-care-sequence__label,
body.single-post .entry-content .jt-care-sequence__description {
  min-width: 0;
  margin: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
  overflow-wrap: anywhere;
}
body.single-post .entry-content .jt-care-sequence__label { font-weight: 500; }
body.single-post .entry-content .jt-care-sequence__description { grid-column: 1 / -1; }
@media (min-width: 720px) {
  body.single-post .entry-content .jt-care-sequence__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Explicit text roles on pale/white reading surfaces. Retire authored accent
 * colors at the markup owner; the palette mapper keeps luminance unchanged. */
body.single-post .entry-content :is(.jt-reading-ink, .jt-reading-caption) {
  color: #31453c;
}
body.single-post .entry-content .jt-reading-caption {
  font-size: var(--jt-reading-support);
  line-height: 1.5;
}

/* 2026-10-22: retained authored sequence and detail-header roles. */
/* Existing care-sequence may express a chronological/diagnostic line.
   Body retains full rail below the compact marker/title row. */
body.single-post .entry-content .jt-care-sequence__steps--linear {
  grid-template-columns: minmax(0, 1fr);
}


/* Shared detail-header layout: preserve copy, separation supplied by layout. */
body.single-post .entry-content :is(.tx-detail-header,.med-card-header) {
  display: grid; gap: 8px; align-items: start;
}
body.single-post .entry-content .tx-detail-header { padding: 16px 20px; }
body.single-post .entry-content :is(.tx-detail-name,.med-card-name) {
  min-width: 0; font-size: 20px; line-height: 1.3; font-weight: 500;
}
body.single-post .entry-content :is(.tx-detail-tag,.med-card-class) {
  min-width: 0; font-size: 14px; line-height: 1.45;
}


/* Native checklist controls extend the existing care-sequence reading role.
 * Description text occupies the complete rail below each numbered title. */
body.single-post .entry-content .jt-care-sequence--checklist .jt-care-sequence__label { grid-column: 1 / -1; }
body.single-post .entry-content .jt-care-sequence__toggle {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 44px;
  margin: 0; padding: 0; border: 0; background: transparent; color: inherit;
  font: inherit; line-height: 1.4; text-align: start; text-transform: none; cursor: pointer;
}
body.single-post .entry-content .jt-care-sequence__toggle:hover { color: #075e54; }
body.single-post .entry-content .jt-care-sequence__toggle[aria-pressed="true"] .jt-care-sequence__marker { background: #1c5c3f; }
body.single-post .entry-content .jt-care-sequence__toggle[aria-pressed="true"] .jt-care-sequence__marker::after { content: "✓"; }
body.single-post .entry-content .jt-care-sequence__toggle[aria-pressed="true"] .jt-care-sequence__marker > span { display: none; }
body.single-post .entry-content .jt-care-sequence__progress { height: 8px; margin-block: 24px; background: #e4e7e2; border-radius: 4px; overflow: hidden; }
body.single-post .entry-content .jt-care-sequence__progress-fill { width: 0; height: 100%; background: #075e54; }
body.single-post .entry-content .jt-care-sequence__reset { min-height: 44px; padding: 12px 20px; border: 1px solid #075e54; background: #075e54; color: #fff; font: inherit; line-height: 1.4; cursor: pointer; }
body.single-post .entry-content .jt-care-sequence :is(.jt-care-sequence__toggle,.jt-care-sequence__reset):focus-visible { outline: 3px solid #075e54; outline-offset: 4px; }

