/* Site-wide refinements and the academy's institutional pages. */
.course-photo-cover>img { width:100%;height:100%;object-fit:cover;object-position:50% 36%; }
.course-photo-cover .cover-label { background:#fffffff2;padding:4px 7px;border-radius:4px;font-size:8px;top:13px;left:12px; }
.featured-photo { margin:0;min-width:0; }
.featured-photo img { display:block;width:100%;height:310px;object-fit:cover;border-radius:16px; }
.featured-photo figcaption { font-size:10px;color:#c5becd;text-align:right;margin-top:10px; }
.featured-content .featured-course-facts { color:#e4d5ff;font-size:13px;line-height:1.9; }
@media(max-width:600px) { .featured-photo img { height:auto; }.featured-heading { flex-wrap:wrap; } }
:root { --muted: #66636f; }
body { overflow-wrap: break-word; }
main:focus { outline: none; }
.desktop-nav { gap: 24px; }
.desktop-nav a { white-space: nowrap; }
.header-learning { white-space: nowrap; }
.header-admin { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 14px; border: 1px solid #d8ccef; border-radius: 9px; color: var(--violet); background: #f8f5ff; font-size: 14px; font-weight: 600; white-space: nowrap; }
.header-admin svg { width: 18px; height: 18px; flex-shrink: 0; }
.header-admin:hover { background: #eee7fb; border-color: var(--violet); }
.header-admin:focus-visible { outline: 3px solid var(--violet); outline-offset: 3px; }
.mobile-nav .mobile-admin { color: var(--violet); font-weight: 600; border-top: 1px solid var(--line); margin-top: 6px; }
.hero-copy > p { max-width: 510px; }
.hero-actions { flex-wrap: wrap; }
.hero-foot { flex-wrap: wrap; }
.course-grid { align-items: stretch; }
.course-card { display: flex; flex-direction: column; }
.course-body { display: flex; flex-direction: column; flex: 1; }
.course-kicker { flex-wrap: wrap; row-gap: 5px; }
.course-kicker .eyebrow { font-size: 10px; }
.course-status { font-size: 11px; }
.course-title { font-size: 23px; min-height: 88px; }
.course-description { font-size: 14px; min-height: 72px; }
.course-meta { margin-top: auto; flex-wrap: wrap; font-size: 11px; }
.course-bottom { font-size: 12px; }
.save-course { width: 40px; height: 40px; }
.save-course svg { width: 18px; height: 18px; }
.course-card:focus-within { box-shadow: 0 0 0 3px var(--violet); }
.filter-tab { min-height: 44px; }
.search-field { min-height: 46px; }
.search-field input { font-size: 14px; }
.result-count { margin: 0 0 16px; font-size: 12px; }
.catalog-note { font-size: 12px; line-height: 1.8; align-items: flex-start; }
.catalog-note svg { margin-top: 4px; flex-shrink: 0; }
.method-step p, .method-intro p { font-size: 15px; }
.faq-list summary { font-size: 16px; line-height: 1.6; padding-block: 23px; }
.faq-list details p { font-size: 15px; line-height: 1.85; }
.faq-section .text-link { margin-top: 6px; }
.detail-notice { font-size: 13px; }
.learning-outcomes li, .info-box p { font-size: 15px; }
.curriculum summary, .curriculum ul { font-size: 14px; }
.local-note, .sidebar-foot { font-size: 12px !important; }
.violet-text { color: var(--violet); }
.featured-course { background: var(--ink); color: white; border-radius: 24px; padding: 34px 48px 40px; margin-bottom: 78px; overflow: hidden; }
.featured-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid #ffffff26; padding-bottom: 24px; }
.featured-heading .eyebrow { color: #d3c1ff; }
.featured-status { color: #ece3ff; font-size: 12px; border: 1px solid #ffffff38; border-radius: 50px; padding: 6px 13px; }
.featured-content { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: center; padding-top: 35px; }
.featured-content h2 { font-size: clamp(32px, 3.5vw, 47px); letter-spacing: -.035em; margin-bottom: 22px; }
.featured-content p { color: #ccc8d5; max-width: 490px; font-size: 16px; margin-bottom: 28px; }
.featured-art { position: relative; height: 300px; display: grid; place-items: center; isolation: isolate; }
.featured-art-orbit { position: absolute; width: 270px; height: 270px; border: 1px solid #cbb8ff66; border-radius: 50%; }
.featured-art-orbit::before, .featured-art-orbit::after { content: ''; position: absolute; border: 1px solid #cbb8ff55; border-radius: 50%; inset: 25px -25px; transform: rotate(-35deg); }
.featured-art-orbit::after { inset: -15px 35px; transform: rotate(35deg); }
.featured-art-core { display: block; font-size: 108px; font-weight: 650; letter-spacing: -.08em; line-height: 1; color: #d1bbff; text-align: center; z-index: 1; }
.featured-art-core span { display: block; font-size: 10px; font-weight: 600; letter-spacing: .24em; line-height: 2; margin-top: 15px; }
.featured-art-note { position: absolute; bottom: -5px; border: 1px solid #ffffff30; background: #333139; padding: 10px 15px; display: flex; align-items: center; gap: 10px; border-radius: 7px; font-size: 9px; letter-spacing: .12em; z-index: 2; }
.featured-art-note svg { width: 18px; color: #cbb8ff; }
.academy-teaser { display: grid; grid-template-columns: 1fr 2fr; gap: 60px; padding-block: 58px 76px; border-top: 1px solid var(--line); }
.academy-teaser > .eyebrow { padding-top: 10px; }
.academy-teaser h2 { font-size: clamp(29px, 3vw, 41px); margin-bottom: 20px; }
.academy-teaser p { max-width: 635px; font-size: 16px; line-height: 1.9; }
.editorial-intro { padding: 40px 0 65px; }
.editorial-intro > .eyebrow { margin: 32px 0 22px; }
.editorial-intro h1 { font-size: clamp(43px, 6vw, 76px); margin-bottom: 25px; line-height: 1.06; max-width: 850px; }
.editorial-intro > p { font-size: 19px; max-width: 640px; line-height: 1.8; margin-bottom: 0; }
.editorial-intro .breadcrumb { margin: 0; gap: 12px; font-size: 12px; }
.academy-manifesto { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; align-items: center; padding-bottom: 88px; }
.manifesto-mark { border-radius: 22px; background: var(--pale); padding: 66px 45px; position: relative; overflow: hidden; }
.manifesto-mark::after { content: ''; width: 225px; height: 225px; border: 1px solid #cbb8ff; border-radius: 50%; position: absolute; right: -120px; top: 15px; }
.manifesto-mark span { font-size: clamp(34px, 4vw, 56px); display: block; line-height: 1.55; font-weight: 600; letter-spacing: -.045em; }
.manifesto-mark span:nth-child(2) { color: #817099; }
.manifesto-mark span:last-child { color: var(--violet); }
.manifesto-copy h2 { font-size: 38px; margin: 18px 0 24px; }
.manifesto-copy p { font-size: 16px; line-height: 1.9; }
.principles-section { border-top: 1px solid var(--line); padding-block: 62px 70px; }
.principle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 45px; }
.principle-number { display: block; color: var(--violet); font-size: 13px; margin: 12px 0 26px; letter-spacing: .1em; }
.principle-grid h3 { font-size: 29px; }
.principle-grid p { font-size: 16px; line-height: 1.9; margin: 0; }
.academy-audience { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; background: var(--surface); padding: 48px; border-radius: 20px; margin-bottom: 60px; }
.academy-audience h2 { font-size: 35px; margin: 18px 0 0; }
.academy-audience p { font-size: 16px; line-height: 1.9; }
.academy-audience strong { color: var(--ink); font-weight: 550; }
.closing-section { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-block: 60px 85px; border-top: 1px solid var(--line); }
.closing-section h2 { margin: 15px 0 18px; font-size: 36px; }
.closing-section p { font-size: 16px; max-width: 620px; margin: 0; }
.closing-section .button { flex-shrink: 0; }
.method-journey { margin-bottom: 74px; }
.journey-step { display: grid; grid-template-columns: 80px minmax(0, 1fr) 100px; gap: 40px; padding: 44px 0; border-top: 1px solid var(--line); }
.journey-number { font-size: 15px; color: var(--violet); padding-top: 8px; }
.journey-step h2 { font-size: 34px; margin-bottom: 17px; }
.journey-step p { max-width: 650px; font-size: 17px; line-height: 1.85; }
.journey-takeaway { color: var(--violet); font-size: 14px; font-weight: 550; display: block; }
.journey-icon { width: 85px; height: 85px; background: var(--pale); border-radius: 50%; display: grid; place-items: center; color: var(--violet); }
.journey-icon svg { width: 32px; height: 32px; }
.classroom-invitation { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding: 55px; background: var(--surface); border-radius: 24px; margin-bottom: 75px; align-items: center; }
.classroom-invitation h2 { font-size: 37px; margin: 19px 0 23px; }
.classroom-invitation p { font-size: 16px; line-height: 1.85; }
.small-note { font-size: 13px !important; line-height: 1.85; }
.classroom-invitation .button { margin-top: 12px; }
.classroom-map { background: white; border: 1px solid var(--line); border-radius: 14px; padding: 25px; }
.classroom-map-header { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--violet); border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.classroom-map > div:not(:first-child) { position: relative; padding: 22px 0 0 40px; }
.classroom-map > div > span { position: absolute; left: 0; font-size: 12px; color: var(--violet); top: 25px; }
.classroom-map > div > strong { font-size: 15px; }
.classroom-map p { font-size: 13px; margin: 6px 0 0; }
.help-page { padding-bottom: 90px; }
.help-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 80px; align-items: start; }
.help-sidebar { position: sticky; top: 130px; }
.help-sidebar h2 { font-size: 18px; margin-bottom: 20px; letter-spacing: -.02em; }
.help-categories { display: grid; gap: 7px; }
.help-categories button { display: flex; justify-content: space-between; align-items: center; text-align: left; padding: 13px 16px; min-height: 49px; background: white; border-radius: 8px; font-size: 15px; color: var(--muted); }
.help-categories button svg { width: 16px; }
.help-categories button[aria-pressed=true] { color: var(--violet); background: var(--pale); font-weight: 600; }
.help-categories button:hover { background: var(--surface); }
.help-quick-links { display: grid; gap: 18px; border-top: 1px solid var(--line); padding-top: 25px; margin-top: 30px; }
.help-quick-links a { display: flex; align-items: center; justify-content: space-between; font-size: 13px; }
.help-quick-links svg { width: 16px; color: var(--violet); }
.help-search { min-height: 56px; width: 100%; max-width: none; margin-bottom: 22px; background: var(--surface); padding: 12px 18px; }
.help-search input { width: 100%; font-size: 16px; }
.help-page .empty-state h2 { font-size: 26px; }
.data-page { padding-bottom: 90px; }
.data-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 90px; align-items: start; }
.data-explanation h2 { font-size: 27px; }
.data-explanation p { font-size: 16px; line-height: 1.9; }
.data-items { list-style: none; margin: 28px 0 45px; padding: 0; display: grid; gap: 25px; }
.data-items li { display: flex; gap: 20px; align-items: start; }
.data-items svg { color: var(--violet); margin-top: 3px; }
.data-items h3 { font-size: 18px; margin-bottom: 9px; }
.data-items p { font-size: 15px; margin: 0; }
.data-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 31px; }
.data-card h2 { font-size: 27px; margin: 22px 0; }
.data-card dl { display: grid; gap: 15px; padding: 20px 0; border-block: 1px solid var(--line); }
.data-card dl > div { display: flex; justify-content: space-between; gap: 20px; align-items: start; font-size: 14px; }
.data-card dd { margin: 0; font-weight: 600; color: var(--violet); }
.data-card .button { width: 100%; font-size: 14px; margin-top: 15px; }
.data-card > p { font-size: 12px; margin: 15px 0 0; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .8fr 1fr 1fr; gap: 38px; padding-block: 48px; }
.footer-grid nav { display: flex; flex-direction: column; gap: 13px; }
.footer-grid nav h2 { font-size: 14px; margin: 5px 0 9px; letter-spacing: -.01em; }
.footer-grid nav a { font-size: 13px; color: var(--muted); line-height: 1.7; }
.footer-grid nav a:hover, .footer-bottom a:hover { color: var(--violet); text-decoration: underline; text-underline-offset: 4px; }
.footer-brand p { margin: 18px 0 0; font-size: 15px; line-height: 1.8; }
.footer-brand strong { color: var(--ink); font-weight: 500; }
.footer-status { font-size: 11px; display: flex; gap: 7px; align-items: center; color: var(--muted); margin-top: 3px; }
.footer-status .status-dot { flex-shrink: 0; width: 6px; height: 6px; }
.footer-bottom { font-size: 11px; }
.mobile-nav a[aria-current=page] { color: var(--violet); font-weight: 650; }
.mobile-nav a { min-height: 44px; }
@media (max-width: 1100px) {
  .desktop-nav { display: none; }
  .header-learning { margin-left: auto; }
  .mobile-toggle { display: grid; }
  .mobile-nav:not([hidden]) { display: grid; border-top: 1px solid var(--line); padding: 10px 24px 18px; background: white; }
  .mobile-nav a { padding: 10px 0; font-size: 15px; }
  .header-inner { gap: 20px; }
  .course-title { font-size: 21px; }
  .course-description { font-size: 13px; }
  .featured-course { padding: 30px 35px 35px; }
  .help-layout, .data-layout { gap: 40px; }
  .academy-manifesto, .classroom-invitation { gap: 40px; }
  .footer-grid { gap: 25px; }
}
@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .header-learning { margin-left: auto; }
  .mobile-toggle { display: grid; }
  .mobile-nav:not([hidden]) { display: grid; border-top: 1px solid var(--line); padding: 10px 24px 18px; background: white; }
  .mobile-nav a { padding: 10px 0; font-size: 15px; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .course-title { min-height: 60px; font-size: 25px; }
  .course-description { min-height: 48px; font-size: 14px; }
  .course-cover { height: 210px; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px; }
  .academy-teaser { grid-template-columns: 1fr; gap: 22px; }
  .academy-audience { gap: 35px; padding: 35px; }
  .classroom-invitation { padding: 35px; }
  .help-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 35px; }
}
@media (max-width: 700px) {
  .featured-content, .academy-manifesto, .academy-audience, .classroom-invitation, .data-layout { grid-template-columns: 1fr; }
  .featured-course { margin-bottom: 52px; padding: 26px; border-radius: 18px; }
  .featured-heading { padding-bottom: 19px; }
  .featured-heading .eyebrow { font-size: 9px; }
  .featured-status { font-size: 10px; }
  .featured-content { padding-top: 27px; gap: 25px; }
  .featured-content h2 { font-size: 35px; }
  .featured-content p { font-size: 15px; }
  .featured-art { height: 210px; }
  .featured-art-orbit { width: 195px; height: 195px; }
  .featured-art-core { font-size: 81px; }
  .featured-art-note { bottom: -8px; font-size: 8px; }
  .academy-teaser { padding: 40px 0 48px; gap: 17px; }
  .academy-teaser p { font-size: 15px; }
  .editorial-intro { padding: 27px 0 38px; }
  .editorial-intro > .eyebrow { margin-top: 27px; font-size: 10px; }
  .editorial-intro h1 { font-size: 47px; }
  .editorial-intro > p { font-size: 16px; }
  .academy-manifesto { gap: 29px; padding-bottom: 44px; }
  .manifesto-mark { padding: 32px; }
  .manifesto-mark span { font-size: 43px; }
  .manifesto-copy h2 { font-size: 31px; }
  .principles-section { padding: 39px 0; }
  .principle-grid { grid-template-columns: 1fr; gap: 29px; }
  .principle-number { margin-bottom: 14px; }
  .principle-grid h3 { font-size: 26px; margin-bottom: 12px; }
  .academy-audience { padding: 26px; gap: 23px; margin-bottom: 38px; }
  .academy-audience h2 { font-size: 29px; }
  .closing-section { display: block; padding: 38px 0 49px; }
  .closing-section h2 { font-size: 31px; }
  .closing-section .button { margin-top: 25px; }
  .method-journey { margin-bottom: 31px; }
  .journey-step { grid-template-columns: 28px minmax(0, 1fr); gap: 17px; padding: 29px 0; }
  .journey-icon { display: none; }
  .journey-step h2 { font-size: 27px; }
  .journey-step p { font-size: 15px; }
  .journey-takeaway { font-size: 13px; }
  .classroom-invitation { padding: 27px; margin-bottom: 41px; gap: 30px; }
  .classroom-invitation h2 { font-size: 31px; }
  .classroom-map { padding: 20px; }
  .help-page, .data-page { padding-bottom: 45px; }
  .help-layout { grid-template-columns: 1fr; gap: 24px; }
  .help-sidebar { position: static; }
  .help-categories { display: flex; flex-wrap: wrap; gap: 7px; }
  .help-categories button { background: var(--surface); font-size: 13px; gap: 9px; padding: 9px 12px; }
  .help-categories button svg { display: none; }
  .help-quick-links { display: none; }
  .help-search { margin-bottom: 17px; }
  .faq-list summary { font-size: 15px; padding-block: 19px; }
  .faq-list details p { font-size: 14px; padding-right: 15px; }
  .data-layout { gap: 24px; }
  .data-card { padding: 25px; }
}
@media (max-width: 620px) {
  .header-admin { display: none; }
  .course-grid { grid-template-columns: 1fr; }
  .course-title { min-height: 0; font-size: 25px; }
  .course-description { min-height: 0; font-size: 14px; }
  .course-meta { font-size: 12px; }
  .header-learning { width: 40px; min-height: 44px; }
  .mobile-toggle { width: 40px; min-height: 44px; }
  .hero-actions { gap: 10px; }
  .hero-actions .button { font-size: 12px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding-block: 32px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid nav h2 { font-size: 13px; }
  .footer-grid nav a { font-size: 12px; }
  .footer-grid nav:last-child { grid-column: 1 / -1; }
  .footer-bottom { line-height: 1.8; }
  .footer-bottom a { display: inline-block; padding-top: 12px; }
  .related .course-title { font-size: 25px; }
  .search-field input, textarea, select { font-size: 16px !important; }
  .filter-tabs { flex-wrap: wrap; }
  .filter-tab { font-size: 12px; }
  .section-heading { flex-wrap: wrap; }
  .section-heading .text-link { margin-top: 0; }
}
@media (max-width: 370px) {
  .header-inner .brand { width: 144px; height: 40.6px; background-size: 185.87px 123.91px; background-position: -21.78px -22.14px; }
  .header-inner { gap: 6px; }
  .wrap { width: calc(100% - 28px); }
  .featured-content h2 { font-size: 30px; }
  .editorial-intro h1 { font-size: 40px; }
}
