.program-page { width: min(calc(100% - 64px), 920px); margin: 0 auto; padding: 104px 0 56px; }
.program-page [hidden] { display: none !important; }
.program-page > *, .program-page section, .program-page form, .program-page fieldset { min-width: 0; }
.program-page h1, .program-page h2, .program-page h3 { color: var(--ink); }
.program-page h1 { margin: 0; font: 400 42px/1.12 var(--serif); letter-spacing: -.025em; }
.program-page h2 { margin: 0 0 12px; font: 400 29px/1.2 var(--serif); letter-spacing: -.015em; }
.program-page h3 { font: 500 23px/1.25 var(--serif); }
.program-page p { margin: 0 0 16px; }
.program-page a { text-underline-offset: 4px; }
.program-page :where(a, button, textarea, summary):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.program-page :where(button, a, label) { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.program-skip { position: fixed; z-index: 60; top: 8px; left: 16px; padding: 12px 18px; color: #fff; border-radius: 12px; background: var(--ink); transform: translateY(-160%); }
.program-skip:focus { transform: translateY(0); }
.program-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 30px; color: var(--muted); font-size: 12px; }
.program-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.program-intro { padding-bottom: 30px; }
.program-eyebrow { color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.program-lead { max-width: 760px; margin-top: 20px !important; font-size: 18px; line-height: 1.65; }
.program-privacy { max-width: 760px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.program-form, .program-fallback, .program-result { padding-top: 28px; border-top: 1px solid var(--line); }
.program-form, #result-title { scroll-margin-top: 96px; }
.program-form__intro { margin-bottom: 28px; }
.program-form__intro p { color: var(--muted); font-size: 15px; }
.program-theme { width: 100%; margin: 0 0 28px; padding: 0 0 26px; border: 0; border-bottom: 1px solid var(--line); }
.program-theme legend { max-width: 100%; margin: 0 0 10px; padding: 0; font-size: 18px; font-weight: 650; line-height: 1.45; }
.program-theme__number { display: inline-block; margin-right: 9px; color: var(--muted); font: 400 21px/1 var(--serif); }
.program-theme > p { max-width: 760px; margin-bottom: 17px; color: var(--ink-soft); font-size: 15px; line-height: 1.65; }
.program-choices { display: flex; flex-wrap: wrap; gap: 9px; }
.program-choice { position: relative; display: block; min-width: 0; cursor: pointer; user-select: none; -webkit-touch-callout: none; }
.program-choice input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.program-choice span { display: flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 18px; border: 1px solid rgba(41,70,60,.2); border-radius: 12px; color: var(--ink); background: rgba(255,255,255,.56); font-size: 14px; font-weight: 600; line-height: 1.4; text-align: center; transition: background-color .15s ease, border-color .15s ease; }
.program-choice:hover span { background: var(--sage); }
.program-choice input:checked + span { color: #fff; border-color: var(--ink); background: var(--ink); }
.program-choice input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 3px; }
.program-notes { margin: 0 0 24px; }
.program-notes label { display: block; margin-bottom: 7px; font-size: 16px; font-weight: 650; }
.program-notes label span { color: var(--muted); font-size: 14px; font-weight: 400; }
.program-notes p { max-width: 760px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.program-notes textarea { display: block; width: 100%; min-height: 126px; max-height: 400px; padding: 15px 16px; color: var(--ink); border: 1px solid rgba(41,70,60,.22); border-radius: 14px; background: rgba(255,255,255,.66); font: 400 16px/1.6 var(--sans); resize: vertical; }
.program-notes textarea::placeholder { color: var(--muted); opacity: 1; }
.program-validation { color: var(--ink-deep); font-size: 14px; font-weight: 650; }
.program-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin: 20px 0 14px; }
.program-button { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 48px; padding: 12px 20px; color: var(--ink); border: 1px solid rgba(41,70,60,.22); border-radius: 14px; background: rgba(255,255,255,.74); font: 650 14px/1.5 var(--sans); text-decoration: none; text-align: center; cursor: pointer; }
.program-button:hover { background: var(--sage); }
.program-button--primary { color: #fff; border-color: var(--ink); background: var(--ink); }
.program-button--primary:hover { color: #fff; background: var(--ink-deep); }
.program-form__note, .program-print-help { color: var(--muted); font-size: 13px; line-height: 1.65; }
.program-result { scroll-margin-top: 96px; }
.program-print-brand { color: var(--muted); font-size: 12px; }
.program-result__intro { margin-bottom: 28px !important; color: var(--ink-soft); }
.program-result__topic { margin-bottom: 26px; }
.program-result__topic h3, .program-result__later h3, .program-result__notes h3 { margin: 0 0 10px; }
.program-result__topic ul, .program-result__later ul, .program-fallback ul { margin: 0; padding-left: 23px; }
.program-result__topic li, .program-fallback li { padding-left: 3px; }
.program-result__topic li + li, .program-result__later li + li, .program-fallback li + li { margin-top: 9px; }
.program-result__status { color: var(--muted); font-size: 12px; }
.program-result__later { margin: 26px 0; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.program-result__later p, .program-result__later li { color: var(--muted); font-size: 14px; }
.program-result__notes { margin: 26px 0; }
.program-result__notes p { overflow-wrap: anywhere; white-space: pre-wrap; }
.program-result__boundary { padding: 18px 20px; border-radius: 14px; background: var(--sage); font-size: 14px; line-height: 1.65; }
.program-result__private, .program-result__author { color: var(--muted); font-size: 12px; line-height: 1.65; }
.program-fallback > section { margin: 24px 0; }
.program-fallback h3 { margin: 0 0 12px; }
.program-fallback__author { color: var(--muted); font-size: 12px; }
.program-choice-button { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 150px; min-width: 0; min-height: 48px; padding: 11px 16px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--paper); font: 600 16px/1.45 var(--sans); text-align: center; cursor: pointer; overflow-wrap: anywhere; }
.program-choice-button[aria-checked="true"] { background: var(--ink); color: #fffdf8; border-color: var(--ink); }
.program-choice-button:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.program-choice-button:hover:not([aria-checked="true"]) { background: var(--sage); }
.program-button:disabled { cursor: wait; opacity: .65; }
.program-validation:empty { display: none; }
.program-result__topic { overflow-wrap: anywhere; }
.program-reset-dialog { width: min(460px,calc(100% - 32px)); max-height: calc(100dvh - 48px); overflow: auto; padding: 26px; border: 1px solid var(--line); border-radius: 22px; color: var(--ink); background: var(--paper); font: 16px/1.65 var(--sans); }
.program-reset-dialog::backdrop { background: #18312888; }
.program-reset-dialog h2 { margin: 0 0 14px; font: 400 28px/1.25 var(--serif); }
.program-reset-dialog p { margin: 0 0 22px; }
.program-reset-dialog .program-actions { margin: 0; }
.program-reset-dialog :focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.program-next { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; margin-top: 48px; padding: 30px; border-radius: 24px; background: var(--sage); }
.program-next h2 { font-size: 27px; }
.program-next p { color: var(--ink-soft); font-size: 15px; }
.program-next .program-next__privacy { margin: 0; color: var(--muted); font-size: 12px; }
.program-next__actions { display: grid; gap: 10px; }
.program-related { margin-top: 44px; }
.program-related > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.program-related a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; min-height: 72px; padding: 17px 0; border-bottom: 1px solid var(--line); font-size: 15px; text-decoration: none; }
.program-related a:hover { text-decoration: underline; }
.program-related a span { flex: 0 0 auto; }
.program-source { margin-top: 38px; padding-top: 24px; border-top: 1px solid var(--line); }
.program-source h2 { font-size: 23px; }
.program-source p { margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }

@media (max-width: 900px) {
  .program-page { width: min(calc(100% - 40px), 760px); }
  .program-next { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .program-next__actions { display: flex; flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .program-page { width: calc(100% - 32px); padding-top: 82px; padding-bottom: 32px; }
  .program-breadcrumbs { margin-bottom: 21px; font-size: 11px; }
  .program-page h1 { font-size: 30px; line-height: 1.16; text-align: center; }
  .program-eyebrow { font-size: 9px; text-align: center; }
  .program-page h2 { font-size: 25px; }
  .program-page h3 { font-size: 22px; }
  .program-intro { padding-bottom: 22px; }
  .program-lead { margin-top: 17px !important; font-size: 16px; }
  .program-privacy { font-size: 12px; }
  .program-form, .program-fallback, .program-result { padding-top: 24px; }
  .program-form__intro { margin-bottom: 24px; }
  .program-theme { margin-bottom: 23px; padding-bottom: 23px; }
  .program-theme legend { font-size: 17px; }
  .program-theme > p { font-size: 14px; }
  .program-choices { display: flex; flex-wrap: wrap; gap: 8px; }
  .program-choice-button { flex: 1 1 140px; padding: 11px 12px; font-size: 16px; }
  .program-choice span { min-height: 54px; height: 100%; padding: 9px 6px; font-size: 12px; }
  .program-notes label { font-size: 15px; }
  .program-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .program-button { width: 100%; font-size: 14px; }
  .program-next { margin-top: 36px; padding: 23px 18px; border-radius: 18px; }
  .program-next h2 { font-size: 25px; }
  .program-next__actions { display: grid; grid-template-columns: minmax(0, 1fr); }
  .program-related { margin-top: 34px; }
  .program-related > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .program-source h2 { font-size: 23px; }
  .program-result__boundary { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .program-choice span { transition: none; }
}

@media print {
  @page { margin: 16mm; }
  html, body { color: #202d27; background: #fff; font: 11pt/1.5 Arial, sans-serif; }
  .site-chrome-header, .site-chrome-footer, .program-skip { display: none !important; }
  .program-page { width: 100%; max-width: none; margin: 0; padding: 0; }
  body.has-program-result .program-page > :not(.program-result), body:not(.has-program-result) .program-page > :not(.program-fallback) { display: none !important; }
  body:not(.has-program-result) .program-page .program-fallback { display: block !important; }
  .program-result, .program-fallback { padding: 0; border: 0; }
  .program-result [data-screen-only] { display: none !important; }
  .program-page h2 { font-size: 21pt; text-align: left; }
  .program-page h3 { font-size: 14pt; }
  .program-result__topic, .program-fallback > section { break-inside: avoid; }
  .program-result__later, .program-result__notes { break-inside: auto; }
  .program-result__boundary { padding: 12px 0; border-radius: 0; background: none; border-top: 1px solid #ccc; }
  .program-result__private, .program-result__author, .program-print-brand, .program-fallback__author { font-size: 9pt; color: #444; }
}

@media screen {
  .program-breadcrumbs,.program-privacy,.program-notes p,.program-form__note,.program-print-help,.program-result__status,.program-result__private,.program-result__author,.program-fallback__author,.program-next .program-next__privacy,.program-source p { font-size: 14px; line-height: 1.65; }
  .program-form__intro p,.program-theme > p,.program-result__later p,.program-result__later li,.program-result__boundary,.program-next p { font-size: 16px; }
  .program-choice span,.program-button,.program-related a { font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
}
@media screen and (max-width: 560px) {
  .program-choices { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .program-choice span { min-height: 48px; padding: 11px 14px; }
}

@media screen {
  html:not([data-theme="dark"]) .program-next .program-next__privacy { color: var(--ink-soft); }
  html[data-theme="dark"] .program-choice span,html[data-theme="dark"] .program-choice-button,html[data-theme="dark"] .program-button { background: var(--surface); border-color: var(--sage-deep); color: var(--ink); }
  html[data-theme="dark"] .program-notes textarea { background: var(--surface); border-color: var(--sage-deep); color: var(--ink); }
  html[data-theme="dark"] .program-choice:hover span,html[data-theme="dark"] .program-choice-button:hover:not([aria-checked="true"]),html[data-theme="dark"] .program-button:hover { background: var(--surface-hover); }
  html[data-theme="dark"] .program-choice input:checked + span,html[data-theme="dark"] .program-choice-button[aria-checked="true"],html[data-theme="dark"] .program-button--primary,html[data-theme="dark"] .program-skip { background: var(--action); border-color: var(--action); color: var(--on-action); }
  html[data-theme="dark"] .program-button--primary:hover { background: #cae7d4; border-color: #cae7d4; color: var(--on-action); }
  html[data-theme="dark"] .program-reset-dialog { background: var(--surface-raised); color: var(--ink); }
  html[data-theme="dark"] .program-reset-dialog::backdrop { background: rgb(0 0 0 / .65); }
  html[data-theme="dark"] .program-page :where(a,button,textarea,summary):focus-visible,html[data-theme="dark"] .program-choice input:focus-visible + span,html[data-theme="dark"] .program-choice-button:focus-visible,html[data-theme="dark"] .program-reset-dialog :focus-visible { outline-color: var(--gold); }
}
/* Keep mobile breadcrumbs 9px below the 61px shared header. Safe-area space is owned by the shell. */
@media screen and (max-width:1280px) {
  .program-page { padding-top: 70px; }
}

/* Make the answering step distinct from the reference questions below. */
.program-form__intro .program-progress { margin: 16px 0 0; color: var(--ink-deep); font-size: 14px; font-weight: 650; }
.program-theme legend { line-height: 1.5; }
.program-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.program-choice-button { justify-content: flex-start; gap: 10px; text-align: left; }
.program-choice-button::before { content: ""; box-sizing: border-box; flex: 0 0 17px; width: 17px; height: 17px; border: 1.5px solid currentColor; border-radius: 50%; }
.program-choice-button[aria-checked="true"]::before { border-width: 5px; }
.program-result__next { margin-top: 20px !important; color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
@media (max-width:560px) {
  .program-choices { grid-template-columns: minmax(0,1fr); }
  .program-choice-button { min-height: 46px; padding: 10px 14px; }
}
