/* Keep source tradition visually distinct from practical guidance. */
.traditional-interpretation{margin-top:20px;padding-top:14px;border-top:1px solid #d8cec3;font-size:.9em;line-height:1.55}
.traditional-interpretation .tradition-note{font-size:.9em;color:#62635b;margin-bottom:0}
.pattern-guidance{margin:18px 0;padding:16px 20px;border-left:3px solid currentColor;background:#f2ede4;color:inherit}
.pattern-guidance p{margin:0 0 8px}.pattern-guidance p:last-child{margin-bottom:0}
.connection-practice>div:last-child{padding:16px 20px;background:#f2ede4;border-left:3px solid currentColor}
.connection-practice>div:only-child{grid-column:1/-1}
.pattern-action{padding:12px 16px;background:#f2ede4;border-left:3px solid currentColor}
@media print{.pattern-guidance,.connection-practice>div:last-child{padding:6px 8px;margin:6px 0;break-inside:avoid}.traditional-interpretation{margin-top:8px;padding-top:6px}}
.traditional-interpretation p{overflow-wrap:anywhere}
:root {
  --paper: #fdfcf9;
  --paper-light: #ffffff;
  --ink: #1c1e1c;
  --muted: #62625d;
  --line: #d9d8d3;
  --jade: #f3f2ef;
  --olive: #a83f30;
  --gold: #bd8d64;
  --wood: #4e7959;
  --fire: #a83f30;
  --earth: #a47b3d;
  --metal: #737873;
  --water: #5a8796;
  --background: var(--paper);
  --foreground: var(--ink);
  --card: var(--paper-light);
  --card-foreground: var(--ink);
  --primary: #a83f30;
  --primary-foreground: #fffaf4;
  --secondary: #f3f2ef;
  --secondary-foreground: var(--ink);
  --border: #1c1e1c24;
  --input: #9f9588;
  --ring: #a83f30;
}


.jl-preview-privacy {
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
  margin-bottom: 24px;
}
.jl-preview-privacy h2 { font-size: 28px; line-height: 1.2; margin: 12px 0; }
.jl-preview-privacy p { font-size: 16px; line-height: 1.6; margin: 12px 0; }
.jl-preview-privacy a { color: var(--olive); text-decoration: underline; }
.jl-preview-privacy details { margin: 18px 0; }
.jl-preview-privacy summary { cursor: pointer; font-size: 16px; text-decoration: underline; }
.jl-preview-privacy .jl-permission {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 18px; margin-top: 22px; background: var(--jade);
  font-size: 16px; line-height: 1.55; cursor: pointer;
}
.birth-card .jl-permission input[type="checkbox"] {
  appearance: auto; width: 20px; min-width: 20px; height: 20px;
  margin: 3px 0 0; accent-color: var(--olive); padding: 0;
}
.jl-permission input:focus-visible { outline: 2px solid var(--olive); outline-offset: 4px; }
.jl-preview-privacy .jl-permission-help { font-size: 14px; color: var(--muted); }

body {
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
}

h1,
h2,
h3,
h4,
.landing-reassurance b,
.cycle-center b,
.pairing-center b {
  font-family: "Iowan Old Style", Baskerville, Georgia, serif;
  letter-spacing: -.025em;
}

.site-header {
  background: #fffffff2;
  border-bottom-color: #1c1e1c20;
}

.header-inner {
  min-height: 92px;
}

.jl-personal-reading { margin-top: 1.5rem; gap: 1.5rem; }
.jl-personal-reading h2 { margin-bottom: .65rem; }
.jl-personal-reading .consultation-actions { min-width: 0; }
.jl-personal-reading .consultation-primary { white-space: normal; text-align: center; }
.jl-personal-reading .jl-personal-reading-note { font-size: .875rem; margin: .65rem 0 0; }

.brand-home-link {
  display: inline-flex;
  flex-shrink: 0;
  border-radius: 50%;
}
.brand-home-link:focus-visible {
  outline: 3px solid #a83f30;
  outline-offset: 4px;
}

.brand-logo {
  width: 82px;
  height: 82px;
  border: 1px solid #1c1e1c22;
  border-radius: 50%;
  mix-blend-mode: multiply;
}

.header-label,
.eyebrow {
  color: #a83f30;
}

.landing-copy h1 {
  max-width: 900px;
}

.landing-hero {
  grid-template-columns: 1fr !important;
  min-height: 0 !important;
  padding: 52px 0 46px !important;
}

.landing-copy {
  max-width: 900px !important;
}

.landing-insights,
.framework-intro,
.calculator-heading {
  display: none !important;
}

.hero-trust {
  margin: 14px 0 0;
  color: #5c5c58;
  font-size: 14px;
  line-height: 1.45;
}

.workspace {
  margin-top: 0;
}

.landing-copy > p:not(.eyebrow),
.framework-heading > p:last-child,
.insight-copy > p,
.calculator-heading-copy > p {
  color: var(--muted);
}

.landing-cta,
.calculator-heading-cta,
.calculate-button,
.result-intro button {
  border-radius: 999px !important;
  background: #a83f30 !important;
  border-color: #a83f30 !important;
  color: #fffaf4 !important;
}

.landing-cta:hover,
.calculator-heading-cta:hover,
.calculate-button:hover,
.result-intro button:hover {
  background: #873229 !important;
}

.landing-promise,
.landing-card,
.framework-intro,
.birth-card,
.reading-card,
.snapshot {
  box-shadow: none !important;
}

.landing-reassurance {
  color: var(--ink) !important;
  background: #fff !important;
  border: 1px solid #1c1e1c !important;
}

.landing-reassurance span {
  color: #a83f30 !important;
}

.landing-points .promise-strength,
.landing-points .promise-pressure,
.landing-points .promise-balance {
  color: var(--ink) !important;
  background: #fff !important;
  border: 1px solid #1c1e1c2e !important;
}

.landing-points svg,
.landing-points span::after {
  color: #a83f30 !important;
}

.landing-card,
.birth-card,
.reading-card {
  background: #fff !important;
  border-color: #1c1e1c22;
}

.element-story,
.partnership-seat,
.framework-intro {
  background: #fff !important;
  border-color: #1c1e1c22 !important;
}

.framework-grid article {
  background: #fff !important;
  border-color: #1c1e1c22 !important;
}

.calculator-heading {
  background: #1c1e1c !important;
  border-color: #1c1e1c !important;
}

.calculator-heading::before,
.calculator-heading::after {
  border-color: #a83f3070 !important;
}

.calculator-heading .eyebrow {
  color: #d86a58 !important;
}

.reading-hero,
.snapshot,
.compatibility-compass {
  background: #fff !important;
}

input,
select,
textarea {
  background: #fff !important;
}

.element-cycle {
  filter: saturate(.9);
}

.cycle-center {
  background: #fff;
  border-color: #a83f30aa;
}

.jl-parent-requirement {
  border: 1px solid #a83f3040;
  border-left: 4px solid #a83f30;
  background: #fcf9f8;
  padding: 1.25rem;
  margin: 1.25rem 0;
}
.jl-parent-requirement h3 { font-size: 1.25rem; margin: 0 0 .75rem; }
.jl-parent-requirement p { font-size: 1rem; line-height: 1.6; margin: .5rem 0 0; }
.jl-required-label { color: #a83f30; font-weight: 700; }
.jl-family-role-field { margin: 0 0 1.25rem; }
.jl-family-role-field label { display: block; margin-bottom: .5rem; }
.jl-family-role-field select { width: 100%; min-height: 48px; font-size: 1rem; }
.jl-time-required { border-left: 3px solid #a83f30; padding-left: .75rem; }
.jl-parent-report .jl-parent-step { margin: 0; }
.jl-parent-report .section-heading { display: block; margin-bottom: 1.5rem; }
.jl-parent-report .section-heading p:not(.eyebrow) { max-width: 75ch; margin-top: .75rem; }
.jl-parent-report .jl-family-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1.25rem 0; }
.jl-parent-report .jl-family-three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.jl-parent-report .jl-family-grid > article { min-width: 0; padding: 1.25rem; border: 1px solid #dedbd7; border-radius: 12px; background: #fff; }
.jl-parent-report .jl-family-grid h3 { font-size: 1.35rem; line-height: 1.3; margin: 0 0 .75rem; }
.jl-parent-report .jl-family-grid p { font-size: 1rem; margin: .65rem 0 0; }
.jl-parent-report .jl-family-element-card { border-top: 4px solid; }
.jl-parent-report .jl-family-element-card .eyebrow { margin: 0 0 .75rem; font-size: .8rem; }
.jl-family-meta { color: #65645f; font-size: .875rem; }
.jl-family-weighted-card, .jl-family-weighted-element { border: 1px solid #dedbd7; border-left: 3px solid #a83f30; border-radius: 10px; padding: 1.25rem; margin-top: 1rem; }
.jl-parent-report .jl-family-weighting, .jl-parent-report .jl-family-evidence { margin-top: 1rem; }
.jl-family-evidence ul { padding-left: 1.25rem; font-size: .875rem; line-height: 1.5; }
.jl-family-evidence li + li { margin-top: .5rem; }
.jl-parent-report .jl-family-pair-list h3 { font-size: 1rem; }
.jl-family-animal-pattern + .jl-family-animal-pattern { border-top: 1px solid #dedbd7; padding-top: 1rem; margin-top: 1rem; }
.jl-family-animal-pattern h4 { font-size: 1.1rem; margin: .75rem 0; }
.jl-family-animal-owners { overflow-wrap: anywhere; }
.jl-family-birth-details { border-top: 1px solid #dedbd7; margin-top: 1.25rem; }
.jl-family-birth-details > p { font-size: .875rem; color: #65645f; }
.jl-family-element-pair { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 1rem; margin: 1.5rem 0; text-align: center; }
.jl-family-element-pair > div { border: 2px solid; border-radius: 50%; aspect-ratio: 1; width: min(100%,180px); margin: auto; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: .75rem; }
.jl-family-element-pair strong { font-size: 1.4rem; }
.jl-family-element-pair small { font-size: .875rem; margin-bottom: .5rem; }
.jl-family-element-link { max-width: 130px; font-size: 1rem; }
.jl-parent-report .snapshot-grid { gap: 1rem; }
.jl-parent-report .snapshot { min-width: 0; }
.jl-parent-report .mini-pillar.is-day { border-color: #a83f30; background: #faf3f1; }
.jl-parent-report .element-wheel { width: 100%; height: auto; }
.jl-parent-report .connection-practice .jl-parent-step { padding: .5rem 0; }
@media (max-width: 760px) {
  .jl-parent-report .jl-family-grid, .jl-parent-report .snapshot-grid { grid-template-columns: minmax(0,1fr); }
  .jl-parent-report .element-layout { grid-template-columns: minmax(0,1fr); }
  .jl-parent-report .jl-family-element-pair { gap: .4rem; }
  .jl-family-element-pair strong { font-size: 1rem; }
  .jl-family-element-pair small, .jl-family-element-link { font-size: .875rem; }
  .jl-family-element-link { max-width: 65px; }
  .jl-parent-report .pillars-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.jl-family-perspective .jl-family-element-pair { grid-template-columns: minmax(0,1fr) minmax(70px,130px) minmax(0,1fr); }
@media (max-width: 420px) {
  .jl-family-perspective .jl-family-element-pair { grid-template-columns: 1fr; }
  .jl-family-perspective .jl-family-element-link { max-width: none; }
  .jl-family-perspective .jl-family-element-pair > div { width: 170px; }
}
@media print {
  .jl-parent-report .jl-family-grid { display: block !important; margin: .5rem 0; }
  .jl-parent-report .jl-family-grid > article { margin: .5rem 0; padding: .65rem; break-inside: avoid; }
  .jl-parent-report .jl-family-element-pair { break-inside: avoid; }
}
.jl-parent-report h3 { margin-bottom: .5rem; }
.jl-parent-report p { line-height: 1.65; }
.jl-parent-report .connection-intro > p { margin: 1rem 0; }
.jl-parent-report .connection-interaction { margin: 1.25rem 0; }
.jl-parent-report .connection-interaction summary { min-height: 44px; padding: .75rem 0; cursor: pointer; }
.jl-parent-report .connection-print { border: 1px solid #a83f30; border-radius: 6px; padding: .75rem 1rem; background: #fff; color: #90372d; font-weight: 600; }
/* One screen typography and spacing system for every family-report section.
   Keep print/export sizing independent of viewport-based heading sizes. */
@media screen {
  #results.jl-parent-report { gap: 1.5rem; }
  #results.jl-parent-report > .reading-card { padding: clamp(1.25rem, 3vw, 2rem); }
  #results.jl-parent-report h2 {
    font-family: "Iowan Old Style", Baskerville, Georgia, serif;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    font-weight: 400; line-height: 1.2; letter-spacing: -.025em;
    margin: 0;
  }
  #results.jl-parent-report h3 {
    font-family: "Iowan Old Style", Baskerville, Georgia, serif;
    font-size: 1.375rem; font-weight: 400; line-height: 1.3;
    margin: 0 0 .75rem;
  }
  #results.jl-parent-report h4 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem; font-weight: 700; line-height: 1.5;
    letter-spacing: normal; margin: 1rem 0 .5rem;
  }
  #results.jl-parent-report p {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem; font-weight: 400; line-height: 1.6;
    letter-spacing: normal; margin: 0;
  }
  #results.jl-parent-report p + p { margin-top: 1rem; }
  #results.jl-parent-report .eyebrow {
    font-family: Arial, Helvetica, sans-serif;
    font-size: .875rem; font-weight: 700; line-height: 1.4;
    letter-spacing: .16em; margin: 0 0 .75rem;
  }
  #results.jl-parent-report .section-heading { margin: 0 0 1.5rem; }
  #results.jl-parent-report .section-heading > p { margin-top: 1rem; max-width: 72ch; }
  #results.jl-parent-report .connection-intro > h2 + p { margin-top: 1rem; }
  #results.jl-parent-report .jl-family-grid { gap: 1rem; margin: 1.5rem 0; }
  #results.jl-parent-report .jl-family-grid > article,
  #results.jl-parent-report .jl-family-weighted-card,
  #results.jl-parent-report .jl-family-weighted-element { padding: 1.25rem; }
  #results.jl-parent-report .jl-family-grid > article > p + p { margin-top: .75rem; }
  #results.jl-parent-report .jl-family-meta,
  #results.jl-parent-report .jl-family-birth-details > p { font-size: .875rem; line-height: 1.5; }
  #results.jl-parent-report summary {
    font-family: Arial, Helvetica, sans-serif; font-size: 1rem;
    font-weight: 600; line-height: 1.5; min-height: 44px;
    padding: .75rem 0; cursor: pointer;
  }
  #results.jl-parent-report .connection-interaction { margin: 1.5rem 0 0; padding: 1.25rem; }
  #results.jl-parent-report .connection-practice { margin-top: 1.25rem; gap: 1.25rem; }
  #results.jl-parent-report .connection-practice .jl-parent-step { padding: 0; }
  #results.jl-parent-report .connection-interaction > details { margin-top: 1rem; }
  #results.jl-parent-report .jl-parent-responsibility > p { max-width: 72ch; }
  #results.jl-parent-report .jl-next-step-action { margin-top: 1.5rem; }
  #results.jl-parent-report .jl-family-pair-list h3 { font-size: 1.125rem; }
  #results.jl-parent-report .reading-card > :last-child { margin-bottom: 0; }
  #results.jl-parent-report > .jl-family-weighted-summary { padding: .5rem 1.25rem; }
  #results.jl-parent-report .jl-family-insights > summary { font-weight: 500; color: var(--muted); }
  #results.jl-parent-report .jl-family-insights[open] { padding-bottom: .75rem; }
  #results.jl-parent-report .jl-family-insights > p { margin-top: .5rem; color: var(--muted); }
  #results.jl-parent-report .jl-family-insights h3 { font-size: 1.125rem; }
  #results.jl-parent-report .jl-family-insights .jl-family-weighted-card,
  #results.jl-parent-report .jl-family-insights .jl-family-weighted-element { border-left: 1px solid var(--line); padding: 1rem; }
  #results.jl-parent-report .jl-family-insights .jl-family-evidence > summary,
  #results.jl-parent-report .jl-family-insights .jl-family-weighting > summary { font-size: .875rem; font-weight: 400; color: var(--muted); }
}
@media print {
  .jl-parent-report .jl-parent-step { break-inside: avoid; margin: 8pt 0; }
  .jl-parent-report .connection-interaction { break-inside: auto; }
}

.reading-hero h2 {
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  line-height: 1.08;
  text-wrap: balance;
}

.reading-hero > div > p.jl-preview-start {
  margin-top: 1rem;
  font-size: 1rem;
}

.reading-hero > div > p.jl-preview-trust {
  margin-top: .75rem;
  color: #1c1e1c;
  font-size: .875rem;
  font-weight: 600;
}

.reading-hero .live-pair { margin-top: 1.5rem; }
.reading-hero .live-person { min-height: 0; padding: 1rem; }
.reading-hero .live-person p { font-size: .875rem; white-space: normal; overflow-wrap: anywhere; }
.cycle-center b { font-size: 1.25rem; }

.reading-card.day-focus {
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1.5rem;
  align-items: start;
}
.day-focus .day-seal {
  width: 56px;
  height: 56px;
  color: #a83f30;
}
.day-focus h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.2; }
.day-focus p:not(.eyebrow) { font-size: 1rem; line-height: 1.6; }
.day-focus .eyebrow { margin-bottom: .5rem; }

@media (max-width: 640px) {
  .reading-card.day-focus { grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 1.25rem; }
  .day-focus .day-seal { width: 44px; height: 44px; }
  .reading-hero .live-person { padding: .75rem; overflow-wrap: anywhere; }
}

.compatibility-compass {
  border-color: #1c1e1c30;
}

.results.jl-locked > :not(.connection-intro):not(.connection-glance):not(.result-intro):not(.compatibility-compass):not(.jl-unlock-card) {
  display: none !important;
}

.results.jl-locked .result-intro button,
.results.jl-locked .connection-print {
  display: none !important;
}

.jl-unlock-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  padding: 30px;
  border: 1px solid #a83f30;
  background: #1c1e1c;
  color: #fffaf4;
}

.jl-unlock-card .eyebrow {
  margin-bottom: 7px;
  color: #d9b696;
}

.jl-unlock-card h2 {
  margin: 0;
  font-size: clamp(28px, 4vw, 42px);
}

.jl-unlock-card p {
  max-width: 660px;
  margin: 9px 0 0;
  color: #e7ded3;
  line-height: 1.65;
}

.jl-unlock-card button {
  min-width: 230px;
  min-height: 50px;
  padding: 12px 22px;
  border: 0;
  border-radius: 999px;
  background: #a83f30;
  color: #fffaf4;
  font-weight: 700;
  cursor: pointer;
}

.jl-unlock-card button:hover {
  background: #c04b3a;
}

.jl-unlock-card small {
  display: block;
  margin-top: 7px;
  color: #cfc4b8;
}

.site-footer {
  position: relative;
  overflow: hidden;
  display: block !important;
  padding: clamp(54px, 7vw, 92px) clamp(24px, 6vw, 96px) 28px !important;
  background: #111311 !important;
  color: #fdfcf9 !important;
}

.site-footer::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: #a83f30;
}

.site-footer::after {
  content: '';
  position: absolute;
  width: 430px;
  aspect-ratio: 1;
  right: -250px;
  top: -255px;
  border: 1px solid #a83f3052;
  border-radius: 50%;
  pointer-events: none;
}

.footer-frame {
  position: relative;
  z-index: 1;
  width: min(1400px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(320px, 1.55fr) repeat(3, minmax(145px, .55fr));
  gap: clamp(36px, 6vw, 90px);
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 23px;
  align-self: start;
}

.footer-logo {
  display: block;
  width: 120px;
  height: 120px;
  border: 1px solid #ffffff38;
  border-radius: 50%;
  object-fit: cover;
  filter: grayscale(1) contrast(1.08) brightness(1.35);
}

.footer-brand p,
.footer-heading,
.footer-bottom p {
  margin: 0;
}

.footer-brand-name {
  color: #fdfcf9;
  font-family: "Iowan Old Style", Baskerville, Georgia, serif;
  font-size: 25px;
  letter-spacing: -.02em;
}

.footer-tagline {
  max-width: 230px;
  margin-top: 8px !important;
  color: #aaa9a3;
  font-family: "Iowan Old Style", Baskerville, Georgia, serif;
  font-size: 15px;
  line-height: 1.45;
}

.footer-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 13px;
}

.footer-heading {
  margin-bottom: 6px !important;
  color: #d15b49;
  font: 700 12px/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.footer-column a,
.footer-planned-link {
  color: #e5e2dc;
  font: 14px/1.35 Arial, Helvetica, sans-serif;
  text-decoration: none;
}

.footer-column a:hover {
  color: #e56a57;
}

.footer-planned-link {
  color: #8f908b;
  cursor: default;
}

.footer-bottom {
  position: relative;
  z-index: 1;
  width: min(1400px, 100%);
  margin: 58px auto 0;
  padding-top: 22px;
  border-top: 1px solid #ffffff24;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  color: #a6a59f;
  font: 12px/1.5 Arial, Helvetica, sans-serif;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.footer-policy-note {
  text-align: right;
}

@media (max-width: 700px) {
  .brand-logo {
    width: 66px;
    height: 66px;
  }

  .header-inner {
    min-height: 76px;
  }

  .landing-hero {
    padding: 30px 0 32px !important;
  }

  .landing-copy h1 {
    font-size: clamp(42px, 12.5vw, 56px) !important;
    line-height: .98 !important;
  }

  .landing-points {
    display: none !important;
  }

  .landing-reassurance {
    margin-top: 28px !important;
  }

  .jl-unlock-card {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px;
  }

  .jl-unlock-card button {
    width: 100%;
  }

  .footer-frame {
    grid-template-columns: 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-policy-note {
    text-align: left;
  }
}

@media (max-width: 430px) {
  .site-footer {
    padding-inline: 20px !important;
  }

  .footer-frame {
    grid-template-columns: 1fr;
  }

  .footer-brand {
    grid-column: auto;
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-logo {
    width: 100px;
    height: 100px;
  }
}

@media print {
  .jl-unlock-card {
    display: none !important;
  }
}

/* Relationship-specific readings use the same white, ink, and red palette. */
.connection-intro,
.connection-primary,
.connection-pillar-tile,
.connection-interaction,
.connection-supporting,
.connection-cross,
.connection-group,
.connection-master-flow,
.connection-indicators article,
.connection-guidance-grid article {
  background: #fff;
  border-color: #1c1e1c24;
}
.connection-primary { border-top-color: #a83f30; }
.connection-guidance-grid .jl-guidance-explanation { margin-top: 1rem; }
.connection-guidance-grid .jl-guidance-action { margin-top: 1.25rem; }
.connection-guidance-grid .jl-guidance-explanation > b,
.connection-guidance-grid .jl-guidance-action > b { display: block; font-size: 1rem; line-height: 1.5; }
.connection-guidance-grid .jl-guidance-explanation > p,
.connection-guidance-grid .jl-guidance-action > p { margin: .35rem 0 0; }
.connection-selector label { color: var(--ink); }
.connection-selector select { border-radius: 8px; border: 1px solid #1c1e1c55; }
.connection-type-badge { color: #a83f30; background: #fff; border-color: #a83f3066; }
.connection-indicators article { border-top-color: var(--ink); }
.connection-level,
.connection-level[data-level="Strong"],
.connection-tags [data-tone="support"] { color: var(--ink); background: #f5f5f3; }
.connection-level[data-level="Mixed"],
.connection-level[data-level="Growth Area"],
.connection-tags [data-tone="friction"] { color: #873229; background: #faf2f0; }
.connection-interaction.friction { border-left-color: #a83f30; }
.connection-print { border-radius: 999px; min-height: 44px; }
.connection-title-row { flex-wrap: wrap; }
.jl-pdf-actions { max-width: 290px; }
.jl-download-pdf { min-height: 44px; padding: 10px 22px; border: 1px solid #a83f30; border-radius: 999px; background: #a83f30; color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.jl-download-pdf:disabled { opacity: .65; cursor: wait; }
.jl-download-pdf:focus-visible, .jl-pdf-actions a:focus-visible { outline: 3px solid #1c1e1c; outline-offset: 3px; }
.jl-pdf-status { font-size: 14px; line-height: 1.45; margin: 8px 0 0; }
.jl-pdf-status:empty { display: none; }
.jl-pdf-actions a { display: inline-block; padding: 10px 0; color: #90372d; text-decoration: underline; }
.jl-parent-report .jl-report-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px;
  width: min(100%, 350px);
  margin: 24px 0;
}
.jl-parent-report .jl-report-actions .jl-pdf-actions { display: contents; }
.jl-parent-report .jl-report-actions .jl-pdf-help { grid-column: 1 / -1; }
.jl-parent-report .jl-report-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  border-radius: 999px;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
}
.jl-parent-report .connection-intro > .connection-selector { margin-top: 24px; }
.results.jl-locked .jl-report-actions { display: none; }
@media (max-width: 380px) {
  .jl-parent-report .jl-report-actions { grid-template-columns: minmax(0, 1fr); }
}
@media print { .jl-parent-report .jl-report-actions { display: none !important; } }
.results.jl-locked .jl-pdf-actions { display: none !important; }
@media print { .jl-pdf-actions { display: none !important; } }
.results summary:focus-visible,
.connection-selector select:focus-visible { outline: 3px solid #a83f30; outline-offset: 3px; }
@media (max-width: 1100px) {
  .footer-frame { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

.jl-birth-time-help { min-width: 0; margin: 0; color: #1c1e1c; }
.jl-birth-time-help > summary {
  display: list-item;
  min-height: 44px;
  box-sizing: border-box;
  padding: 10px 0;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 600;
  color: #a83f30;
  cursor: pointer;
  overflow-wrap: anywhere;
}
.jl-birth-time-help > summary:focus-visible { outline: 3px solid #a83f30; outline-offset: 3px; }
.jl-birth-time-help > p {
  margin: 0 0 12px;
  font-size: 1rem;
  line-height: 1.5;
  color: #454545;
  overflow-wrap: anywhere;
}

/* Keep date/time rows top-aligned and compact at narrow card widths. */
.person-panel .split-fields { align-items: start; }
.person-panel .field-stack { align-content: start; }
.person-panel .birth-time-entry { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.person-panel .time-part label,
.person-panel .period-field label { overflow: visible; text-overflow: clip; white-space: normal; letter-spacing: .03em; font-size: 11px; line-height: 1.4; }
.person-panel .input-help { font-size: 12px; line-height: 1.5; }
.person-panel .jl-time-format { margin: 3px 0 0; line-height: 1.5; }
.person-panel .jl-birth-time-help > summary { font-size: 12px; font-weight: 400; padding: 8px 0; }
.person-panel .jl-birth-time-help > p { font-size: 12px; }

.jl-next-steps { border-top: 4px solid #a83f30; background: #fff; }
.jl-next-steps h2 { font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.15; margin-bottom: 14px; }
.jl-next-steps p { font-size: 1rem; line-height: 1.6; }
.jl-next-steps-focus { max-width: 72ch; margin: 0 0 24px; }
.jl-next-step-row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; border-top: 1px solid #dedede; padding: 20px 0; }
.jl-next-step-row h3, .jl-next-step-action h3 { font-size: 1.15rem; margin: 0 0 8px; }
.jl-next-step-row p { margin: 0; }
.jl-next-step-row .jl-next-step-evidence { font-size: .875rem; color: #656565; margin-bottom: 8px; }
.jl-next-step-action { border-left: 3px solid #a83f30; padding: 4px 0 4px 20px; margin-top: 8px; }
.jl-next-step-action p { margin: 0; }
.jl-next-steps .jl-next-step-note { font-size: .875rem; color: #656565; margin: 24px 0 0; }
@media (max-width: 640px) {
  .jl-next-step-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}
@media print {
  .jl-next-step-row { display: block; padding: 8px 0; break-inside: avoid; }
  .jl-next-step-action { break-inside: avoid; }
}

/* Printed reports flow as a document, not a stack of indivisible web panels. */
@media print {
  @page { margin: 12mm; }
  html, body { background: #fff !important; font-size: 10.5pt !important; }
  body { line-height: 1.4 !important; }
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; animation: none !important; }
  .shell, main { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  #results.results { display: block !important; margin: 0 !important; }
  #results .reading-card, #results .pros-cons,
  #results .connection-cross-grid, #results .connection-guidance-grid,
  #results .connection-interactions, #results .connection-strength-challenge,
  #results .connection-supporting-grid, #results .connection-supporting,
  #results .connection-cross, #results .connection-interaction,
  #results .connection-practice,
  #results .connection-indicators, #results .compass-grid,
  #results .tips-grid, #results .snapshot-grid, #results .element-layout,
  #results .comparison-bars, #results .element-findings {
    display: block !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
    min-height: 0 !important;
  }
  #results .reading-card { padding: 12px 14px !important; margin: 0 0 12px !important; border-radius: 4px; }
  #results h2 { font-size: 18pt !important; line-height: 1.15 !important; margin: 0 0 8px !important; }
  #results h3 { min-height: 0 !important; font-size: 12pt !important; line-height: 1.25 !important; margin: 0 0 5px !important; }
  #results h4 { font-size: 10.5pt !important; margin: 0 0 4px !important; }
  #results p, #results li { font-size: 10.5pt !important; line-height: 1.35 !important; }
  #results p { margin-top: 0 !important; margin-bottom: 5px !important; }
  #results h2, #results h3, #results h4, #results summary, #results .eyebrow,
  #results .section-heading, #results .compass-heading { break-after: avoid; page-break-after: avoid; }
  #results p, #results li { orphans: 3; widows: 3; }
  #results .section-heading { display: block !important; margin-bottom: 10px !important; gap: 8px !important; }
  #results .connection-summary { margin: 8px 0 !important; }
  #results .connection-indicators { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin-top: 10px !important; }
  #results .compass-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  #results .compass-grid article:last-child { grid-column: auto; }
  #results .compass-heading { break-inside: avoid !important; break-after: avoid !important; margin-bottom: 8px !important; }
  #results .connection-type-badge, #results .pattern-badge { padding: 4px 8px !important; font-size: 9pt !important; }
  #results .snapshot, #results .connection-cross, #results .connection-supporting,
  #results .connection-interaction, #results .connection-guidance-grid article,
  #results .connection-indicators article, #results .compass-grid article,
  #results .tip, #results .finding, #results .connection-group {
    break-inside: avoid;
    page-break-inside: avoid;
    min-height: 0 !important;
    margin: 0 0 8px !important;
    padding: 9px 11px !important;
  }
  #results .connection-practice, #results .free-will-note, #results .context-message {
    padding: 10px 12px !important; margin: 8px 0 !important;
  }
  #results .connection-practice { padding: 0 !important; margin: 5px 0 !important; }
  #results .connection-strength-challenge article { padding: 10px 12px !important; }
  #results li + li { margin-top: 5px !important; }
  #results .connection-weights { display: block !important; }
  #results .connection-weights p { padding-bottom: 4px !important; }
  #results .connection-method { padding-top: 8px !important; margin-top: 10px !important; }
  #results .connection-pillar-pair { gap: 10px !important; margin: 8px 0 !important; }
  #results .connection-pillar-tile { padding: 9px !important; }
  #results .pillars-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 6px !important; }
  #results .mini-pillar { padding: 7px !important; }
  #results .connection-master-flow { margin: 8px 0 !important; padding: 10px !important; }
  #results .element-wheel { display: block; width: 58mm !important; height: 58mm !important; margin: 0 auto 10px !important; }
  #results .comparison-row { break-inside: avoid; margin: 0 0 7px !important; padding-bottom: 7px !important; }
  #results .comparison-label { margin-bottom: 4px !important; }
  #results .bar-series-group { gap: 3px !important; }
  #results .estimate-note, #results .master-order-note { padding: 6px 9px !important; }
  #results details { break-inside: auto !important; margin: 8px 0 !important; }
  #results details::details-content { content-visibility: visible !important; display: block !important; }
  #results summary { padding: 6px 0 !important; }
  .site-footer { margin: 12px 0 0 !important; padding: 10px 0 0 !important; break-inside: avoid; background: #fff !important; color: #1c1e1c !important; }
  .site-footer::before, .site-footer::after { display: none !important; }
  .site-footer p { color: #1c1e1c !important; font-size: 9pt !important; }
  #results .free-will-note { background: #fff !important; border-left: 3px solid #a83f30; }
  #results .free-will-note, #results .free-will-note :is(p, h3, b, span) { color: #1c1e1c !important; }
  .site-footer .footer-frame, .site-footer .footer-brand, .site-footer .footer-bottom { display: flex !important; gap: 10px !important; padding: 0 !important; margin: 0 !important; align-items: center !important; }
  .site-footer .footer-logo { width: 42px !important; height: 42px !important; }
  .site-footer nav, .site-footer .footer-column, .site-footer .footer-policy-note,
  .site-footer .footer-brand p, .site-footer .footer-tagline,
  .connection-selector, .connection-print, .jl-unlock-card { display: none !important; }
}
/* Element colors identify the element, never a good/bad or high/low rating. */
.element-findings .finding,
.element-findings .estimate-note { border-left-color: #d1d1d1; }
.element-findings .finding-element,
.element-findings .finding-prominence { display: block; }
.element-findings .finding-prominence { margin-top: 4px; font-weight: 400; }

/* A repeatable visual full stop after each analysis, not another data card. */
#results .jl-takeaway {
  background: #f5f5f4;
  border: 1px solid #dededb;
  border-left: 3px solid #a83f30;
  border-radius: 10px;
  padding: 22px 24px;
  margin: 28px 0 0;
  text-align: left;
}
#results .jl-takeaway .jl-takeaway-kicker {
  color: #a83f30;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  margin: 0 0 8px;
}
#results .jl-takeaway h3 { font-family: inherit; font-size: 20px; line-height: 1.3; font-weight: 700; margin: 0 0 12px; }
#results .jl-takeaway p { font-size: 15px; line-height: 1.6; margin: 0; }
#results .jl-takeaway .jl-takeaway-meaning { font-size: 17px; color: #1c1e1c; }
#results .jl-takeaway-actions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; border-top: 1px solid #dededb; padding-top: 16px; margin-top: 16px; }
#results .jl-takeaway h4 { font-family: inherit; font-size: 14px; font-weight: 700; margin: 0 0 5px; }
#results .jl-takeaway .jl-takeaway-note { color: #62625d; font-size: 13px; margin-top: 14px; }
@media (max-width: 640px) {
  #results .jl-takeaway { padding: 18px; margin-top: 22px; }
  #results .jl-takeaway-actions { grid-template-columns: minmax(0,1fr); gap: 14px; }
}
@media print {
  #results .jl-takeaway { padding: 10px 12px !important; margin: 10px 0 !important; break-inside: avoid; }
  #results .jl-takeaway h3 { font-size: 12pt !important; }
  #results .jl-takeaway-actions { gap: 12px; margin-top: 8px; padding-top: 8px; }
}
/* Viewport-positioned help remains visible even when the wheel fills the screen. */
.jl-wheel-explorer { width: 100%; min-width: 0; align-self: start; }
.jl-wheel-stage { position: relative; width: 100%; max-width: 560px; margin: auto; }
.jl-wheel-stage .element-wheel { display: block; width: 100%; height: auto; max-width: none; max-height: none; margin: 0; }
.jl-element-hotspot { position: absolute; transform: translate(-50%,-50%); width: 23.6%; height: 26.8182%; border: 2px solid transparent; border-radius: 50%; background: transparent; cursor: pointer; padding: 0; min-width: 44px; min-height: 44px; touch-action: manipulation; }
.jl-element-hotspot span { position: absolute; bottom: 7%; left: 50%; transform: translateX(-50%); font: 700 12px/16px sans-serif; border: 1px solid currentColor; border-radius: 50%; width: 16px; height: 16px; background: #fff; }
.jl-element-hotspot:focus-visible { outline: 3px solid #1c1e1c; outline-offset: 4px; }
.jl-element-hotspot[aria-expanded="true"] { box-shadow: 0 0 0 4px currentColor; }
#results .jl-wheel-hint { text-align: center; color: #62625d; font-size: 13px; line-height: 1.5; margin: 8px 0 14px; }
#results .jl-element-help { position: fixed; z-index: 10000; box-sizing: border-box; width: min(360px, calc(100vw - 24px)); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #dededb; border-radius: 12px; background: #fff; padding: 18px; margin: 0; box-shadow: 0 8px 32px #0003; }
.jl-element-help[hidden] { display: none !important; }
.jl-element-help-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
#results .jl-element-help h3 { font-family: inherit; font-size: 18px; line-height: 1.4; margin: 0 0 12px; }
#results .jl-element-help p { font-size: 15px; line-height: 1.6; margin: 0 0 10px; }
#results .jl-element-help .jl-element-help-note { font-size: 13px; color: #62625d; margin-bottom: 0; }
.jl-element-help-close { flex-shrink: 0; min-height: 44px; padding: 8px; background: #fff; color: #1c1e1c; border: 1px solid #b8b8b4; border-radius: 6px; cursor: pointer; font: inherit; font-size: 13px; }
@media (max-width: 640px) {
  #results .jl-element-help { left: 12px !important; right: 12px; top: auto !important; bottom: max(12px, env(safe-area-inset-bottom)); width: auto; max-height: 65vh; max-height: 65dvh; }
  .jl-element-help-heading { position: sticky; top: -18px; background: #fff; padding-top: 8px; margin-top: -8px; }
}
@media print {
  .jl-element-hotspot, .jl-element-help, .jl-wheel-hint { display: none !important; }
  .jl-wheel-explorer, .jl-wheel-stage { display: block !important; }
}

/* A compact, plain-language orientation before the actual report findings. */
#results .jl-reading-guide { padding: 28px; }
#results .jl-reading-guide > h2 { font-size: clamp(28px,3vw,40px); line-height: 1.15; margin: 8px 0 14px; }
#results .jl-reading-guide p { font-size: 16px; line-height: 1.6; margin: 0 0 14px; }
#results .jl-reading-guide .jl-guide-deck { color: var(--muted); max-width: 70ch; margin-bottom: 24px; }
#results .jl-guide-card { padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: #fff; min-width: 0; }
#results .jl-guide-heading { display: flex; gap: 12px; align-items: baseline; margin-bottom: 14px; }
#results .jl-guide-number { color: var(--olive); font-size: 14px; font-weight: 700; }
#results .jl-guide-heading h3 { font-size: 25px; line-height: 1.2; margin: 0; }
#results .jl-guide-element-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(240px,340px); gap: 28px; align-items: center; }
#results .jl-guide-wheel { position: relative; width: 100%; max-width: 320px; aspect-ratio: 1; margin: 0 auto; }
#results .jl-guide-orbit { position: absolute; inset: 16%; border: 1px solid var(--line); border-radius: 50%; }
#results .jl-guide-element { position: absolute; transform: translate(-50%,-50%); width: 28%; aspect-ratio: 1; min-height: 44px; padding: 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 2px solid var(--guide-element); border-radius: 50%; background: #faf8f5; color: var(--guide-element); font: inherit; cursor: pointer; }
#results .jl-guide-element strong { font-size: 14px; }
#results .jl-guide-element span { font-size: 12px; color: var(--ink); }
#results .jl-guide-element[aria-pressed="true"] { box-shadow: 0 0 0 3px #e7e2dc; background: #fff; }
#results .jl-guide-wheel-center { position: absolute; left: 32%; top: 40%; width: 36%; text-align: center; font-family: Georgia,serif; font-size: 20px; line-height: 1.15; }
#results .jl-guide-wheel-center small { display: block; font-family: Arial,sans-serif; font-size: 12px; margin-top: 6px; color: var(--muted); }
#results .jl-reading-guide .jl-guide-selected { font-size: 14px; min-height: 68px; color: var(--muted); margin: 12px 0 0; }
#results .jl-guide-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 16px; }
#results .jl-guide-method { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 14px; }
#results .jl-guide-method summary { min-height: 44px; align-content: center; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }
#results .jl-guide-method p { font-size: 14px; }
#results .jl-reading-guide .jl-guide-note { font-size: 14px; color: var(--muted); margin: 16px 0 0; }
#results .jl-guide-print-qualities { display: none; }
@media (max-width: 700px) {
  #results .jl-reading-guide { padding: 18px; }
  #results .jl-guide-element-layout, #results .jl-guide-pair { grid-template-columns: minmax(0,1fr); }
  #results .jl-guide-card { padding: 16px; }
  #results .jl-guide-element-layout { gap: 8px; }
}
@media (max-width: 380px) {
  #results .jl-guide-card { padding: 12px; }
  #results .jl-guide-element strong { font-size: 12px; }
  #results .jl-guide-element span { font-size: 11px; }
  #results .jl-guide-wheel-center { font-size: 16px; }
}
@media print {
  #results .jl-reading-guide { padding: 8px !important; break-inside: auto !important; }
  #results .jl-guide-wheel-area, #results .jl-guide-method { display: none !important; }
  #results .jl-guide-print-qualities { display: block !important; }
  #results .jl-guide-element-layout, #results .jl-guide-pair { display: block !important; }
  #results .jl-guide-card { border: 0; padding: 6px 0 !important; break-inside: avoid; }
  #results .jl-guide-heading { margin-bottom: 4px; }
  #results .jl-reading-guide > h2 { font-size: 18pt !important; }
  #results .jl-guide-heading h3 { font-size: 12pt !important; }
  #results .jl-reading-guide p { font-size: 9pt !important; line-height: 1.35; margin-bottom: 5px !important; }
  #results .jl-reading-guide .jl-guide-deck { margin-bottom: 6px !important; }
  #results .jl-guide-pair { margin-top: 0; }
}
/* Clear touch and keyboard affordances for expandable pattern labels. */
.connection-cross .connection-tap-hint { font: 14px/1.5 Arial,sans-serif; margin: 8px 0 12px; color: inherit; }
.connection-tags > .connection-tag-help { margin: 0; border: 1px solid currentColor; border-radius: 9px; max-width: 100%; overflow-wrap: anywhere; box-shadow: 0 2px 0 #00000012; }
.connection-tag-help > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 9px 12px; box-sizing: border-box; cursor: pointer; list-style: none; font: 700 14px/1.5 Arial,sans-serif; }
.connection-tag-help > summary::-webkit-details-marker { display: none; }
.connection-tag-help > summary:focus-visible,.connection-interpretation > summary:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.connection-tag-help > summary:hover { background: #00000008; }
.connection-tag-help[open] { flex-basis: 100%; }
.connection-tag-help[open] > summary { border-bottom: 1px solid currentColor; }
.connection-tag-help > p { font: 16px/1.6 Georgia,serif; padding: 12px; margin: 0; }
.connection-tag-help .connection-info-icon { border: 0; padding: 0; background: transparent; font: 700 18px/1 Arial,sans-serif; flex: none; }
.connection-cross > .connection-interpretation { margin-top: 16px; }
.connection-interpretation > summary { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; list-style: none; }
.connection-interpretation > summary::-webkit-details-marker { display: none; }
.connection-interpretation > summary::before { content: '+'; font: 700 22px/1 Arial,sans-serif; flex: none; }
.connection-interpretation[open] > summary::before { content: '−'; }
@media print { .connection-tap-hint,.connection-info-icon { display: none !important; } .connection-interpretation > summary::before { content: none; } .connection-tags > .connection-tag-help { box-shadow: none; } }

/* Keep the personalized reading ahead of secondary controls on phones. */
.jl-report-options,.jl-report-explainer{margin:0;padding:14px 20px}
.jl-report-options>summary,.jl-report-explainer>summary{min-height:44px;cursor:pointer;display:list-item;align-content:center;font-weight:600}
.jl-report-options>summary:focus-visible,.jl-report-explainer>summary:focus-visible{outline:3px solid #963928;outline-offset:4px}
.jl-report-options[open]>summary,.jl-report-explainer[open]>summary{margin-bottom:16px}
.jl-report-explainer>.jl-reading-guide{border:0;padding:0;box-shadow:none;margin:0}
@media(max-width:600px){.connection-intro{padding:20px}.connection-intro .connection-title-row{margin-bottom:12px}.connection-intro .connection-summary{font-size:16px;line-height:1.5;margin:12px 0 0}}
@media print{.jl-report-options>summary,.jl-report-explainer>summary{display:none!important}.jl-report-options,.jl-report-explainer{border:0;padding:0}}

/* Both download formats share the same on-device report snapshot. */
.jl-pdf-actions .jl-pdf-help{flex-basis:100%;font-size:13px;line-height:1.45;color:var(--muted);margin:6px 0}

/* Native-PDF regression fixes: keep short labels and chart summaries together.
   Long report sections still paginate; do not lock an entire report/card tree. */
@media print {
  #results .connection-practice > div,
  #results .snapshot,
  #results .compass-next-step {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  #results .connection-practice > div > b {
    display: block;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  #results .connection-supporting > header,
  #results p:has(> b:only-child),
  #results p:has(> strong:only-child) {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  #results .connection-supporting > header + h3,
  #results details > summary + p,
  #results p:has(> b:only-child) + p,
  #results p:has(> strong:only-child) + p {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }
}
@media print {
  /* Keep the short closing responsibility note off a page of its own. */
  #results .jl-parent-responsibility, #results .jl-takeaway {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

@media print {
  /* Only the short introduction is atomic; the long interpretation can paginate. */
  #results .connection-cross-intro {
    display: flow-root;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  /* Stacked snapshots may separate; each individual chart remains intact. */
  #results .jl-chart-details,
  #results .jl-chart-details::details-content,
  #results .jl-chart-details .snapshot-grid { display: contents !important; }
  #results .jl-chart-details > p { break-after: avoid; }
  #results .section-heading { break-inside: avoid; page-break-inside: avoid; }
}

/* Native Chromium pagination: flatten disclosure fragmentation containers, then
   keep only compact semantic units atomic. Long sections remain free to flow. */
@media print {
  #results details:not(.connection-tag-help),
  #results details::details-content { display: contents !important; }
  #results .jl-family-grid, #results .jl-family-insights { display: block !important; break-inside: auto !important; }
  #results .jl-takeaway, #results .free-will-note,
  #results .context-message, #results .jl-parent-responsibility,
  #results .snapshot, #results .connection-cross-intro,
  #results .connection-guidance-grid > article,
  #results .tips-grid > .tip,
  #results .connection-practice > div,
  #results .jl-family-element-card, #results .jl-parent-step,
  #results .jl-family-weighted-card {
    display: inline-block !important; width: 100%; box-sizing: border-box;
    vertical-align: top; break-inside: avoid !important;
  }
  #results h2, #results h3, #results h4 { break-inside: avoid !important; }
  #results .connection-tags { display: block !important; }
  #results .connection-tag-help { break-inside: avoid !important; }
}

/* Keep an interpretation disclosure label with its first printed content. */
@media print {
  #results .connection-interpretation > summary {
    display: block !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  #results .connection-interpretation > summary + * {
    break-before: avoid !important;
    page-break-before: avoid !important;
  }
}

/* Comparison labels are a single compact unit, even with long owner names. */
@media print {
  #results .connection-master-flow {
    display: inline-table !important;
    width: 100%; box-sizing: border-box;
    break-inside: avoid !important;
  }
  #results .connection-master-flow > * {
    display: table-cell !important;
    width: 33%; vertical-align: middle; text-align: center;
  }
  #results .connection-master-flow > div > * { display: block; }
  #results .connection-supporting > h3 {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  #results .connection-supporting > h3 + p {
    break-before: avoid !important;
  }
  #results .connection-supporting > p:has(> strong:only-child) {
    break-inside: avoid !important;
    orphans: 3; widows: 3;
  }
}

.jl-print-closing { display: contents; }
/* Compact closing material in print only; retain every note and destination. */
@media print {
  #results .compass-grid article { padding: 8px !important; }
  #results .compass-grid p { font-size: 10pt !important; }
  #results .compass-next-step { margin: 6px 0 !important; padding: 8px !important; }
  #results .free-will-note { margin: 6px 0 !important; padding: 8px !important; }
  #results .compass-note { margin: 6px 0 0 !important; padding-top: 6px !important; }
  #results .jl-next-step-row { display: inline-block !important; width: calc(33.333% - 8px); margin-right: 8px; padding: 6px !important; box-sizing: border-box; vertical-align: top; break-inside: avoid !important; }
  #results .jl-next-step-row p { font-size: 10pt !important; }
  #results .jl-next-step-row details { margin: 3px 0 !important; }
  #results .jl-next-step-row summary { padding: 3px 0 !important; }
  #results .disclaimer { display: inline-block !important; width: 100%; box-sizing: border-box; margin: 6px 0 !important; padding: 0 !important; break-inside: avoid !important; }
  #results .jl-personal-reading { padding: 8px 10px !important; margin: 6px 0 0 !important; gap: 6px !important; }
  #results .jl-personal-reading h2 { font-size: 14pt !important; }
  #results .jl-personal-reading .consultation-primary { padding: 6px 10px !important; min-height: 0 !important; }
  #results .estimate-note,
  #results details.jl-pattern-background { display: inline-block !important; width: 100%; box-sizing: border-box; vertical-align: top; break-inside: avoid !important; }
  /* Web disclosures need touch space; printed labels do not. Keep the text
     size unchanged while reducing repeated vertical gaps across long reports. */
  #results details { margin: 4px 0 !important; }
  #results summary { padding: 3px 0 !important; }
  #results .reading-card { padding: 10px 12px !important; margin-bottom: 10px !important; }
  #results .jl-takeaway { margin: 8px 0 !important; }
  /* The disclosure's web-only invitation is redundant once its interpretation
     is expanded in print; the actual pattern headings and guidance remain. */
  #results .connection-interpretation > summary { display: none !important; }
  /* Let closing sections use the remaining space on Letter as well as A4.
     The individual notes stay atomic without forcing a mostly empty page. */
  #results:not(.jl-parent-report) .jl-next-steps,
  #results .compatibility-compass { break-before: auto !important; page-break-before: auto !important; }
  #results .reading-card:has(> .compass-grid) { display: block !important; width: 100%; box-sizing: border-box; break-inside: auto !important; }
  #results .compass-grid { grid-template-columns: 1fr 1fr 1.6fr !important; }
  #results .reading-card:has(> .tips-grid) { break-inside: avoid !important; }
  #results .eyebrow { break-inside: avoid !important; page-break-inside: avoid !important; }
  #results .jl-personal-reading { display: inline-block !important; width: 100%; box-sizing: border-box; break-inside: avoid !important; }
  #results .jl-family-weighted-summary .jl-family-grid > div { display: contents !important; }
  #results .jl-family-insights { display: contents !important; }
  /* Flow the appendix down each column, avoiding empty row space when names
     wrap to different lengths. Keep every comparison and its owner labels. */
  #results .jl-family-pair-list { display: block !important; columns: 2; column-gap: 10px; }
  #results .jl-family-pair-list > article { display: inline-block !important; width: 100%; margin: 0 0 5px !important; padding: 5px !important; box-sizing: border-box; vertical-align: top; break-inside: avoid !important; }
  #results .jl-family-pair-list > article p { font-size: 9.5pt !important; line-height: 1.25 !important; margin: 3px 0 !important; }
  #results .jl-family-pair-list > article h3 { font-size: 11pt !important; margin: 0 0 3px !important; }
  #results.jl-parent-report .jl-family-insights .jl-family-weighted-card { padding: 8px !important; margin: 6px 0 !important; }
  #results .jl-parent-responsibility { padding: 8px 10px !important; margin: 6px 0 !important; }
  #results .jl-parent-responsibility h2 { font-size: 14pt !important; }
  #results .jl-parent-responsibility p { font-size: 9.5pt !important; line-height: 1.3 !important; }
  #results .jl-next-steps p, #results .jl-next-steps summary,
  #results .disclaimer p { font-size: 9.5pt !important; line-height: 1.25 !important; }
  #results .jl-next-step-row { padding: 4px !important; margin-right: 6px; width: calc(33.333% - 6px); }
  #results .jl-next-steps summary { min-height: 0 !important; padding: 2px 0 !important; }
  #results .jl-next-steps h3 { font-size: 11pt !important; }
  #results .jl-next-step-action { padding: 4px 8px !important; margin: 4px 0 !important; }
  #results .jl-next-steps { break-inside: avoid !important; break-after: avoid !important; page-break-after: avoid !important; }
  #results .disclaimer { display: block !important; break-before: avoid !important; break-after: avoid !important; page-break-after: avoid !important; }
  #results .jl-personal-reading { display: inline-block !important; break-before: avoid !important; }
  /* Group the actual closing content, rather than guessing where a paper
     size will break. This leaves the website layout unchanged. */
  #results .jl-print-closing { display: inline-block !important; width: 100%; box-sizing: border-box; break-inside: avoid !important; vertical-align: top; }
}

/* Data marks must survive the browser's background-graphics setting. The
   outline is a monochrome fallback; exact color preserves the element colors. */
@media print {
  #results .mini-track, #results .mini-track i, #results .series-dot {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  #results .mini-track { outline: 0.5pt solid #b7b0a8; }
  #results .mini-track i { outline: 0.5pt solid #555; outline-offset: -0.5pt; }
  /* These short complete units fit on a page; do not strand their last line. */
  #results .connection-strength-challenge > article,
  #results .reading-card:has(> .compass-grid) {
    display: inline-block !important;
    width: 100%;
    box-sizing: border-box;
    vertical-align: top;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}
/* Signature identity — no calculator or report layout changes. */
.site-header .brand-logo{display:block;width:240px;height:auto;max-width:100%;border:0;border-radius:0;object-fit:contain;mix-blend-mode:normal}.brand-home-link{border-radius:0}.site-footer .footer-brand{flex-direction:column;align-items:flex-start;gap:18px}.site-footer .footer-logo{display:block;width:250px;height:auto;border:0;border-radius:0;filter:none;object-fit:contain}.signature-legal-logo{display:block;width:260px;max-width:100%;height:auto}@media(max-width:600px){.site-header .brand-logo{width:185px}.site-header .header-label{max-width:130px;font-size:12px}.site-footer .footer-logo{width:230px}}
