.courses-page { margin: 0; padding-top: 80px; font-family: 'Fredoka', sans-serif; color: #2d3748; background: #fff; font-size: 17px; line-height: 1.6; }
.courses-page *, .courses-page *::before, .courses-page *::after { box-sizing: border-box; }
.courses-page h1, .courses-page h2, .courses-page h3, .courses-page p { margin: 0; }
.courses-page img { max-width: 100%; display: block; }
.courses-page a { text-underline-offset: 4px; }
.courses-page a:focus-visible, .courses-page button:focus-visible { outline: 3px solid #2563eb; outline-offset: 5px; }
.courses-page main:focus { outline: none; }
.courses-page .courses-wrap { max-width: 1260px; padding-inline: var(--public-page-gutter, 30px); margin-inline: auto; }
.course-picker { padding: 48px 0 32px; background: #f0f5ff; border-bottom: 1px solid #dce6fb; }
.picker-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; }
.picker-heading h1 { color: #25375c; font-size: clamp(32px, 3.7vw, 48px); line-height: 1.12; font-weight: 600; letter-spacing: -.025em; }
.picker-heading p { max-width: 660px; margin-top: 14px; color: #52627d; font-size: 18px; }
.quiet-link { color: #2654a0; font-weight: 500; }
.picker-heading > a { flex-shrink: 0; padding-block: 8px; }
.course-picks { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.course-pick { display: flex; flex-direction: column; overflow: hidden; background: white; border: 1px solid #dce6f3; border-radius: 18px; color: inherit; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease; }
.course-pick:hover { border-color: #4e80d6; box-shadow: 0 6px 20px rgba(56, 86, 143, .12); }
.pick-image { aspect-ratio: 3 / 2; overflow: hidden; background: #e4ebf5; }
.pick-image img { width: 100%; height: 100%; object-fit: cover; }
.pick-copy { display: flex; flex: 1; flex-direction: column; padding: 16px; border-top: 4px solid var(--course-accent); }
.pick-scratch, .story-scratch { --course-accent: #e97843; --course-wash: #fff0e5; }
.pick-minecraft, .story-minecraft { --course-accent: #388653; --course-wash: #edf8ee; }
.pick-python, .story-python { --course-accent: #3b71c7; --course-wash: #eff5ff; }
.pick-roblox, .story-roblox { --course-accent: #8971c7; --course-wash: #f4f0ff; }
.pick-webdev, .story-webdev { --course-accent: #b24a65; --course-wash: #fff0f4; }
.pick-type { color: #626d80; font-size: 13px; font-weight: 400; }
.pick-copy h2 { font-size: 23px; line-height: 1.15; margin-top: 4px; font-weight: 600; }
.pick-copy p { margin-top: 8px; color: #526078; font-size: 15px; line-height: 1.35; }
.pick-action { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding-top: 20px; margin-top: auto; color: #2456a5; font-size: 14px; font-weight: 500; }
.picker-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 24px; color: #52627d; font-size: 15px; }
.picker-bottom > div { display: flex; gap: 20px; flex-wrap: wrap; }
.picker-bottom a { display: inline-flex; align-items: center; min-height: 44px; color: #2654a0; }
.course-guide { padding: 80px 0; }
.section-intro { max-width: 720px; margin-bottom: 32px; }
.section-intro h2 { font-size: clamp(30px, 3vw, 40px); font-weight: 600; line-height: 1.15; letter-spacing: -.015em; color: #25375c; }
.section-intro p { color: #58657a; margin-top: 14px; font-size: 18px; }
.guide-jumps { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 48px; }
.guide-jumps a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 18px; border: 1px solid #d4def0; border-radius: 24px; color: #315991; font-size: 16px; text-decoration: none; }
.guide-jumps a:hover { background: #eff5ff; }
.course-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; padding: 48px 0; border-top: 1px solid #e4eaf3; scroll-margin-top: 20px; }
.course-story:nth-of-type(even) .story-visual { order: 2; }
.story-visual { overflow: hidden; border-radius: 20px; background: var(--course-wash); }
.story-visual img { width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
.story-visual > span { display: block; padding: 14px 24px; color: #3b475e; font-size: 16px; }
.course-family { color: #59647a; font-size: 16px; margin-bottom: 12px !important; }
.story-copy h3 { font-size: clamp(28px, 2.8vw, 36px); line-height: 1.16; font-weight: 500; letter-spacing: -.015em; }
.story-copy > p:not(.course-family) { color: #59647a; margin-top: 18px; }
.story-copy ul { padding-left: 20px; margin: 18px 0; color: #4f5c71; }
.story-copy li { padding-left: 5px; margin-bottom: 7px; }
.story-copy li::marker { color: var(--course-accent); }
.course-link { display: inline-flex; align-items: center; gap: 20px; min-height: 48px; margin-top: 8px; padding: 10px 18px; border: 1px solid #ccd9eb; border-radius: 10px; color: #2456a5; font-size: 16px; font-weight: 500; text-decoration: none; }
.course-link:hover { background: #eff5ff; }
.achievements-section { padding: 72px 0; background: #f9f6ff; border-block: 1px solid #e9e3f4; }
.achievement-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.achievement-card { display: flex; flex-direction: column; overflow: hidden; background: white; border: 1px solid #e1ddee; border-radius: 16px; }
.achievement-image { display: block; }
.achievement-image img { width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; }
.achievement-copy { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.award-label { width: fit-content; color: #725020; background: #fff1cc; padding: 4px 12px; border-radius: 8px; font-size: 14px; }
.achievement-copy h3 { font-size: 24px; line-height: 1.2; margin-top: 14px; font-weight: 500; }
.achievement-copy p { margin-top: 12px; color: #5a667b; font-size: 16px; }
.achievement-copy a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; color: #2456a5; font-size: 16px; }
.section-end { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
.section-end a { display: inline-flex; align-items: center; min-height: 44px; }
.watch-section { padding: 80px 0; }
.watch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.watch-player { width: 100%; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #1c2943; }
.watch-player video, .watch-player iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; }
.video-play { position: relative; display: block; width: 100%; height: 100%; border: 0; padding: 0; cursor: pointer; background: #1c2943; color: white; font-family: inherit; }
.video-play img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.play-circle { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; transform: translate(-50%, -60%); width: 68px; height: 68px; padding-left: 4px; background: white; color: #2c599c; border-radius: 50%; font-size: 23px; box-shadow: 0 4px 20px #0003; }
.play-caption { position: absolute; inset: auto 20px 20px; padding: 8px; font-size: 19px; text-shadow: 0 1px 6px #000; }
.video-play:hover .play-circle { background: #ffe66d; }
.watch-copy { padding-top: 20px; }
.watch-copy h3 { font-size: 26px; line-height: 1.2; font-weight: 500; }
.watch-copy p { margin-top: 12px; color: #59647a; }
.watch-copy a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 8px; color: #2456a5; font-size: 16px; }
.course-help { background: #667eea; color: white; padding: 48px 0; }
.help-inner { display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.help-inner h2 { font-size: 34px; font-weight: 500; line-height: 1.2; }
.help-inner p { margin-top: 12px; max-width: 640px; }
.trial-link { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 24px; color: #293344; background: #ffe66d; border-radius: 28px; font-size: 18px; font-weight: 500; text-decoration: none; }
.trial-link:hover { background: #fff0a3; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 1100px) {
    .picker-heading { align-items: start; flex-direction: column; gap: 12px; }
    .pick-copy { padding: 14px 12px; }
    .pick-copy h2 { font-size: 20px; }
    .pick-action { font-size: 13px; }
    .picker-bottom { align-items: start; flex-direction: column; gap: 8px; }
}
@media (max-width: 768px) {
    .course-picker { padding-top: 32px; }
    .course-picks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .course-pick:last-child { grid-column: 1 / -1; flex-direction: row; }
    .course-pick:last-child .pick-image { width: 45%; aspect-ratio: auto; }
    .course-pick:last-child .pick-copy { border-top: 0; border-left: 4px solid var(--course-accent); }
    .pick-copy h2 { font-size: 22px; }
    .course-guide, .watch-section { padding-block: 56px; }
    .section-intro p { font-size: 17px; }
    .guide-jumps { gap: 8px; margin-bottom: 32px; }
    .course-story { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 32px; }
    .course-story:nth-of-type(even) .story-visual { order: 0; }
    .achievement-grid, .watch-grid { grid-template-columns: minmax(0, 1fr); }
    .achievement-grid { gap: 20px; }
    .achievements-section { padding-block: 56px; }
    .watch-grid { gap: 32px; }
    .help-inner { align-items: start; flex-direction: column; gap: 24px; }
}
@media (max-width: 400px) {
    .pick-copy { padding: 12px; }
    .pick-type { font-size: 12px; }
    .pick-copy p { font-size: 14px; }
    .pick-action { padding-top: 14px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .courses-page * { transition: none; } }
