.open-classes-page { background: #f8fafd; color: #172d4d; }
.open-classes-page .open-shell { width: min(1240px, calc(100% - 48px)); margin: 0 auto; padding-top: 42px; padding-bottom: 80px; }
.open-classes-page .open-shell * { box-sizing: border-box; }
.open-classes-page .open-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; color: #586b84; font-size: 12px; }
.open-classes-page .open-breadcrumb a { color: #4b6588; text-decoration: none; }
.open-classes-page .open-breadcrumb [aria-current] { color: #203e66; }
.open-classes-page .open-layout { display: grid; grid-template-columns: minmax(0, 1fr) 332px; column-gap: 36px; align-items: start; }
.open-classes-page .open-layout > :not(.open-inquiry) { grid-column: 1; min-width: 0; }
.open-classes-page .open-eyebrow { margin: 0 0 10px; color: #315ca4 !important; font-size: 10px !important; font-weight: 750; line-height: 1.6; letter-spacing: .13em; }
.open-classes-page :is(a, button, select, summary, input):focus-visible { outline: 3px solid #2457d6 !important; outline-offset: 4px; }
.open-classes-page .open-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.open-classes-page .open-skip { position: fixed; top: 8px; left: 16px; z-index: 3000; padding: 12px 18px; background: #fff; color: #193f83; border: 2px solid #2457d6; border-radius: 6px; transform: translateY(-180%); }
.open-classes-page .open-skip:focus { transform: none; }
.open-classes-page [id] { scroll-margin-top: 100px; }

/* The poster is composed in the page, so its type remains sharp at every width. */
.open-classes-page .open-poster { position: relative; min-height: 710px; padding: 38px 42px 24px; overflow: hidden; border: 1px solid #17366c; border-radius: 12px; background: radial-gradient(ellipse at 95% 0, rgba(55, 113, 233, .55), transparent 58%), radial-gradient(ellipse at 45% 110%, rgba(19, 110, 123, .45), transparent 60%), #102548 !important; isolation: isolate; }
.open-classes-page .open-poster-grid { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(#ffffff08 1px, transparent 1px), linear-gradient(90deg, #ffffff08 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(110deg, transparent 20%, #000); }
.open-classes-page .open-poster-top { display: flex; justify-content: space-between; gap: 16px; color: #d9e7ff; font-size: 11px; letter-spacing: .12em; }
.open-classes-page .open-poster-top > span:first-child { color: #fff; font-weight: 800; letter-spacing: .04em; }
.open-classes-page .open-poster-copy { position: relative; z-index: 1; margin-top: 43px; }
.open-classes-page .open-poster-copy > p:first-child { margin: 0 0 16px; color: #d3e0f5 !important; font-size: 14px; font-weight: 500; line-height: 1.6; }
.open-classes-page .open-poster h1 { margin: 0 0 22px; color: #fff !important; font-size: clamp(58px, 6.25vw, 82px) !important; line-height: 1.08 !important; letter-spacing: -.06em; font-weight: 760; word-break: keep-all; }
.open-classes-page .open-poster h1 span { color: #a3e6d2 !important; }
.open-classes-page .open-poster .open-poster-intro { margin: 0; color: #c5d7ee !important; font-size: 15px; line-height: 1.85; word-break: keep-all; }
.open-classes-page .open-poster-art { position: absolute; right: 0; bottom: 62px; left: 0; width: 100%; pointer-events: none; }
.open-classes-page .open-poster-art svg { display: block; width: 100%; height: auto; max-height: 295px; }
.open-classes-page .open-poster-bottom { position: absolute; right: 32px; bottom: 25px; left: 32px; display: flex; justify-content: space-between; gap: 12px; padding-top: 18px; border-top: 1px solid #7395c243; color: #c6d6eb; font-size: 11px; }

/* One inquiry route: no personal information is requested on this page. */
.open-classes-page .open-inquiry { grid-column: 2; grid-row: 1 / span 6; position: sticky; top: 96px; align-self: start; overflow: hidden; border: 1px solid #cad8ea; border-radius: 12px; background: #fff; box-shadow: 0 18px 40px -26px #173a7635; }
.open-classes-page .open-inquiry-top { padding: 24px 25px 18px; border-bottom: 1px solid #e6edf6; }
.open-classes-page .open-inquiry-state { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 25px; padding: 6px 9px; border: 1px solid #d6e4f7; border-radius: 4px; color: #335d9d; background: #f5f9ff; font-size: 11px; font-weight: 650; line-height: 1.4; }
.open-classes-page .open-inquiry-state i { width: 5px; height: 5px; border-radius: 50%; background: #4481d5; }
.open-classes-page .open-inquiry h2 { margin: 0 0 14px; color: #173354 !important; font-size: 26px !important; font-weight: 750; line-height: 1.4 !important; letter-spacing: -.04em; }
.open-classes-page .open-inquiry-top > p:last-child { margin: 0; color: #586b84 !important; font-size: 12px; line-height: 1.8; }
.open-classes-page .open-inquiry-form { margin: 0; padding: 22px 25px 20px; }
.open-classes-page .open-field { margin-bottom: 18px; }
.open-classes-page .open-field > label, .open-classes-page .open-group legend { display: block; margin-bottom: 8px; padding: 0; color: #3c5373; font-size: 12px; font-weight: 650; }
.open-classes-page .open-field select { display: block; width: 100%; min-width: 0; min-height: 46px; padding: 9px 12px; border: 1px solid #c7d7ea; border-radius: 6px; background: #fff; color: #274666; font-family: inherit; font-size: 13px; line-height: 1.6; }
.open-classes-page .open-group { padding: 0; margin: 0 0 20px; border: 0; min-width: 0; }
.open-classes-page .open-group > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.open-classes-page .open-group label { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 43px; padding: 8px 6px; border: 1px solid #d5e0ee; border-radius: 6px; color: #536a85; font-size: 12px; cursor: pointer; }
.open-classes-page .open-group label:has(input:checked) { border-color: #95b3e8; background: #f0f5ff; color: #244e9f; }
.open-classes-page .open-group input { width: 13px; height: 13px; padding: 0; margin: 0; accent-color: #2457d6; }
.open-classes-page .open-primary { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 48px; padding: 13px 17px; border: 1px solid #2457d6; border-radius: 6px; background: #2457d6; color: #fff !important; font: inherit; font-size: 13px; font-weight: 700; line-height: 1.6; text-decoration: none; cursor: pointer; transition: background 160ms ease, box-shadow 160ms ease; }
.open-classes-page .open-primary:hover { background: #1947b8; box-shadow: 0 8px 18px -10px #2457d66b; }
.open-classes-page .open-form-note { margin: 10px 0 0; color: #586b84 !important; font-size: 10px; line-height: 1.7; }
.open-classes-page .open-inquiry-foot { padding: 16px 25px 19px; border-top: 1px solid #e6edf6; background: #f8fafd; }
.open-classes-page .open-inquiry-foot p { margin: 0 0 7px; color: #586b84 !important; font-size: 11px; }
.open-classes-page .open-inquiry-foot a { display: inline-flex; justify-content: space-between; gap: 18px; color: #315ca4; font-size: 12px; font-weight: 650; text-decoration: none; }

.open-classes-page .open-section { margin-top: 52px; }
.open-classes-page .open-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.open-classes-page .open-section-heading h2 { margin: 0; color: #172d4d !important; font-size: clamp(24px, 2.5vw, 31px) !important; font-weight: 740; line-height: 1.4 !important; letter-spacing: -.04em; }
.open-classes-page .open-section-number { align-self: flex-start; padding-top: 4px; color: #b6c4d8; font-size: 25px; font-weight: 500; line-height: 1.2; letter-spacing: -.04em; }
.open-classes-page .open-section-intro { margin: -5px 0 25px; color: #586b84 !important; font-size: 13px; line-height: 1.9; word-break: keep-all; }
.open-classes-page .open-state { display: inline-flex; align-items: center; padding: 4px 7px; border-radius: 4px; background: #eaf1fb; color: #4c6c99; font-size: 10px; font-weight: 650; line-height: 1.5; }
.open-classes-page .open-state--open { color: #1f775c; background: #e5f4ed; }
.open-classes-page .open-state--closed { color: #7c8492; background: #eef0f4; }
.open-classes-page .open-text-link { display: inline-flex; align-items: center; gap: 22px; min-height: 44px; color: #315ca4 !important; font-size: 12px; font-weight: 650; text-decoration: none; }
.open-classes-page .open-text-link:hover { color: #173f91 !important; text-decoration: underline; text-underline-offset: 4px; }
.open-classes-page .open-empty { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 8px 18px; align-items: start; padding: 25px; border: 1px solid #d7e2ef; border-radius: 9px; background: #fff; }
.open-classes-page .open-empty-mark { grid-row: 1 / span 2; display: grid; place-items: center; width: 48px; height: 54px; border-radius: 9px; background: #f0f5fd; }
.open-classes-page .open-empty-mark svg { width: 34px; height: 34px; fill: none; stroke: #668bc3; stroke-width: 1.7; stroke-linecap: round; }
.open-classes-page .open-empty h3 { margin: 10px 0 7px; color: #2f496d !important; font-size: 17px; font-weight: 650; line-height: 1.5; letter-spacing: -.025em; word-break: keep-all; }
.open-classes-page .open-empty p { margin: 0; color: #586b84 !important; font-size: 12px; line-height: 1.8; word-break: keep-all; }
.open-classes-page .open-empty > .open-text-link { grid-column: 2; align-self: start; }
.open-classes-page .open-class-list { display: grid; gap: 16px; }
.open-classes-page .open-class-card { padding: 28px; border: 1px solid #c8d9ec; border-radius: 10px; background: #fff; }
.open-classes-page .open-class-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.open-classes-page .open-class-card-heading > span:last-child { color: #586b84; font-size: 9px; letter-spacing: .1em; }
.open-classes-page .open-class-card h3 { margin: 20px 0 10px; color: #1d3b63 !important; font-size: 25px; line-height: 1.45; letter-spacing: -.04em; }
.open-classes-page .open-class-card > p { margin: 0 0 22px; color: #586b84 !important; font-size: 14px; line-height: 1.8; }
.open-classes-page .open-class-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; padding: 18px 0; margin: 0 0 22px; border-block: 1px solid #e0e8f2; }
.open-classes-page .open-class-card dt { margin-bottom: 5px; color: #586b84; font-size: 10px; }
.open-classes-page .open-class-card dd { margin: 0; color: #345275; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.open-classes-page .open-class-card .open-primary { width: auto; min-width: 180px; }

.open-classes-page .open-topic-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-bottom: 20px; border-bottom: 1px solid #cbd9ea; }
.open-classes-page .open-topic-tabs[hidden], .open-classes-page .open-topic-panel[hidden] { display: none !important; }
.open-classes-page .open-topic-tabs button { min-width: 0; min-height: 51px; padding: 12px 8px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; border-radius: 0; background: transparent; color: #586b84; font: inherit; font-size: 13px; font-weight: 650; line-height: 1.5; cursor: pointer; word-break: keep-all; }
.open-classes-page .open-topic-tabs button[aria-selected="true"] { border-bottom-color: #2457d6; color: #2457d6; }
.open-classes-page .open-topic-tabs button:hover { background: #edf3fc; }
.open-classes-page .open-topic-panel { overflow: hidden; margin: 0 0 18px; border: 1px solid #d5e1ee; border-radius: 9px; background: #fff; }
.open-classes-page .open-topic-visual { display: grid; place-items: center; padding: 8px 0; overflow: hidden; background: #edf3fc; border-bottom: 1px solid #e0e8f3; }
.open-classes-page .open-topic-visual svg { display: block; width: 100%; height: auto; }
.open-classes-page .open-topic-visual--data { background: #edf6f2; border-bottom-color: #dfebe4; }
.open-classes-page .open-topic-visual--rag { background: linear-gradient(120deg, #eaf0fa, #edf5f3); }
.open-classes-page .open-topic-copy { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: center; padding: 27px; }
.open-classes-page .open-topic-kicker { margin: 0 0 10px; color: #586b84 !important; font-size: 9px; font-weight: 650; letter-spacing: .08em; }
.open-classes-page .open-topic-copy h3 { margin: 0 0 12px; color: #264469 !important; font-size: 23px; font-weight: 700; line-height: 1.5; letter-spacing: -.035em; }
.open-classes-page .open-topic-copy p:last-child { margin: 0; color: #586b84 !important; font-size: 12px; line-height: 1.9; word-break: keep-all; }
.open-classes-page .open-topic-copy ul { display: grid; gap: 0; padding: 0 0 0 22px; margin: 0; border-left: 1px solid #e0e8f2; list-style: none; }
.open-classes-page .open-topic-copy li { padding: 12px 0; color: #4e698c; font-size: 12px; line-height: 1.7; }
.open-classes-page .open-topic-copy li + li { border-top: 1px solid #edf1f7; }
.open-classes-page .open-topics-link { margin-top: 2px; }
.open-classes-page .open-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 0; margin: 0; list-style: none; }
.open-classes-page .open-steps li { padding: 18px 0 0; border-top: 2px solid #a5bde0; }
.open-classes-page .open-steps li > span { display: block; margin-bottom: 20px; color: #7392bd; font-size: 12px; font-weight: 750; }
.open-classes-page .open-steps h3 { margin: 0 0 10px; color: #345275 !important; font-size: 16px; font-weight: 700; line-height: 1.6; letter-spacing: -.025em; }
.open-classes-page .open-steps p { margin: 0; color: #586b84 !important; font-size: 12px; line-height: 1.9; word-break: keep-all; }
.open-classes-page .open-faq details { border-top: 1px solid #d6e1ee; background: transparent; }
.open-classes-page .open-faq details:last-child { border-bottom: 1px solid #d6e1ee; }
.open-classes-page .open-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 62px; padding: 17px 3px; color: #3b5678; font-size: 13px; font-weight: 650; line-height: 1.8; cursor: pointer; list-style: none; }
.open-classes-page .open-faq summary::-webkit-details-marker { display: none; }
.open-classes-page .open-faq summary::after { content: '+'; flex: 0 0 auto; color: #8ca2bf; font-size: 22px; font-weight: 400; }
.open-classes-page .open-faq details[open] summary::after { content: '−'; }
.open-classes-page .open-faq details p { margin: 0; padding: 0 30px 20px 3px; color: #586b84 !important; font-size: 12px; line-height: 1.95; word-break: keep-all; }
.open-classes-page .open-team { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px; margin-top: 52px; padding: 28px; border: 1px solid #cfdfed; border-radius: 9px; background: linear-gradient(115deg, #edf4fb, #edf6f2) !important; }
.open-classes-page .open-team-icon { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid #bdcee6; border-radius: 9px; background: #ffffffb0; }
.open-classes-page .open-team-icon svg { width: 32px; height: 32px; fill: none; stroke: #6582b0; stroke-width: 1.7; stroke-linecap: round; }
.open-classes-page .open-team h2 { margin: 0 0 9px; color: #315171 !important; font-size: 19px !important; font-weight: 700; line-height: 1.6 !important; letter-spacing: -.035em; }
.open-classes-page .open-team p:not(.open-eyebrow) { margin: 0 0 7px; color: #586b84 !important; font-size: 12px; line-height: 1.9; }

@media (max-width: 1120px) and (min-width: 901px) {
  .open-classes-page .open-layout { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 24px; }
  .open-classes-page .open-poster { min-height: 650px; padding-inline: 30px; }
  .open-classes-page .open-poster h1 { font-size: 65px !important; }
  .open-classes-page .open-topic-copy { grid-template-columns: 1fr; gap: 20px; }
  .open-classes-page .open-topic-copy ul { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; border: 0; }
  .open-classes-page .open-topic-copy li { padding: 7px 10px; border: 0 !important; border-radius: 4px; background: #f0f5fb; }
}
@media (max-width: 900px) {
  .open-classes-page .open-shell { width: min(730px, calc(100% - 40px)); padding-top: 30px; padding-bottom: 60px; }
  .open-classes-page .open-layout { display: block; }
  .open-classes-page .open-poster { min-height: 660px; }
  .open-classes-page .open-poster h1 { font-size: clamp(62px, 10vw, 80px) !important; }
  .open-classes-page .open-inquiry { position: static; margin-top: 24px; }
  .open-classes-page .open-inquiry-top { padding-bottom: 20px; }
  .open-classes-page .open-inquiry-top h2 br, .open-classes-page .open-inquiry-top > p:last-child br { display: none; }
  .open-classes-page .open-inquiry-state { margin-bottom: 18px; }
  .open-classes-page .open-inquiry-top .open-eyebrow { display: none; }
  .open-classes-page .open-inquiry h2 { font-size: 23px !important; margin-bottom: 8px; }
  .open-classes-page .open-inquiry-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
  .open-classes-page .open-field, .open-classes-page .open-group { margin-bottom: 20px; }
  .open-classes-page .open-inquiry-form .open-primary, .open-classes-page .open-form-note { grid-column: 1 / -1; }
  .open-classes-page .open-inquiry-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .open-classes-page .open-inquiry-foot p { margin: 0; }
}
@media (max-width: 520px) {
  .open-classes-page .open-shell { width: calc(100% - 32px); padding-top: 26px; }
  .open-classes-page .open-breadcrumb { gap: 8px; margin-bottom: 18px; font-size: 11px; }
  .open-classes-page .open-poster { min-height: 560px; padding: 26px 24px 20px; border-radius: 9px; }
  .open-classes-page .open-poster-top { font-size: 9px; }
  .open-classes-page .open-poster-copy { margin-top: 36px; }
  .open-classes-page .open-poster-copy > p:first-child { font-size: 12px; margin-bottom: 14px; }
  .open-classes-page .open-poster h1 { font-size: clamp(52px, 13.5vw, 66px) !important; margin-bottom: 18px; }
  .open-classes-page .open-poster .open-poster-intro { font-size: 12px; line-height: 1.9; }
  .open-classes-page .open-poster-art { right: -20%; bottom: 56px; left: -20%; width: 140%; }
  .open-classes-page .open-poster-bottom { right: 21px; bottom: 20px; left: 21px; gap: 8px; font-size: 8px; padding-top: 15px; }
  .open-classes-page .open-inquiry-top, .open-classes-page .open-inquiry-form { padding-inline: 20px; }
  .open-classes-page .open-inquiry-form { display: block; }
  .open-classes-page .open-inquiry-foot { display: block; padding-inline: 20px; }
  .open-classes-page .open-inquiry-foot p { margin-bottom: 6px; }
  .open-classes-page .open-section, .open-classes-page .open-team { margin-top: 40px; }
  .open-classes-page .open-section-heading { margin-bottom: 20px; }
  .open-classes-page .open-section-heading h2 { font-size: 25px !important; }
  .open-classes-page .open-section-number { font-size: 22px; }
  .open-classes-page .open-empty { grid-template-columns: 1fr; gap: 14px; padding: 22px; }
  .open-classes-page .open-empty-mark { grid-row: auto; width: 44px; height: 44px; }
  .open-classes-page .open-empty > .open-text-link { grid-column: 1; }
  .open-classes-page .open-empty h3 { font-size: 17px; }
  .open-classes-page .open-topic-tabs button { min-height: 53px; padding: 12px 5px; font-size: 11px; }
  .open-classes-page .open-topic-visual { padding: 18px 0; }
  .open-classes-page .open-topic-visual svg { width: 110%; max-width: none; }
  .open-classes-page .open-topic-copy { grid-template-columns: 1fr; gap: 22px; padding: 23px; }
  .open-classes-page .open-topic-copy h3 { font-size: 23px; }
  .open-classes-page .open-topic-copy ul { display: flex; flex-wrap: wrap; gap: 6px; border: 0; padding: 0; }
  .open-classes-page .open-topic-copy li { padding: 7px 9px; border: 0 !important; border-radius: 4px; background: #f0f5fb; font-size: 10px; }
  .open-classes-page .open-steps { grid-template-columns: 1fr; gap: 0; }
  .open-classes-page .open-steps li { position: relative; padding: 19px 0 19px 48px; border-top-width: 1px; }
  .open-classes-page .open-steps li > span { position: absolute; top: 23px; left: 0; }
  .open-classes-page .open-steps h3 { margin-bottom: 6px; }
  .open-classes-page .open-steps p br { display: none; }
  .open-classes-page .open-team { grid-template-columns: 1fr; gap: 20px; padding: 24px; }
  .open-classes-page .open-team h2 { font-size: 20px !important; }
  .open-classes-page .open-class-card { padding: 22px; }
  .open-classes-page .open-class-card dl { grid-template-columns: 1fr; }
  .open-classes-page .open-class-card h3 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .open-classes-page *, .open-classes-page *::before, .open-classes-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Featured public-course campaign. */
.open-classes-page .open-featured { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; margin-top:36px; border:1px solid #cad8ea; border-radius:12px; background:#fff; }
.open-classes-page .open-featured-visual { display:block; min-width:0; background:#102548; }
.open-classes-page .open-featured-visual img { display:block; width:100%; height:100%; min-height:350px; object-fit:cover; }
.open-classes-page .open-featured-copy { padding:30px 26px; }
.open-classes-page .open-featured-copy .open-eyebrow { margin:20px 0 10px; }
.open-classes-page .open-featured-copy h2 { margin:0 0 18px; color:#172d4d!important; font-size:clamp(24px,2.5vw,33px)!important; line-height:1.3!important; letter-spacing:-.04em; }
.open-classes-page .open-featured-copy > p:not(.open-eyebrow) { color:#526780!important; font-size:13px; line-height:1.8; }
.open-classes-page .open-featured-copy .open-primary { margin-top:22px; font-size:12px; }
@media(max-width:1120px){.open-classes-page .open-featured{grid-template-columns:1fr}.open-classes-page .open-featured-visual img{min-height:0;max-height:300px;aspect-ratio:16/9}.open-classes-page .open-featured-copy h2 br{display:none}}
