:root { --fm-ink:#082f29; --fm-blue:#0b4c84; --fm-gold:#d6b968; --fm-paper:#f8f6ef; --fm-line:#cfd9d5; --fm-muted:#56645f; }
  .fm-preview { color:var(--fm-ink); background:#fff; }
  .fm-shell { width:min(1180px, calc(100% - 48px)); margin:0 auto; }
  .fm-preview .eyebrow { letter-spacing:0; }
  .fm-hero-compact { overflow:hidden; background-position:center; }
  .fm-hero-compact .program-hero-content { padding-block:72px 34px; }
  .fm-hero-compact .content-deck { max-width:710px; }
  .fm-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
  .fm-facts { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.35); margin:24px 0 0; }
  .fm-facts div { padding:13px 22px 0 0; }
  .fm-facts dt { color:#f0d67e; font-size:13px; font-weight:800; text-transform:uppercase; }
  .fm-facts dd { margin:5px 0 0; font-size:17px; color:#fff; }
  .fm-band { padding:76px 0; }
  .fm-band-alt { background:var(--fm-paper); }
  .fm-heading { max-width:780px; margin-bottom:36px; }
  .fm-heading h2 { font-size:46px; line-height:1.08; margin:8px 0 14px; letter-spacing:0; }
  .fm-heading p { font-size:19px; line-height:1.65; color:var(--fm-muted); }
  .fm-skill-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
  .fm-skill { border:1px solid var(--fm-line); border-top:5px solid var(--fm-blue); padding:26px; min-height:190px; border-radius:4px; background:#fff; }
  .fm-skill b { display:block; font-family:Georgia,serif; font-size:24px; line-height:1.1; margin:16px 0 10px; }
  .fm-skill p { margin:0; color:var(--fm-muted); line-height:1.55; }
  .fm-skill-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:#fff; background:var(--fm-blue); font-weight:800; }
  .fm-role-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
  .fm-role { text-align:center; border-top:1px solid var(--fm-line); border-bottom:1px solid var(--fm-line); padding:24px 12px; }
  .fm-role-mark { display:grid; place-items:center; width:68px; height:68px; border-radius:50%; margin:0 auto 16px; background:var(--fm-ink); color:#fff; font-family:Georgia,serif; font-size:23px; }
  .fm-role strong { display:block; font-size:16px; line-height:1.35; }
  .fm-flow { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); counter-reset:flow; border:1px solid var(--fm-line); }
  .fm-flow div { position:relative; padding:26px 20px; border-right:1px solid var(--fm-line); }
  .fm-flow div:last-child { border-right:0; }
  .fm-flow span { color:var(--fm-blue); font-weight:800; font-size:13px; text-transform:uppercase; }
  .fm-flow strong { display:block; margin-top:8px; font-size:17px; line-height:1.35; }
  .fm-curriculum-head { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:32px; }
  .fm-curriculum-head .fm-heading { margin-bottom:0; }
  .fm-curriculum-controls { display:flex; gap:8px; flex:none; }
  .fm-text-button { border:1px solid var(--fm-ink); background:#fff; color:var(--fm-ink); min-height:44px; padding:0 16px; font-weight:800; cursor:pointer; }
  .fm-text-button:hover, .fm-text-button:focus-visible { background:var(--fm-ink); color:#fff; }
  .fm-module { padding:45px 0 54px; border-top:1px solid var(--fm-line); }
  .fm-module-heading { display:grid; grid-template-columns:140px minmax(0,1fr); gap:28px; margin-bottom:22px; }
  .fm-module-heading > span { color:var(--fm-blue); font-weight:800; text-transform:uppercase; padding-top:7px; }
  .fm-module-heading h3 { font-size:34px; line-height:1.15; margin:0 0 10px; letter-spacing:0; }
  .fm-module-heading p { margin:0; color:var(--fm-muted); max-width:820px; line-height:1.6; }
  .fm-lessons { border-top:1px solid var(--fm-line); }
  .fm-lesson { border-bottom:1px solid var(--fm-line); background:#fff; }
  .fm-lesson summary { display:grid; grid-template-columns:54px minmax(0,1fr) auto; gap:18px; align-items:center; padding:15px 16px; cursor:pointer; list-style:none; }
  .fm-lesson summary::-webkit-details-marker { display:none; }
  .fm-lesson-number { color:var(--fm-blue); font-weight:800; font-variant-numeric:tabular-nums; }
  .fm-lesson-heading strong { display:block; font-size:18px; line-height:1.35; }
  .fm-expand-label { color:var(--fm-blue); font-weight:800; font-size:13px; }
  .fm-lesson[open] .fm-expand-label::after { content:' -'; }
  .fm-lesson:not([open]) .fm-expand-label::after { content:' +'; }
  .fm-lesson-body { margin-left:72px; padding:2px 20px 28px; max-width:850px; }
  .fm-lesson-body p { line-height:1.65; }
  .fm-lesson-body h4 { margin:20px 0 8px; font-size:16px; }
  .fm-lesson-body ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 28px; padding-left:22px; }
  .fm-lesson-body li { line-height:1.5; }
  .fm-deliverable { border-left:4px solid var(--fm-gold); padding:12px 16px; background:var(--fm-paper); }
  .fm-lesson-supporting { display:block; margin-top:5px; color:var(--fm-muted); }
  .fm-capstone { background:var(--fm-blue); color:#fff; }
  .fm-capstone-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:start; }
  .fm-capstone h2, .fm-capstone h3 { color:#fff; }
  .fm-capstone h2 { font-size:46px; line-height:1.08; margin:8px 0 18px; letter-spacing:0; }
  .fm-capstone p { line-height:1.65; }
  .fm-case { border-top:1px solid rgba(255,255,255,.4); padding-top:22px; }
  .fm-case h3 { margin:0 0 12px; font-size:25px; }
  .fm-deliverable-box { margin-top:24px; padding:24px; background:#fff; color:var(--fm-ink); border-left:6px solid var(--fm-gold); }
  .fm-deliverable-box strong { display:block; font-family:Georgia,serif; font-size:24px; margin-bottom:8px; }
  .fm-community-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .fm-community-link { display:block; border:1px solid var(--fm-line); padding:30px; color:var(--fm-ink); text-decoration:none; min-height:180px; }
  .fm-community-link:hover { border-color:var(--fm-blue); }
  .fm-community-link span { color:var(--fm-blue); font-weight:800; text-transform:uppercase; font-size:13px; }
  .fm-community-link strong { display:block; font-family:Georgia,serif; font-size:30px; margin:22px 0 10px; }
  .fm-community-link p { margin:0; color:var(--fm-muted); line-height:1.55; }
  .fm-enroll-copy p { font-size:18px; line-height:1.65; }
  .fm-enroll-copy .fm-support { border-top:1px solid rgba(255,255,255,.3); padding-top:18px; }
  .fm-faq-list { border-top:1px solid var(--fm-line); }
  .fm-faq-list details { border-bottom:1px solid var(--fm-line); }
  .fm-faq-list summary { list-style:none; cursor:pointer; padding:22px 48px 22px 0; font-size:19px; font-weight:800; position:relative; }
  .fm-faq-list summary::-webkit-details-marker { display:none; }
  .fm-faq-list summary::after { content:'+'; position:absolute; right:8px; top:18px; color:var(--fm-blue); font-size:28px; }
  .fm-faq-list details[open] summary::after { content:'-'; }
  .fm-faq-list details > div { max-width:900px; padding:0 42px 24px 0; color:var(--fm-muted); line-height:1.65; }
  .fm-faq-list p:first-child { margin-top:0; }
  .fm-source-list { padding-left:20px; }
  .fm-source-list li { margin-bottom:9px; }
  .fm-regulatory { background:#eef3f1; border-top:1px solid var(--fm-line); border-bottom:1px solid var(--fm-line); }
  .fm-regulatory .fm-shell { max-width:960px; }
  .fm-regulatory h2 { font-size:36px; margin:8px 0 18px; letter-spacing:0; }
  .fm-regulatory p:last-child { line-height:1.7; }
  .fm-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .fm-related-grid article { border-top:5px solid var(--fm-gold); padding:24px; background:#fff; min-height:210px; }
  .fm-related-grid article > span { color:var(--fm-blue); font-size:12px; font-weight:800; text-transform:uppercase; }
  .fm-related-grid h3 { font-size:22px; line-height:1.25; margin:16px 0 10px; }
  .fm-related-grid p { color:var(--fm-muted); line-height:1.5; }
  .fm-final-cta { padding:88px 0; background:var(--fm-blue); color:#fff; text-align:center; }
  .fm-final-cta h2 { color:#fff; max-width:850px; margin:12px auto 0; font-size:52px; line-height:1.05; letter-spacing:0; }
  .fm-final-cta .button { margin-top:34px; }
  @media (max-width:900px) {
    .fm-skill-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .fm-role-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .fm-flow { grid-template-columns:1fr 1fr; }
    .fm-flow div { border-bottom:1px solid var(--fm-line); }
    .fm-capstone-grid { grid-template-columns:1fr; gap:24px; }
    .fm-related-grid { grid-template-columns:1fr 1fr; }
  }
  @media (max-width:640px) {
    .fm-shell { width:min(100% - 32px,1180px); }
    .fm-hero-compact { min-height:620px; background-position:center; }
    .fm-hero-compact .program-hero-content { padding-block:70px 28px; }
    .fm-facts { grid-template-columns:1fr 1fr; }
    .fm-facts div { padding-top:10px; }
    .fm-band { padding:54px 0; }
    .fm-heading h2, .fm-capstone h2 { font-size:37px; }
    .fm-skill-grid, .fm-community-grid, .fm-related-grid { grid-template-columns:1fr; }
    .fm-skill { min-height:0; }
    .fm-role-grid { grid-template-columns:1fr 1fr; }
    .fm-flow { grid-template-columns:1fr; }
    .fm-flow div { border-right:0; }
    .fm-curriculum-head { display:block; }
    .fm-curriculum-controls { margin-top:22px; }
    .fm-module-heading { grid-template-columns:1fr; gap:8px; }
    .fm-module-heading h3 { font-size:29px; }
    .fm-lesson summary { grid-template-columns:38px minmax(0,1fr); gap:10px; padding:18px 6px; }
    .fm-expand-label { display:none; }
    .fm-lesson-heading strong { font-size:16px; }
    .fm-lesson-body { margin-left:0; padding:0 6px 24px 48px; }
    .fm-lesson-body ol { grid-template-columns:1fr; }
    .fm-final-cta { padding:66px 0; }
    .fm-final-cta h2 { font-size:39px; }
  }

/* Contract-compatible aliases for Course Factory article carriers. */
.fm-section-head { max-width:780px; margin-bottom:36px; }
.fm-section-head h2 { font-size:46px; line-height:1.08; margin:8px 0 14px; letter-spacing:0; }
.fm-section-head p { font-size:19px; line-height:1.65; color:var(--fm-muted); }
.fm-flow { list-style:none; padding:0; }
.fm-flow > li { position:relative; padding:26px 20px; border-right:1px solid var(--fm-line); font-weight:800; line-height:1.35; }
.fm-flow > li:last-child { border-right:0; }
.fm-flow > li::before { content:counter(list-item, decimal-leading-zero); display:block; margin-bottom:8px; color:var(--fm-blue); font-size:13px; }
.fm-module > h3 { font-size:34px; line-height:1.15; margin:0 0 10px; letter-spacing:0; }
.fm-module-intro { margin:0 0 22px; color:var(--fm-muted); line-height:1.6; }
.fm-capstone-card { border-top:1px solid rgba(255,255,255,.4); padding-top:22px; }
.fm-people-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
@media (max-width:720px) {
  .fm-section-head h2,.fm-module > h3 { font-size:30px; }
  .fm-people-grid { grid-template-columns:1fr; }
}
