/* Complément au design matière existant : contenus réels, sans changer le héros. */
.subject-hero .subject-contents-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 10px; color: #fff; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.subject-contents-link:focus-visible, .subject-offer :is(a, summary):focus-visible { outline: 3px solid #3266a5; outline-offset: 4px; }
.subject-hero .subject-contents-link:focus-visible { outline-color: #fff; }
.subject-offer { margin: 52px 0; color: #192d45; }
.subject-offer :is(section, details) { scroll-margin-top: 28px; }
.subject-offer .subject-offer-heading { display: block; max-width: 850px; margin: 0 0 24px; }
.subject-offer-heading .subject-eyebrow { padding-right: 55px; }
.subject-offer h2 { margin: 8px 0 15px; font-family: Montserrat, sans-serif; font-size: clamp(23px, 2.5vw, 31px); line-height: 1.35; letter-spacing: -.025em; }
.subject-offer .subject-offer-heading > p:not(.subject-eyebrow) { max-width: none; margin: 12px 0; color: #4a5f75; font-size: 14px; line-height: 1.85; }
.subject-offer-program-note { border-left: 3px solid var(--subject-accent, #365ca8); padding-left: 16px; }
.subject-offer-levels { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 64px 20px 0; }
.subject-offer-levels-label { margin: 20px 0 -10px; color: #4a5f75; font-size: 12px; line-height: 1.6; }
.subject-offer-levels a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 17px; border: 1px solid #cbd7e3; border-radius: 100px; font-size: 13px; font-weight: 600; color: #243c56; background: #fff; text-decoration: none; }
.subject-offer-levels a[aria-current] { color: #fff; background: #173956; border-color: #173956; }
.subject-offer-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding: 24px 28px; margin: 22px 0; border: 1px solid #d5e0eb; border-radius: 18px; background: #fff; }
.subject-offer-counts > div { display: flex; flex-direction: column-reverse; gap: 6px; }
.subject-offer-counts dt { color: #4a5f75; font-size: 13px; line-height: 1.6; }
.subject-offer-counts dd { margin: 0; color: #173956; font-family: Montserrat, sans-serif; font-size: 30px; font-weight: 800; font-variant-numeric: tabular-nums; }
.subject-offer-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); align-items: start; gap: 13px; padding: 0; margin: 0; list-style: none; }
.subject-offer-list > li { min-width: 0; border: 1px solid #d5e0eb; border-radius: 14px; background: #fff; }
.subject-offer-list summary { position: relative; min-height: 122px; padding: 22px 38px 20px 19px; border-radius: 13px; cursor: pointer; list-style: none; }
.subject-offer-list summary::-webkit-details-marker { display: none; }
.subject-offer-list summary::after { content: '+'; position: absolute; right: 15px; top: 23px; color: #25465f; font-size: 24px; line-height: 1; }
.subject-offer-list details[open] > summary { background: var(--subject-accent-soft, #edf3f9); border-radius: 13px 13px 0 0; }
.subject-offer-list details[open] > summary::after { content: '−'; }
.subject-offer-list summary:hover { background: #f1f6fa; }
.subject-offer-list summary h3 { margin: 0; color: #192f48; font-size: 16px; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; }
.subject-offer-course-title { display: flex; align-items: baseline; gap: 12px; }
.subject-offer-number { flex: 0 0 22px; font-family: Montserrat, sans-serif; font-size: 12px; color: #566c83; }
.subject-offer-list summary small { display: block; margin: 12px 0 0 34px; font-size: 11px; font-weight: 400; color: #50647a; line-height: 1.8; }
.subject-offer-detail { padding: 10px 24px 23px; font-size: 13px; line-height: 1.85; overflow-wrap: anywhere; }
.subject-offer-detail-label { margin: 18px 0 9px; font-weight: 700; color: #274561; }
.subject-offer-detail :is(ul, ol) { padding-left: 20px; margin: 0; }
.subject-offer-detail li + li { margin-top: 8px; }
.subject-offer-method { margin: 40px 0 0; padding: clamp(22px, 3.5vw, 36px); border-radius: 22px; background: var(--subject-accent-soft, #edf3f9); }
.subject-offer-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 22px; list-style: none; padding: 0; margin: 28px 0; }
.subject-offer-steps > li { display: flex; align-items: flex-start; gap: 14px; }
.subject-offer-step-number { display: grid; place-items: center; flex: 0 0 34px; height: 34px; background: #fff; border-radius: 50%; color: #173956; font-family: Montserrat, sans-serif; font-weight: 800; }
.subject-offer-steps h3 { margin: 4px 0 7px; font-size: 16px; }
.subject-offer-steps p { margin: 0; line-height: 1.85; font-size: 13px; }
.subject-offer-method-footer { padding-top: 18px; margin-bottom: 0; border-top: 1px solid #b8c9d9; color: #40566e; font-size: 13px; line-height: 1.9; }
@media (max-width: 600px) { .subject-offer-levels { gap: 5px; } .subject-offer-levels a { padding-inline: 12px; font-size: 12px; } .subject-offer-counts { padding: 20px 16px; gap: 14px; } .subject-offer-counts dd { font-size: 25px; } .subject-offer-counts dt { font-size: 11px; } .subject-offer-list summary { padding-left: 14px; } .subject-offer-course-title { gap: 9px; } .subject-offer-list summary small { margin-left: 31px; } }
