/* The training-plan guide and its browser-printable selection worksheet. */
.programs-page :is(h1,h2,h3,p,a,label,legend,li) { overflow-wrap: anywhere; }
.programs-page p a,.program-sources a { text-decoration: underline; text-underline-offset: 3px; }
.program-hero { padding-block: 24px 52px; }
.program-hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); align-items: center; gap: clamp(30px,5vw,76px); }
.program-hero-copy { padding-block: 10px; }
.program-hero h1 { margin: 20px 0 24px; max-width: 15ch; font-family: var(--display); font-weight: 600; font-size: clamp(2.8rem,5.2vw,5.2rem); letter-spacing: -.025em; line-height: 1.02; }
.program-hero .page-lead { font-size: clamp(1.08rem,1.4vw,1.23rem); line-height: 1.65; max-width: 48ch; }
.program-hero-copy > p:not(.page-lead) { max-width: 48ch; color: var(--ink-soft); }
.program-jump { display: inline-flex; align-items: center; gap: 24px; color: var(--ink); font-weight: 700; text-decoration: none; border-block-end: 1px solid currentColor; padding-block: 12px; }
.program-jump span { font-size: 1.6rem; }
.program-byline { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-block-start: 24px; font-size: .75rem; color: var(--muted); }
.program-byline a { color: inherit; }
.program-photo { margin: 0; min-width: 0; }
.program-photo picture { display: block; overflow: hidden; border-radius: 5px; background: #b6a798; }
.program-photo img { display: block; width: 100%; height: auto; }
.program-photo figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; font-size: .71rem; color: var(--muted); margin-block-start: 10px; }
.program-photo figcaption span:first-child { color: var(--ink); }
.program-photo-note { display: flex; align-items: center; gap: 22px; margin-block-start: 24px; padding: 22px 24px; background: #e7e9dc; border-inline-start: 3px solid var(--accent-strong); }
.program-note-number { font-family: var(--display); font-size: 2.8rem; line-height: 1; color: var(--accent-strong); }
.program-photo-note p { margin: 0; font-size: .91rem; color: var(--ink-soft); }
.program-photo-note strong { color: var(--ink); }
.program-body { max-width: 1180px; }
.program-contents { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 26px; border-block: 1px solid var(--line-strong); padding-block: 22px; font-size: .81rem; }
.program-contents > span { color: var(--muted); font: .7rem var(--font-mono); text-transform: uppercase; letter-spacing: .08em; }
.program-contents a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.program-section { padding-block: clamp(38px,6vw,72px); border-block-end: 1px solid var(--line); scroll-margin-top: 105px; }
.program-section-heading { max-width: 750px; margin-block-end: 30px; }
.program-section-heading h2 { margin: 13px 0 16px; font-family: var(--display); font-weight: 600; font-size: clamp(2rem,3.2vw,3rem); line-height: 1.12; }
.program-section-heading > p { color: var(--ink-soft); max-width: 65ch; margin: 0; }
.program-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; }
.program-choice { min-width: 0; border-block-start: 1px solid var(--line-strong); padding-block-start: 22px; }
.program-choice-number { display: block; font-family: var(--display); font-size: 2.8rem; color: var(--accent-strong); line-height: 1; }
.program-choice h3 { margin: 20px 0 12px; font-size: 1.14rem; line-height: 1.4; }
.program-choice p { font-size: .94rem; }
.program-choice p:last-child { color: var(--ink-soft); }
.program-citation { font-family: var(--font-mono); font-size: .8em; color: var(--accent-strong); white-space: nowrap; }
.program-check-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 56px; align-items: start; }
.program-checklist { list-style: none; padding: 0; margin: 0; counter-reset: program-check; }
.program-checklist li { counter-increment: program-check; position: relative; padding: 0 0 22px 42px; margin-block-end: 22px; border-block-end: 1px solid var(--line); }
.program-checklist li::before { content: counter(program-check,decimal-leading-zero); position: absolute; inset-inline-start: 0; color: var(--accent-strong); font: .8rem var(--font-mono); padding-block-start: 3px; }
.program-checklist strong,.program-checklist span { display: block; }
.program-checklist span { margin-block-start: 6px; color: var(--ink-soft); }
.program-body-note { max-width: 60ch; color: var(--ink-soft); }
.program-evidence-note { padding: 30px; background: #e7e9dc; border-radius: 4px; }
.program-evidence-note h3 { margin: 13px 0 18px; font-family: var(--display); font-size: 2rem; line-height: 1.16; }
.program-evidence-note p { font-size: .94rem; }
.program-evidence-scope { padding-block-start: 15px; border-block-start: 1px solid var(--line); color: var(--ink-soft); font-size: .82rem !important; }
.program-time-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--line-strong); margin-block: 24px; }
.program-time-grid > div { padding: 28px 32px; }
.program-time-grid > div + div { border-inline-start: 1px solid var(--line-strong); background: #ebece1; }
.program-time-label { font: .73rem var(--font-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.program-time-math { margin: 12px 0; font-family: var(--display); font-size: 3.3rem; line-height: 1.1; }
.program-time-math span { font: .95rem var(--body); }
.program-time-grid p:last-child { margin-block-end: 0; }
.program-sheet { padding: 32px; background: #ffffff; border: 1px solid var(--line-strong); border-radius: 4px; box-shadow: 0 7px 0 -1px #e0e3d4; }
.program-sheet fieldset { margin: 0 0 30px; padding: 0; border: 0; min-width: 0; }
.program-sheet legend { margin-block-end: 13px; font-weight: 700; }
.program-days { display: flex; flex-wrap: wrap; gap: 10px; }
.program-days label { display: inline-flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid var(--line-strong); border-radius: 3px; cursor: pointer; font-size: .9rem; }
.program-days input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent-strong); }
.program-sheet-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px 28px; }
.program-sheet-grid label,.program-review-label { display: flex; flex-direction: column; gap: 10px; min-width: 0; font-weight: 700; font-size: .9rem; }
.program-sheet-grid :is(input,textarea),.program-review-label input { box-sizing: border-box; inline-size: 100%; min-inline-size: 0; border: 1px solid var(--line-strong); border-radius: 3px; background: #fbfcf7; color: var(--ink); padding: 12px; font: 400 1rem/1.5 var(--body); }
.program-sheet-grid textarea { resize: vertical; min-height: 110px; }
.program-review-label { max-width: 270px; margin-block-start: 26px; }
.program-sheet-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-block-start: 28px; }
.program-sheet-actions button { min-height: 44px; cursor: pointer; border: 0; border-radius: 4px; font: 700 .9rem var(--body); padding: 13px 24px; }
.program-sheet-actions > span { color: var(--muted); font-size: .81rem; }
.program-print-source { display: none; }
.program-collections { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; padding: 0; margin: 0; gap: 0 24px; }
.program-collections li { padding-block: 17px; border-block-end: 1px solid var(--line-strong); font-weight: 600; font-size: .91rem; }
.program-collections :is(a,span) { color: var(--ink); }
.program-collections [data-planned-url] { border: 0; }
.program-topic-index { border: 1px solid var(--line-strong); background: #fbfcf6; }
.program-topic-index > summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 26px 30px; cursor: pointer; list-style: none; }
.program-topic-index > summary::-webkit-details-marker { display: none; }
.program-topic-index > summary > span:first-child { display: flex; flex-direction: column; gap: 8px; }
.program-topic-index > summary > span:last-child { font-size: 2rem; }
.program-topic-index[open] > summary > span:last-child { transform: rotate(45deg); }
#catalog-title { font-family: var(--display); font-weight: 600; font-size: clamp(1.5rem,2.5vw,2.2rem); line-height: 1.15; }
.program-topic-panel { padding: 0 30px 30px; }
.program-index-intro { max-width: 70ch; color: var(--ink-soft); }
.programs-page .filter-bar { position: static; }
.programs-page .catalog-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.programs-page .catalog-card { border-radius: 3px; padding: 18px; box-shadow: none; background: #ffffff; }
.programs-page .catalog-card h3 { margin: 0; font-size: 1rem; line-height: 1.45; }
.programs-page .catalog-card h3 [data-planned-url] { color: var(--ink); border: 0; }
.program-topic-kind { display: block; margin-block-start: 10px; color: var(--muted); font: .68rem/1.5 var(--font-mono); }
.program-sources .program-section-heading h2 { font-size: 2.1rem; }
.program-sources .sources-list { font-size: .85rem; padding-inline-start: 20px; display: grid; gap: 20px; }
.program-sources li { padding-inline-start: 7px; scroll-margin-top: 105px; }
.program-related { padding-block: 38px 65px; }
.program-related h2 { font-family: var(--display); font-size: 2rem; margin: 12px 0 22px; }
.program-related > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 35px; margin: 0; padding: 0; list-style: none; }
.program-related a { color: var(--accent-strong); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1050px) {
  .program-hero-grid { gap: 30px; }
  .program-photo-note { padding: 20px; gap: 15px; }
  .program-choice-grid { gap: 22px; }
  .program-check-grid { gap: 30px; }
  .program-collections { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .programs-page .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .program-hero { padding-block: 5px 32px; }
  .program-hero-grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .program-hero h1 { font-size: clamp(2.6rem,9vw,4rem); margin-block: 15px 22px; }
  .program-choice-grid,.program-check-grid,.program-sheet-grid { grid-template-columns: minmax(0,1fr); }
  .program-choice-grid { gap: 25px; }
  .program-choice { padding-block-start: 18px; }
  .program-choice h3 { margin-block-start: 13px; }
  .program-evidence-note { padding: 25px; }
  .program-time-grid > div { padding: 23px; }
  .program-time-math { font-size: 2.6rem; }
  .program-sheet { padding: 24px; }
  .program-topic-panel { padding: 0 20px 20px; }
  .program-topic-index > summary { padding: 24px 20px; }
  .programs-page .catalog-grid,.program-related > ul { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 420px) {
  .program-time-grid { grid-template-columns: minmax(0,1fr); }
  .program-time-grid > div + div { border-inline-start: 0; border-block-start: 1px solid var(--line-strong); }
  .program-contents > span { flex-basis: 100%; }
  .program-photo-note { align-items: start; }
  .program-sheet { padding: 20px; }
  .program-days label { padding: 10px; }
}
@media print {
  .programs-page :focus-visible { outline: none !important; box-shadow: none !important; }
  .programs-page > header,.programs-page > footer,.program-hero,.programs-page main > .wrap:not(.program-body),.program-body > :not(#worksheet) { display: none !important; }
  .programs-page #worksheet { padding: 0 !important; border: 0; }
  .program-worksheet .program-section-heading { margin-block-end: 18px; }
  .program-worksheet h2 { font-size: 25pt; }
  .program-sheet { padding: 20px; box-shadow: none; border: 1px solid #333; }
  .program-sheet-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .program-days label { padding: 6px 9px; }
  .program-sheet-grid :is(input,textarea),.program-review-label input { background: #fff; border-color: #555; padding: 8px; font-size: 10pt; }
  .program-sheet-grid textarea { min-height: 70px; }
  .program-print-source { display: block; margin-block-start: 20px; font-size: 9pt; }
}
