/* pathnav — the static path bar, the jump panel and the bottom Prev/Next cards (SITE-PLAN §3). */
.pathnav { background: #f3f6fb; border-bottom: 1px solid #cfd8e6; color: #1f2937; font: 14px/1.3 system-ui, -apple-system, "Segoe UI", sans-serif; position: relative; z-index: 40; }
.pathnav-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; max-width: 1100px; margin: 0 auto; padding: 4px 12px; }
.pathnav a, .pathnav button, .pathnav select { min-height: 44px; box-sizing: border-box; font: inherit; color: #1456b0; }
.pathnav a { display: inline-flex; align-items: center; padding: 0 10px; text-decoration: none; border-radius: 8px; }
.pathnav a:hover { background: #e3ebf7; text-decoration: underline; }
.pathnav button, .pathnav select { background: #fff; border: 1px solid #b4c1d6; border-radius: 8px; padding: 0 12px; cursor: pointer; }
.pathnav button:hover, .pathnav select:hover { background: #e3ebf7; }
.pathnav :focus-visible, .pathnav-cards :focus-visible { outline: 3px solid #1456b0; outline-offset: 2px; }
.pathnav .pn-home-t { max-width: 26ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pathnav .pn-count { color: #5b6678; white-space: nowrap; }
.pathnav .pn-sp { flex: 1; }
.pathnav .pn-lesson { max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pathnav .pn-step[aria-disabled="true"] { color: #5b6678; pointer-events: none; border: 1px dashed #b4c1d6; }
.pathnav-panel { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 2px solid #1456b0; box-shadow: 0 12px 24px rgba(20, 40, 80, .15); max-height: 70vh; overflow: auto; }
.pathnav-panel[hidden] { display: none; }
.pathnav-panel-in { max-width: 1100px; margin: 0 auto; padding: 8px 12px 16px; }
.pathnav-panel .pn-mobile-path { display: none; margin: 4px 0 8px; }
.pathnav-panel details { margin: 2px 0; }
.pathnav-panel summary { min-height: 44px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 600; color: #1a2b4a; }
.pathnav-panel details details { margin-left: 14px; }
.pathnav-panel details details summary { font-weight: 500; }
.pathnav-panel ul { list-style: none; margin: 0 0 6px 14px; padding: 0; }
.pathnav-panel li a { display: flex; gap: 8px; align-items: baseline; min-height: 44px; padding: 6px 10px; box-sizing: border-box; border-radius: 8px; color: #1456b0; text-decoration: none; }
.pathnav-panel li a:hover { background: #e3ebf7; text-decoration: underline; }
.pathnav-panel li a[aria-current="page"] { background: #dbe7fb; color: #1a2b4a; font-weight: 700; }
.pathnav-panel .pn-mark { width: 1.2em; flex: none; text-align: center; color: #1a2b4a; }
.pathnav-panel .pn-tick { margin-left: auto; color: #0a7d2c; font-weight: 700; }
.pathnav-cards { display: flex; gap: 12px; flex-wrap: wrap; max-width: 1100px; margin: 28px auto 12px; padding: 0 12px; }
.pathnav-cards a { flex: 1 1 260px; min-height: 44px; box-sizing: border-box; display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; background: #f3f6fb; border: 1px solid #cfd8e6; border-radius: 12px; text-decoration: none; color: #1456b0; font: 600 15px/1.3 system-ui, -apple-system, "Segoe UI", sans-serif; }
.pathnav-cards a:hover { background: #e3ebf7; }
.pathnav-cards a small { color: #5b6678; font-weight: 500; font-size: 13px; }
.pathnav-cards a.pn-next { text-align: right; }
@media (max-width: 480px) {
  .pathnav-bar { gap: 4px; flex-wrap: nowrap; padding: 4px 6px; }
  .pathnav .pn-home-t, .pathnav .pn-count, .pathnav .pn-path, .pathnav .pn-lesson-t { display: none; }
  .pathnav .pn-lesson { max-width: none; flex: 1; }
  .pathnav-panel .pn-mobile-path { display: block; }
}
.pn-map { max-width: 920px; margin: 18px auto; padding: 12px 16px; box-sizing: border-box; background: #fff; border: 1px solid #cfd8e6; border-radius: 12px; color: #1f2937; font: 15px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif; }
.pn-map h2 { font-size: 20px; margin: 0 0 6px; color: #1a2b4a; }
.pn-map h3 { font-size: 16px; margin: 14px 0 4px; color: #1a2b4a; }
.pn-map ul { list-style: none; margin: 0; padding: 0; }
.pn-map li a { display: flex; gap: 8px; align-items: baseline; min-height: 44px; padding: 6px 10px; box-sizing: border-box; border-radius: 8px; color: #1456b0; background: #f3f6fb; margin: 2px 0; text-decoration: none; }
.pn-map li a:hover { background: #e3ebf7; text-decoration: underline; }
.pn-map .pn-mark { width: 1.2em; flex: none; text-align: center; color: #1a2b4a; }
.pn-map .pn-tick { margin-left: auto; color: #0a7d2c; font-weight: 700; }
.pn-map .pn-soon { display: flex; gap: 8px; align-items: baseline; min-height: 44px; padding: 6px 10px; box-sizing: border-box; color: #4b5563; }
.pn-map .pn-later { color: #4b5563; font-weight: 400; font-size: 13px; }
