.primary-page { --pyramid-row: 60px; --pyramid-width: 800px; --pyramid-shape: 44%; --pyramid-label: 50%; }
.primary-pyramid { max-width: var(--pyramid-width); margin: 0 auto; }
.primary-pyramid__diagram { position: relative; }
.primary-pyramid__shape { position: absolute; inset: 0 auto 0 0; width: var(--pyramid-shape); height: 100%; overflow: visible; }
.primary-pyramid__band { stroke: var(--ivory); stroke-width: 3px; vector-effect: non-scaling-stroke; }
.primary-pyramid__band--1 { fill: var(--ivory-deep); }
.primary-pyramid__band--2 { fill: color-mix(in srgb, var(--navy) 15%, var(--ivory)); }
.primary-pyramid__band--3 { fill: color-mix(in srgb, var(--navy) 28%, var(--ivory)); }
.primary-pyramid__band--4 { fill: color-mix(in srgb, var(--navy) 43%, var(--ivory)); }
.primary-pyramid__band--5 { fill: color-mix(in srgb, var(--navy) 62%, var(--ivory)); }
.primary-pyramid__band--6 { fill: var(--navy-soft); }
.primary-pyramid__band--7 { fill: var(--navy); }
.primary-pyramid__levels { display: grid; grid-template-rows: repeat(7, minmax(var(--pyramid-row), 1fr)); margin: 0; padding: 0; list-style: none; }
.primary-pyramid__levels li:nth-child(1) { grid-row: 7; }
.primary-pyramid__levels li:nth-child(2) { grid-row: 6; }
.primary-pyramid__levels li:nth-child(3) { grid-row: 5; }
.primary-pyramid__levels li:nth-child(4) { grid-row: 4; }
.primary-pyramid__levels li:nth-child(5) { grid-row: 3; }
.primary-pyramid__levels li:nth-child(6) { grid-row: 2; }
.primary-pyramid__levels li:nth-child(7) { grid-row: 1; }
.primary-pyramid__levels li { position: relative; min-height: var(--pyramid-row); display: flex; flex-direction: column; justify-content: center; padding: 8px 0 8px var(--pyramid-label); --leader-y: 19px; --leader-gap: 12px; --leader-dot: 4px; --leader-color: color-mix(in srgb, var(--navy) 32%, var(--ivory)); }
.primary-pyramid__levels li:nth-child(1) { --edge-factor: 0.9842; }
.primary-pyramid__levels li:nth-child(2) { --edge-factor: 0.9342; }
.primary-pyramid__levels li:nth-child(3) { --edge-factor: 0.8842; }
.primary-pyramid__levels li:nth-child(4) { --edge-factor: 0.8342; }
.primary-pyramid__levels li:nth-child(5) { --edge-factor: 0.7842; }
.primary-pyramid__levels li:nth-child(6) { --edge-factor: 0.7342; }
.primary-pyramid__levels li:nth-child(7) { --edge-factor: 0.6842; }
.primary-pyramid__levels li::before { content: ''; position: absolute; pointer-events: none; top: var(--leader-y); left: calc(var(--pyramid-shape) * var(--edge-factor)); right: calc(100% - var(--pyramid-label) + var(--leader-gap)); height: 1px; background: var(--leader-color); }
.primary-pyramid__levels li::after { content: ''; position: absolute; pointer-events: none; left: calc(var(--pyramid-shape) * var(--edge-factor)); top: var(--leader-y); width: var(--leader-dot); height: var(--leader-dot); border-radius: 50%; background: var(--leader-color); transform: translate(-50%, -50%); }
.primary-pyramid__levels h3 { font-family: var(--latin); font-size: 22px; font-weight: 600; line-height: 1.15; }
.primary-pyramid__levels p { margin-top: 4px; font-size: 14px; line-height: 1.5; }
.primary-pyramid__note { max-width: var(--pyramid-width); margin: 24px auto 0; font-size: 15px; }
.primary-level-details { max-width: var(--pyramid-width); margin: 32px auto 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.primary-level-details > summary { cursor: pointer; padding: 20px 0; color: var(--navy); }
.primary-level-details__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-bottom: 24px; }
.primary-level-details__grid h3 { font-size: 22px; margin-bottom: 8px; }
.primary-level-details__grid p { font-size: 16px; }
.primary-class-details { margin-top: 0; border-top: 0; }
.primary-class-details__body { padding: 12px 0 24px; }
.primary-page .curriculum-board__row { grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); }
.primary-page .curriculum-board__title, .primary-page .curriculum-board__detail { grid-column: auto; grid-row: auto; }
@media (max-width: 900px) {
  .primary-page .curriculum-board__row { grid-template-columns: minmax(0, 1fr); }
  .primary-page .curriculum-board__title { border-right: 0; }
  .primary-page .curriculum-board__detail { padding-top: 0; }
}
@media (max-width: 700px) {
  .primary-page { --pyramid-row: 76px; --pyramid-shape: 26%; --pyramid-label: 32%; }
  .primary-pyramid__levels li { --leader-y: 25px; --leader-gap: 8px; }
  .primary-pyramid__levels h3 { font-size: 21px; }
  .primary-pyramid__levels p { font-size: 14px; }
  .primary-level-details__grid { grid-template-columns: 1fr; }
}

.primary-page .fact-schedule dd { font-size: 14px; white-space: nowrap; letter-spacing: -0.025em; }
@media (max-width: 560px) {
  .primary-page .facts .fact:nth-child(3) { grid-column: 1 / -1; }
  .primary-page .fact-schedule { grid-column: 1 / -1; border-top: 1px solid var(--line); }
}

.primary-level-trigger { padding: 0; min-height: 44px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.primary-level-trigger::after { content: '+'; margin-left: 12px; color: var(--bronze); font-size: 18px; }
.primary-level-trigger:hover { color: var(--bronze); }
.primary-level-trigger:focus-visible { outline: 2px solid var(--bronze); outline-offset: 4px; }
.primary-pyramid__levels h3:has(.primary-level-trigger) + p { margin-top: 0; }
.primary-level-dialog { width: min(560px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 24px; border: 1px solid var(--line); background: var(--ivory); color: var(--navy); }
.primary-level-dialog::backdrop { background: color-mix(in srgb, var(--navy) 60%, transparent); }
.primary-level-close { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: var(--navy); font-size: 28px; line-height: 1; cursor: pointer; }
.primary-level-dialog > .eyebrow { padding-right: 32px; }
.primary-level-close:focus-visible { outline: 2px solid var(--bronze); outline-offset: -4px; }
.primary-level-dialog h2 { font-size: clamp(24px, 5vw, 32px); margin: 12px 0 24px; overflow-wrap: anywhere; }
.primary-level-dialog p { font-size: 16px; line-height: 1.8; word-break: keep-all; }
.primary-level-details[hidden] { display: none; }

.primary-level-dialog ul { margin: 0; padding-left: 20px; font-size: 16px; line-height: 1.8; word-break: keep-all; }
.primary-level-dialog li + li { margin-top: 12px; }

.primary-pyramid__levels li { grid-column: 1; --leader-y: 50%; padding-block: 4px; }
.primary-pyramid__levels li:nth-child(1) { --edge-factor: .975; }
.primary-pyramid__levels li:nth-child(2) { --edge-factor: .925; }
.primary-pyramid__levels li:nth-child(3) { --edge-factor: .875; }
.primary-pyramid__levels li:nth-child(4) { --edge-factor: .825; }
.primary-pyramid__levels li:nth-child(5) { --edge-factor: .775; }
.primary-pyramid__levels li:nth-child(6) { --edge-factor: .725; }
.primary-pyramid__levels li:nth-child(7) { --edge-factor: .675; }
.primary-pyramid__levels h3 { overflow-wrap: anywhere; }
.primary-level-dialog { overflow: auto; }
.primary-pyramid__instruction { display: block; margin-bottom: 12px; color: var(--navy); font-weight: 600; }
