@charset "UTF-8";
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html:not(.js) .enhancement-only {
  display: none;
}
.field-row > .error {
  grid-column: 1/-1;
}
.saved-plan {
  border: 1px solid #cbd9fa;
  background: #f2f6ff;
  border-radius: 12px;
  padding: 17px;
  margin-bottom: 25px;
}
.saved-plan p {
  font-size: 13px;
  font-weight: 650;
  margin-bottom: 11px;
}
.saved-plan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.saved-plan-actions .button {
  min-height: 44px;
  font-size: 12px;
  padding: 10px 12px;
}
:root {
  color-scheme: light;
  --ink: #16243c;
  --body-ink: #34435b;
  --muted: #53627a;
  --blue: #315ed5;
  --blue-dark: #234bb8;
  --line: #dfe5ef;
  --control-line: #8493aa;
  --paper: #f7f9fc;
  --soft: #edf2ff;
  --gold: #edb451;
  --green: #226a51;
  --radius: 18px;
  --font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-padding-top: 20px;
}
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
button,
input,
select {
  font: inherit;
}
a {
  color: var(--blue);
  text-underline-offset: 4px;
}
a:hover {
  color: var(--blue-dark);
}
button,
a,
input,
select {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: default;
  opacity: 0.55;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--blue-dark);
  outline-offset: 3px;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2,
h3 {
  line-height: 1.15;
  letter-spacing: -0.045em;
}
h1 {
  font-size: clamp(2.6rem, 4.6vw, 4.25rem);
  font-weight: 650;
}
h2 {
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  font-weight: 650;
}
h3 {
  font-size: 1.25rem;
  letter-spacing: -0.025em;
}
p + p {
  margin-top: 16px;
}
[hidden] {
  display: none !important;
}
.wrap {
  width: min(1120px, calc(100% - 64px));
  margin-inline: auto;
}
.narrow {
  max-width: 780px;
}
.skip-link {
  position: absolute;
  left: 18px;
  top: -100px;
  z-index: 50;
  background: var(--ink);
  color: white;
  padding: 12px 20px;
  border-radius: 8px;
}
.skip-link:focus {
  top: 12px;
}
.site-header {
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.header-row {
  min-height: 72px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: .18em;
  min-height: 44px;
  text-decoration: none;
  color: var(--ink);
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -0.045em;
  white-space: nowrap;
}
.brand strong {
  font-weight: 800;
  color: var(--blue);
}
.nav {
  display: flex;
  align-items: center;
  gap: clamp(5px, 1vw, 16px);
  flex-wrap: wrap;
}
.nav > a:not(.button) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: 7px;
  border-radius: 8px;
  font-size: 14px;
  color: var(--muted);
  font-weight: 550;
  text-decoration: none;
}
.nav > a:not(.button):hover,
.nav > a[aria-current="page"],
.nav > a.nav-section-current {
  color: var(--blue-dark);
  background: var(--soft);
}
.nav-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 13px;
  border: 1px solid var(--control-line);
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
}
.nav-toggle-icon {
  position: relative;
  width: 16px;
  height: 10px;
  border-block: 2px solid currentColor;
}
.nav-toggle-icon:after {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  border-top: 2px solid currentColor;
  transform: translateY(-50%);
}
.nav-toggle[aria-expanded="true"] {
  background: var(--soft);
  color: var(--blue-dark);
}
.button {
  border: 1px solid var(--control-line);
  border-radius: 10px;
  padding: 12px 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-decoration: none;
  text-align: center;
  font-weight: 650;
  font-size: 14px;
  line-height: 1.4;
  color: var(--ink);
  background: #fff;
  min-height: 46px;
  transition: background 0.15s, border-color 0.15s;
}
.button:hover {
  background: var(--paper);
  color: var(--ink);
}
.button.primary {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}
.button.primary:hover {
  background: var(--blue-dark);
}
.button.wide {
  width: 100%;
}
.button.subtle {
  border-color: transparent;
  background: transparent;
  padding-inline: 8px;
}
.eyebrow {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 14px;
}
.eyebrow:before {
  content: "";
  width: 6px;
  height: 6px;
  background: var(--gold);
  border-radius: 50%;
  flex-shrink: 0;
}
.hero {
  background: linear-gradient(120deg, #f5f8ff 0%, #fafbfd 58%, #f2f6ff 100%);
  border-bottom: 1px solid var(--line);
  padding: clamp(30px, 4.5vw, 64px) 0;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .9fr);
  gap: clamp(30px, 5vw, 70px);
  align-items: center;
}
.hero h1 {
  max-width: 630px;
  line-height: 1.12;
}
.hero h1 span {
  color: var(--blue);
}
.hero-description {
  max-width: 480px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.65;
  margin-top: 18px;
}
.wide-content > p,
.wide-content > ul:not(.link-list) {
  max-width: 75ch;
}
.hero-note {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  margin-top: 20px;
  font-size: 13px;
  color: var(--muted);
}
.hero-note span:before {
  content: "✓";
  color: var(--green);
  font-weight: 800;
  margin-right: 7px;
}
.hero-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
  margin-top: 12px;
}
.hero-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  font-weight: 650;
}
.route-card {
  background: #fff;
  border: 1px solid #d9e2f2;
  border-radius: var(--radius);
  padding: clamp(18px, 3vw, 28px);
  box-shadow: 0 8px 24px #213c720c;
}
.card-heading {
  display: flex;
  gap: 13px;
  align-items: center;
  margin-bottom: 18px;
}
.route-mark {
  width: 43px;
  height: 43px;
  border-radius: 12px;
  background: var(--soft);
  color: var(--blue);
  display: grid;
  place-items: center;
  font-size: 24px;
  flex-shrink: 0;
}
.card-heading h2 {
  font-size: 21px;
  letter-spacing: -0.6px;
}
.card-heading p {
  font-size: 14px;
  color: var(--muted);
  margin-top: 4px;
}
.field {
  display: block;
  margin-bottom: 14px;
}
.field-label {
  display: block;
  font-size: 14px;
  font-weight: 650;
  margin-bottom: 10px;
  color: var(--ink);
}
select,
.text-field {
  width: 100%;
  border: 1px solid var(--control-line);
  background: #fff;
  color: var(--ink);
  border-radius: 9px;
  min-height: 49px;
  padding: 10px 12px;
  font-size: 16px;
}
/* Style the closed field while retaining the native option picker. */
@supports (appearance: none) or (-webkit-appearance: none) {
  select:not([multiple]):not([size]) {
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2353627a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
    padding-right: 38px;
  }
  @media (forced-colors: active) {
    select:not([multiple]):not([size]) {
      -webkit-appearance: auto;
      appearance: auto;
      background-image: none;
      padding-right: 12px;
    }
  }
}
.field small {
  color: var(--muted);
  display: block;
  font-size: 12px;
  margin-top: 7px;
}
.field-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: end;
}

.card-caption {
  font-size: 13px;
  color: var(--muted);
  text-align: center;
  margin-top: 12px;
}
.error {
  font-size: 13px;
  color: #9a2727;
  margin: 8px 0 14px;
  line-height: 1.6;
}
.error:empty {
  display: none;
}

.section {
  padding: clamp(36px, 5vw, 68px) 0;
}
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 30px;
  margin-bottom: 30px;
}
.section-head > p {
  max-width: 370px;
  color: var(--muted);
  font-size: 14px;
}
.section-head h2 {
  font-size: 30px;
}
.state-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.state-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: clamp(18px, 2vw, 24px);
  position: relative;
  text-decoration: none;
  color: var(--ink);
  background: #fff;
  transition: background 0.15s, border-color 0.15s;
}
.state-card .text-link {
  margin-top: auto;
  padding-top: 9px;
  color: var(--blue-dark);
}
.state-card:hover {
  border-color: #a8b9df;
  background: #fafbff;
  color: var(--ink);
}

.state-code {
  width: 45px;
  height: 45px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0.07em;
}

.state-card h3 {
  font-size: 24px;
  margin-bottom: 9px;
}
.state-card p {
  font-size: 14px;
  color: var(--muted);
  max-width: 400px;
}

.coverage-note {
  font-size: 14px;
  color: var(--muted);
  margin-top: 18px;
}
.soft-section {
  background: var(--paper);
  border-block: 1px solid var(--line);
}
.soft-section .wrap > h2 {
  margin-bottom: 22px;
}

.text-link {
  font-size: 14px;
  font-weight: 650;
}
.site-footer {
  border-top: 1px solid var(--line);
  padding: 35px 0;
  background: #fff;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: 35px;
  align-items: center;
}
.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0 18px;
}
.footer-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
}
.footer-bottom {
  font-size: 13px;
  color: var(--muted);
  max-width: 760px;
  margin-top: 23px;
  line-height: 1.8;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  line-height: 1.3;
  color: var(--muted);
  padding-top: 14px;
}
.breadcrumb a,
.breadcrumb > span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
}
.breadcrumb a {
  color: var(--muted);
}
.page-intro {
  padding: 28px 0 22px;
  max-width: 780px;
}
.breadcrumb + .page-intro {
  padding-top: 12px;
}
.page-intro h1 {
  font-size: clamp(2rem, 4vw, 3.25rem);
  margin-bottom: 12px;
}
.page-intro p:not(.eyebrow) {
  color: var(--muted);
  max-width: 650px;
  font-size: 16px;
}
.planner-shell {
  background: var(--paper);
  padding-bottom: 68px;
  min-height: 80vh;
}
.planner-shell .page-intro {
  max-width: 800px;
}
.planner-layout {
  display: grid;
  grid-template-columns: minmax(0, 760px) 240px;
  gap: 32px;
  align-items: start;
}
.planner-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(18px, 3vw, 30px);
}
.stepper {
  list-style: none;
  padding: 0;
  display: flex;
  gap: 0;
  margin: 0 0 22px;
  border-bottom: 1px solid var(--line);
}
.stepper li {
  flex: 1;
  font-size: 13px;
  color: var(--muted);
  padding: 0 3px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.stepper span {
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  width: 21px;
  height: 21px;
  border-radius: 50%;
  font-size: 10px;
}
.stepper .is-current {
  color: var(--blue);
  border-color: var(--blue);
  font-weight: 700;
}
.stepper .is-current span {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.stepper .is-complete span {
  background: var(--soft);
  color: var(--blue);
}
.planner-card h2 {
  font-size: 26px;
  margin-bottom: 11px;
}
.step-description {
  color: var(--muted);
  font-size: 15px;
  margin-bottom: 19px;
}
.planner-aside {
  padding-top: 16px;
}
.planner-aside h2 {
  font-size: 15px;
  letter-spacing: -0.02em;
  margin-bottom: 15px;
}
.planner-aside p {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 20px;
}
.aside-rule {
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.aside-rule strong {
  font-size: 14px;
}
.aside-rule p {
  margin-top: 6px;
}
.aside-link {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  font-size: 14px;
}
.step-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  align-items: center;
  margin-top: 16px;
}
.step-actions .button.primary {
  margin-left: auto;
}
.route-actions {
  justify-content: flex-start;
  gap: 10px 18px;
}
.route-actions .button.primary {
  margin-left: 0;
}
.route-actions > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
}
#credential-name-comparison {
  margin: 12px 0 20px;
}
fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 25px;
  min-width: 0;
}
legend {
  font-size: 15px;
  font-weight: 650;
  margin-bottom: 12px;
  line-height: 1.6;
}
.choice-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
  gap: 10px;
}
.choice {
  border: 1px solid var(--control-line);
  border-radius: 9px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 11px;
  min-height: 48px;
  font-size: 14px;
  cursor: pointer;
}
.choice span,
.source-link,
.task-content p {
  overflow-wrap: anywhere;
}
.choice:has(:focus-visible) {
  outline: 2px solid var(--blue-dark);
  outline-offset: 2px;
}
[aria-invalid="true"] {
  border-color: #9a2727;
}
.choice:has(input:checked) {
  background: var(--soft);
  border-color: var(--blue);
  color: var(--blue);
}
input[type="radio"],
input[type="checkbox"] {
  accent-color: var(--blue);
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}

.quiet-note {
  padding: 15px 17px;
  background: var(--paper);
  border-radius: 9px;
  font-size: 14px;
  color: var(--muted);
  margin-top: 24px;
}
.plan-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  margin: 0 0 20px;
}
.route-tag {
  background: var(--soft);
  color: var(--blue);
  padding: 7px 11px;
  border-radius: 7px;
  font-weight: 650;
  font-size: 12px;
}
.checked-date {
  font-size: 13px;
  color: var(--muted);
}
.plan-authority {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 20px;
}
.plan-credentials {
  background: var(--soft);
  border-radius: 9px;
  margin: 0 0 14px;
  padding: 12px 15px;
  font-size: 14px;
}
.plan-credentials div + div {
  margin-top: 8px;
}
.plan-credentials dt {
  font-weight: 650;
}
.plan-credentials dd {
  margin: 2px 0 0;
}
.notice {
  background: #fff7e8;
  border: 1px solid #edd4a8;
  color: #73501d;
  border-radius: 10px;
  padding: 15px 17px;
  font-size: 14px;
  margin-bottom: 23px;
}
.notice p + p {
  margin-top: 10px;
}
.progress-panel {
  padding: 18px 0;
  border-block: 1px solid var(--line);
  margin: 24px 0 0;
}
.progress-panel strong {
  font-size: 14px;
}
.progress-panel p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 6px;
}
progress {
  width: 100%;
  height: 7px;
  display: block;
  appearance: none;
  border: 0;
  border-radius: 10px;
  background: var(--line);
  margin-top: 13px;
}
progress::-webkit-progress-bar {
  background: var(--line);
  border-radius: 10px;
}
progress::-webkit-progress-value {
  background: var(--blue);
  border-radius: 10px;
}
progress::-moz-progress-bar {
  background: var(--blue);
  border-radius: 10px;
}
.checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}
.checklist-item {
  display: flex;
  gap: 16px;
  padding: 25px 0;
  border-bottom: 1px solid var(--line);
}
.task-check {
  margin-top: 2px;
  width: 24px !important;
  height: 24px !important;
}
.task-content {
  min-width: 0;
}
.task-title {
  display: block;
  padding-block: 6px;
  margin-block: -6px;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 650;
  cursor: pointer;
}
.task-content p {
  font-size: 15px;
  color: var(--body-ink);
  margin-top: 7px;
}
.task-content .task-note {
  font-size: 14px;
  background: var(--paper);
  padding: 10px 12px;
  border-left: 2px solid #a6b6dc;
}
.source-link {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 600;
}
.plan-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 24px;
}
.plan-tools .button {
  padding: 10px 13px;
  min-height: 44px;
  font-size: 13px;
}
.plan-foot {
  font-size: 13px;
  color: var(--muted);
  margin-top: 17px;
  line-height: 1.8;
}
.action-status {
  font-size: 13px;
  color: var(--green);
  margin-top: 13px;
  min-height: 20px;
}
.action-status:empty,
#planner-status:empty {
  min-height: 0;
  margin: 0;
}
.copy-fallback {
  margin-top: 14px;
}
.apply-panel {
  margin-top: 23px;
  background: var(--paper);
  border-radius: 12px;
  padding: 20px;
}
.apply-panel h3 {
  font-size: 16px;
}
.apply-panel p {
  font-size: 14px;
  color: var(--muted);
  margin: 8px 0 14px;
}

.answer-box {
  background: var(--soft);
  border: 1px solid #d8e2fd;
  border-radius: 14px;
  padding: clamp(16px, 2.4vw, 23px);
  margin-bottom: 18px;
}
.answer-box .eyebrow {
  margin-bottom: 12px;
  font-size: 10px;
}
.answer-box p {
  font-size: 15px;
  color: var(--ink);
}
.guide-steps {
  list-style: none;
  counter-reset: guide;
  padding: 0 !important;
}
.guide-steps > li {
  counter-increment: guide;
  padding: 23px 0 23px 44px;
  position: relative;
  border-bottom: 1px solid var(--line);
}
.guide-steps > li:before {
  content: counter(guide);
  position: absolute;
  left: 0;
  top: 23px;
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: var(--soft);
  color: var(--blue);
  font-weight: 700;
  font-size: 11px;
}
.guide-steps h3 {
  font-size: 17px;
  margin-bottom: 9px;
}

.pathway-summary {
  display: grid;
  gap: 12px;
  padding: 0;
  margin: 16px 0 22px;
  list-style: none;
}
.pathway-summary > li {
  padding: 15px 17px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}
.prose .pathway-summary > li + li,
.prose .guide-steps > li + li,
.prose .article-toc li + li {
  margin-top: 0;
}
.prose .pathway-title {
  margin: 0;
  font-size: 16px;
  color: var(--ink);
}
.prose .key-requirement {
  margin: 9px 0 0;
  padding: 9px 11px;
  border-left: 2px solid #a6b6dc;
  border-radius: 6px;
  background: var(--paper);
  font-size: 14px;
  line-height: 1.55;
}
.guide-date {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12px;
  color: var(--muted);
  margin-top: 21px;
  margin-bottom: 20px;
}
.page-intro:has(+ .guide-date) {
  padding-bottom: 14px;
}
.page-intro + .guide-date {
  margin-top: 0;
}
.wide-content > h2 {
  margin: 44px 0 22px;
}
.wide-content > :last-child {
  margin-bottom: 72px;
}
.prose {
  padding-bottom: 70px;
}
.prose h2 {
  font-size: 25px;
  margin: 33px 0 14px;
}
.prose > h3 {
  margin: 28px 0 9px;
}
.prose p,
.prose li {
  font-size: 16px;
  color: var(--body-ink);
}
.prose .guide-date,
.prose .coverage-note {
  color: var(--muted);
  font-size: 14px;
}
.prose li + li {
  margin-top: 11px;
}
details {
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
summary {
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
}
details p {
  padding-top: 13px;
}
.empty-state {
  text-align: center;
  padding: 90px 0;
}
.empty-state p {
  color: var(--muted);
  margin: 20px 0;
}
.noscript {
  padding: 20px;
  background: #fff7e8;
  border: 1px solid #e8d2aa;
  border-radius: 10px;
  margin-bottom: 20px;
  font-size: 14px;
}
.article-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}
.empty-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
.print-only {
  display: none;
}

@media (max-width: 900px) {
  .hero-grid {
    gap: 35px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hero h1 {
    font-size: clamp(2.15rem, 5vw, 3rem);
  }
  .planner-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .planner-aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 0;
  }
  .planner-aside > div {
    border-top: 0;
  }
}
@media (max-width: 860px) {
  .header-row {
    min-height: 64px;
    gap: 8px 16px;
    flex-wrap: wrap;
    padding: 9px 0;
  }
  .brand {
    font-size: 19px;
  }
  .js .nav-toggle {
    display: inline-flex;
  }
  .js .nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 8px 0 4px;
    border-top: 1px solid var(--line);
  }
  .js .nav.is-open {
    display: flex;
  }
  .js .nav > a:not(.button) {
    padding-inline: 10px;
    font-size: 15px;
  }
}
@media (max-width: 650px) {
  .wrap {
    width: calc(100% - clamp(32px, 9vw, 44px));
  }
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .hero h1 {
    font-size: clamp(2.1rem, 8.8vw, 3.25rem);
    max-width: 520px;
  }
  .hero-description {
    margin-top: 14px;
    font-size: 16px;
  }
  .hero-note {
    margin-top: 15px;
  }

  .section {
    padding: 45px 0;
  }
  .section-head {
    display: block;
    margin-bottom: 24px;
  }
  .section-head h2 {
    font-size: 26px;
  }
  .section-head > p {
    margin-top: 10px;
  }
  .state-grid {
    grid-template-columns: 1fr;
  }
  .state-card h3 {
    font-size: 21px;
  }

  .footer-top {
    display: block;
  }
  .footer-nav {
    margin-top: 12px;
    gap: 0 16px;
  }
  .site-footer {
    padding: 28px 0;
  }
  .page-intro {
    padding: 22px 0 18px;
  }
  .page-intro h1 {
    font-size: clamp(1.95rem, 8.1vw, 2.5rem);
  }
  .page-intro p:not(.eyebrow) {
    font-size: 15px;
  }
  .planner-card {
    padding: 18px 16px;
    border-radius: 15px;
  }
  .planner-shell {
    padding-bottom: 40px;
  }
  .planner-layout {
    gap: 24px;
  }
  .planner-card h2 {
    font-size: 23px;
  }
  .field-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .choice-row {
    grid-template-columns: 1fr;
  }
  .choice {
    font-size: 14px;
    padding: 12px 13px;
    min-height: 48px;
  }
  .stepper {
    margin-bottom: 19px;
  }
  .stepper li {
    font-size: 12px;
    gap: 5px;
    line-height: 1.4;
  }
  .stepper span {
    flex-shrink: 0;
  }
  .planner-aside {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .planner-aside p {
    margin-bottom: 10px;
  }
  .checklist-item {
    gap: 12px;
    padding: 21px 0;
  }
  .task-check {
    width: 22px !important;
    height: 22px !important;
  }
  .source-link {
    padding-block: 5px;
  }
  .plan-tools .button {
    min-height: 45px;
  }

  .guide-date {
    gap: 9px;
  }
  .prose {
    padding-bottom: 45px;
  }
  .wide-content > h2 {
    margin-top: 34px;
  }
  .wide-content > :last-child {
    margin-bottom: 45px;
  }
  .plan-summary {
    gap: 10px;
  }
  .empty-state {
    padding: 60px 0;
  }
  .button {
    min-height: 46px;
  }
  .site-search .button {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *:before,
  *:after {
    transition: none !important;
  }
}
@media print {
  body {
    font-size: 11pt;
    line-height: 1.5;
    color: #000;
    background: #fff;
  }
  .site-header,
  .site-footer,
  .breadcrumb,
  .planner-shell .page-intro,
  .planner-aside,
  .stepper,
  .plan-tools,
  .step-actions,
  .action-status,
  .copy-fallback,
  #edit-route {
    display: none !important;
  }
  .wrap {
    width: 100%;
    max-width: none;
  }
  .planner-shell,
  .planner-card {
    padding: 0;
    background: none;
    border: 0;
    box-shadow: none;
  }
  .planner-layout {
    display: block;
  }
  h1,
  h2 {
    font-size: 22pt;
  }
  .print-only {
    display: block;
    font-weight: 700;
    margin-bottom: 12px;
  }
  .checklist-item {
    break-inside: avoid;
    padding: 15px 0;
  }
  .task-content p,
  .task-content .source-link,
  .plan-foot,
  .checked-date {
    font-size: 9pt;
    color: #222;
  }
  .task-content .source-link:after {
    content: " (" attr(href) ")";
    display: block;
    font-weight: 400;
    overflow-wrap: anywhere;
  }
  .source-link {
    display: block;
    min-height: 0;
    text-decoration: none;
  }
  .notice {
    border: 1px solid #aaa;
    background: none;
  }
  .progress-panel {
    margin-top: 15px;
  }
  progress {
    display: none;
  }
  .plan-summary {
    margin-top: 15px;
  }
  .planner-shell:has(#plan-result:not([hidden])) .planner-guides {
    display: none;
  }
  .apply-panel {
    break-inside: avoid;
    background: none;
    padding: 12px 0;
  }
  #official-apply {
    display: block;
    text-align: left;
    background: none;
    border: 0;
    color: #222;
    padding: 0;
  }
  #print-apply-url {
    font-weight: 400;
    overflow-wrap: anywhere;
  }
  .quiet-note {
    background: none;
    border: 1px solid #bbb;
  }

  a {
    color: #000;
  }
}

/* Resource and career pages */
.directory-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 14px 0 38px;
}
.directory-grid h2 {
  font-size: 21px;
  margin-top: 14px;
}
.link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 30px;
  padding-left: 0;
  margin-top: 20px;
  list-style: none;
}
.link-list li + li {
  margin-top: 0;
}
.link-list a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
}
.destination-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: 6px 18px;
}
.planner-guides {
  padding-bottom: 0;
}
.planner-guides > p {
  max-width: 65ch;
  margin-top: 12px;
}
.prose .guide-steps {
  list-style: none;
}
.prose .guide-steps p {
  margin: 10px 0;
}
.question-help {
  font-size: 13px;
  color: var(--muted);
  margin: 8px 0 13px;
}
.field input:not([type="radio"]):not([type="checkbox"]) {
  width: 100%;
  border: 1px solid var(--control-line);
  border-radius: 9px;
  padding: 11px 12px;
  min-height: 49px;
  font: inherit;
  background: white;
  color: var(--ink);
}
input::placeholder {
  color: var(--muted);
  opacity: 1;
}
@media (max-width: 900px) {
  .directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 650px) {
  .directory-grid {
    grid-template-columns: 1fr;
  }
  .link-list:not(.destination-links) {
    display: block;
  }
  .link-list:not(.destination-links) li + li {
    margin-top: 6px;
  }
}
@media print {
  .saved-plan,
  #resume-status,
  #planner-status,
  .page-intro + .notice {
    display: none !important;
  }
  .directory-grid {
    display: block;
  }
}

/* Source-attributed guide components. No external assets or libraries. */
.article-toc { padding: 1.25rem 1.5rem; margin: 2rem 0; background: var(--bg-soft, #f7f9ff); border: 1px solid var(--line, #e2e6ef); border-radius: 1rem; }
.article-toc ul { columns: 2; padding-left: 1.25rem; }
.article-toc li { break-inside: avoid; }
.source-citations { margin-left: .3rem; font-size: .78em; }
.source-citations a { display: inline-block; }
.pathway + .pathway { border-top: 1px solid #e2e6ef; margin-top: 2rem; padding-top: 1rem; }
.pathway h4 { margin: 0 0 .5rem; font-size: 1rem; }
.table-figure { margin: 1.5rem 0; }
.table-figure figcaption { font-size: .88rem; color: #526079; margin-bottom: .75rem; }
.table-scroll { overflow-x: auto; border: 1px solid #e2e6ef; border-radius: .8rem; }
.table-scroll:focus-visible { outline: 3px solid var(--blue-dark); outline-offset: 3px; }
.table-hint, .prose .table-hint { color: var(--muted); font-size: 13px; margin: 0 0 8px; }
.table-scroll table { width: 100%; border-collapse: collapse; text-align: left; font-size: .92rem; }
.table-scroll th, .table-scroll td { padding: .9rem 1rem; vertical-align: top; border-bottom: 1px solid #e2e6ef; }
.table-scroll thead { background: #f5f7fc; }
.table-scroll tr:last-child th, .table-scroll tr:last-child td { border-bottom: 0; }
.renewal-field { display: none; }
#renewal-count { margin-bottom: 0; }
@media screen and (min-width: 651px) {
  #renewal-matrix td:not(:last-child) { min-width: 145px; }
}
@media screen and (max-width: 650px) {
  .renewal-scroll {
    overflow: visible;
    border: 0;
    border-radius: 0;
  }
  #renewal-matrix,
  #renewal-matrix tbody,
  #renewal-matrix tbody tr,
  #renewal-matrix tbody th,
  #renewal-matrix tbody td {
    display: block;
  }
  #renewal-matrix thead {
    position: absolute;
    width: 1px;
    height: 1px;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
  }
  #renewal-matrix tbody tr {
    margin-bottom: 14px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow-wrap: anywhere;
  }
  #renewal-matrix tbody th,
  #renewal-matrix tbody td {
    min-width: 0;
    border: 0;
    padding: 0;
  }
  #renewal-matrix tbody th {
    font-size: 18px;
    margin-bottom: 12px;
  }
  #renewal-matrix tbody td + td {
    margin-top: 12px;
  }
  .renewal-field {
    display: block;
    margin-bottom: 2px;
    color: var(--ink);
    font-weight: 650;
  }
}
.program-filter, .directory-filter { max-width: 380px; margin: 14px 0 0; }
.filter-status, .prose .filter-status { font-size: 14px; color: var(--muted); margin: 8px 0 12px; }
.wide-content > .directory-title { margin-top: 16px; }
#program-count { font-size: 13px; color: var(--muted); margin: 8px 0 16px; }
.program-table { font-size: .88rem; }
.program-table td { color: var(--muted); }
.program-table tbody th.program-name { color: var(--muted); font-weight: 400; }
.program-table tbody th.program-name strong { color: var(--ink); font-weight: 650; }
.program-table strong { color: var(--ink); font-weight: 650; }
.program-table th:first-child, .program-table td:first-child { min-width: 220px; }
.program-type, .program-status, .program-meta { display: block; font-size: .74rem; line-height: 1.4; margin-top: 3px; }
.program-meta a { font-weight: 600; }
.program-status { color: #8a5200; }
.source-register li { scroll-margin-top: 1.5rem; }
.source-register p { font-size: .85rem; color: #526079; }
.source-inline { font-size: .82rem; color: #526079; }
.renewal-summary li + li { margin-top: .7rem; }
.prose section { scroll-margin-top: 1.5rem; }
@media (max-width: 600px) { .article-toc ul { columns: 1; } .table-scroll th, .table-scroll td { padding: .7rem; } }

.ad-placement {
  margin-block: 1.5rem;
  text-align: center;
}
.prose .ad-placement {
  width: 100%;
}
.ad-placement > p,
.prose .ad-placement > p {
  color: var(--muted);
  font-size: .75rem;
  margin-bottom: .5rem;
}
.ad-slot {
  display: block;
  width: 100%;
  min-height: 90px;
}
html:not(.js) .ad-placement,
.ad-placement:has(.ad-slot[data-ad-status="unfilled"]) {
  display: none;
}
.education-offer {
  max-width: 760px;
  margin-block: 1.5rem 2rem;
  padding: clamp(1rem, 3vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: var(--paper);
}
.education-offer > h2 {
  font-size: 1.35rem;
  margin-bottom: .75rem;
}
.education-offer .article-cta {
  align-items: center;
  margin-top: 1rem;
}
.planner-training-offer {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.planner-training-offer > summary {
  cursor: pointer;
  font-weight: 650;
}
.planner-training-offer .education-offer {
  margin: .75rem 0 0;
}

@media print {
  .ad-placement,
  .education-offer,
  .planner-training-offer,
  #search-ad-privacy {
    display: none;
  }
}
.js .site-search { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 1.5rem 0; }
.site-search .field { flex: 1 1 320px; margin: 0; }
.link-list.search-results { display: block; margin-top: 1.25rem; }
.search-results li { padding: 1rem 0; border-top: 1px solid #e2e6ef; }
.search-results li:first-child { border-top: 0; }
.search-results > li > a { display: inline; font-weight: 650; }
.search-results p { margin: .35rem 0 0; color: var(--muted); }
.search-section { display: inline-block; margin-top: .4rem; font-size: .78rem; color: #526079; text-transform: uppercase; letter-spacing: .06em; }
