:root { --ink:#1a2535; --navy:#0d3672; --blue:#1762c2; --gold:#e8a317; --red:#c8102e; --paper:#f4f6fb; --cream:#f4f1ea; --line:#dce2ec; --muted:#3d4a59; --on-dark:#f8fbff; --on-dark-muted:#d7e0ea; --on-dark-accent:#fff1c7; --head:"Source Serif 4",Georgia,serif; --body:"DM Sans",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { margin:0; color:var(--ink); background:linear-gradient(180deg,#f4f6fb,#fff 35%,#f4f6fb); font:16px/1.55 var(--body); overflow-x:hidden; }
a { color:inherit; }
.skip-link { position:fixed; left:16px; top:-60px; z-index:20; padding:10px 14px; background:var(--gold); }
.skip-link:focus { top:10px; }
.academy-header { min-height:86px; display:grid; grid-template-columns:180px minmax(0,1fr) 190px; gap:22px; align-items:center; padding:8px clamp(20px,5vw,70px); border-top:5px solid var(--red); border-bottom:1px solid var(--line); background:#fff; }
.academy-header .brand { min-width:0; display:flex; align-items:center; }
.academy-header .brand img { width:180px; max-width:100%; height:auto; display:block; }
.academy-header .course-id { display:grid; justify-items:center; gap:2px; }
.academy-header .course-id strong { color:var(--navy); font:600 clamp(18px,2.2vw,24px) var(--head); }
.academy-header .course-id span { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.academy-header .academy-institution { display:grid; justify-items:end; gap:2px; }
.academy-header .academy-institution img { width:182px; max-width:100%; height:auto; display:block; }
.academy-header .academy-institution small { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
main { width:min(1180px,100%); max-width:100%; margin:auto; background:#fff; box-shadow:0 20px 70px rgba(13,54,114,.08); }
.eyebrow { margin:0 0 8px; color:var(--blue); font-size:10px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.gateway-hero .eyebrow,.discourse-band .eyebrow,.case-study .eyebrow { color:var(--on-dark-accent); font-weight:800; }
h1,h2,h3 { margin-top:0; color:var(--navy); font-family:var(--head); overflow-wrap:break-word; }
.gateway-hero { display:grid; grid-template-columns:1.5fr .7fr; gap:50px; padding:clamp(42px,7vw,90px); color:#fff; background:radial-gradient(circle at 90% 10%,rgba(232,163,23,.2),transparent 25%),linear-gradient(140deg,#0d2e6a,#1762c2); }
.gateway-hero h1 { margin:0; color:#fff; font-size:clamp(58px,8vw,96px); line-height:.88; }
.gateway-hero h1 small { display:block; max-width:16ch; margin-top:18px; color:var(--on-dark); font:500 clamp(27px,4vw,46px)/1 var(--head); }
.gateway-hero .lead { max-width:62ch; margin:28px 0; color:var(--on-dark); font:italic clamp(19px,2.2vw,26px)/1.45 var(--head); }
.cta-row { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.primary-cta { display:inline-flex; min-height:46px; align-items:center; padding:11px 18px; border-radius:999px; font-size:13px; font-weight:800; text-decoration:none; }
.primary-cta { color:#152131; background:var(--gold); }
.primary-cta.secondary-cta { color:#fff; border:1px solid rgba(255,255,255,.55); background:transparent; }
.primary-cta[aria-disabled="true"] { opacity:.55; pointer-events:none; }
.primary-cta.is-placeholder { opacity:1; cursor:not-allowed; }
.resource-status { margin:9px 0 0; color:var(--on-dark-accent); font-size:10px; }
.destination-note { max-width:68ch; margin:16px 0 0; color:var(--on-dark-muted); font-size:13px; font-weight:500; }
.access-code-box { margin-top:18px; padding:16px 18px; border-radius:12px; background:rgba(8,18,36,.35); border:1px solid rgba(255,255,255,.28); color:var(--on-dark); }
.access-code-box .eyebrow { margin:0 0 6px; color:var(--on-dark-accent); }
.access-code-box p { margin:0 0 8px; font-size:.95rem; line-height:1.45; color:var(--on-dark); }
.access-code-box .access-code-value { margin:0 0 6px; font-size:1.15rem; font-weight:800; letter-spacing:.04em; color:var(--on-dark-accent); }
.access-code-box code { font-size:1.05rem; color:var(--on-dark-accent); background:transparent; }
.access-code-box .access-code-note { margin:0; font-size:.9rem; line-height:1.4; color:var(--on-dark-muted); }
.gateway-hero aside { align-self:center; padding:28px; border:1px solid rgba(255,255,255,.2); border-top:5px solid var(--gold); border-radius:18px; background:rgba(13,54,114,.55); }
.gateway-hero aside h2 { color:#fff; font-size:34px; }
.gateway-hero dl { margin:20px 0 0; }
.gateway-hero dl div { padding:10px 0; border-top:1px solid rgba(255,255,255,.14); }
.gateway-hero dt { color:var(--on-dark-accent); font-size:9px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.gateway-hero dd { margin:2px 0 0; color:var(--on-dark); font-size:13px; font-weight:500; }
.system-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.class-one,.class-directory { padding:70px clamp(28px,7vw,90px) 20px; }
.class-one header,.class-directory header { max-width:70ch; margin-bottom:28px; }
.class-one h2,.class-directory h2 { font-size:clamp(34px,4vw,48px); line-height:1; }
.class-one header p:last-child,.class-directory header p:last-child { color:var(--muted); font-size:18px; }
.class-one-list { margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.class-one-list li { display:grid; gap:6px; padding:20px 22px; border:1px solid var(--line); border-left:5px solid var(--gold); border-radius:14px; background:var(--paper); }
.class-one-list strong { color:var(--navy); font:600 22px var(--head); }
.class-one-list span { color:var(--muted); font-size:15px; }
.class-one-list a { font-size:13px; font-weight:800; color:var(--blue); text-decoration:none; }
.directory-grid { display:grid; gap:14px; }
.directory-card { display:grid; grid-template-columns:88px 1fr; gap:18px; padding:18px 20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.directory-card img,.directory-photo-fallback { width:88px; height:88px; border-radius:50%; object-fit:cover; background:var(--navy); color:#fff; display:grid; place-items:center; font:600 28px var(--head); }
.directory-card h3 { margin:0 0 4px; font-size:24px; }
.directory-meta { margin:0 0 8px; color:var(--blue); font-size:13px; font-weight:700; }
.directory-card p { margin:0 0 8px; color:var(--muted); font-size:14px; }
.directory-empty { color:var(--muted); font-size:15px; }
.this-week-banner { display:grid; gap:4px; max-width:48ch; margin:0 0 22px; padding:14px 16px; border-left:4px solid var(--gold); background:rgba(8,18,36,.28); }
.this-week-banner strong { color:#fff; font:600 22px var(--head); }
.this-week-banner span { color:var(--on-dark-muted); font-size:14px; }
.rhythm-explain { padding:70px clamp(28px,7vw,90px) 20px; }
.rhythm-explain header { max-width:70ch; margin-bottom:28px; }
.rhythm-explain h2,.weeks-section h2 { font-size:clamp(34px,4vw,48px); line-height:1; }
.rhythm-explain header p:last-of-type,.weeks-section header p { color:var(--muted); font-size:18px; overflow-wrap:break-word; }
.pmr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; min-width:0; }
.rhythm-card { min-width:0; padding:22px; border:1px solid var(--line); border-top:5px solid var(--gold); border-radius:14px; background:var(--paper); }
.rhythm-card strong { display:block; color:var(--navy); font:600 26px var(--head); }
.rhythm-card span { display:block; margin-top:10px; color:var(--muted); font-size:15px; line-height:1.45; }
.weeks-section { padding:40px clamp(28px,7vw,90px) 70px; }
.week-list { display:grid; gap:16px; min-width:0; }
.preview-banner { margin:0 0 16px; padding:12px 16px; border-left:4px solid var(--gold); background:#fff8e5; color:var(--ink); font-size:14px; }
.week-card { padding:22px 24px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.week-card.is-open { border-left:5px solid var(--gold); }
.week-card.is-current { box-shadow:0 16px 40px rgba(13,54,114,.12); outline:1px solid rgba(232,163,23,.5); }
.week-card.is-closed { background:#e8ebf0; color:#5c6774; }
.week-card.is-pause { background:#fff8e5; border-left:5px solid var(--gold); }
.week-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.week-status { flex:0 0 auto; padding:6px 10px; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.week-card.is-open .week-status { color:#fff; background:#176246; }
.week-card.is-closed .week-status { color:#3d4a59; background:#cfd5dd; }
.week-kicker { margin:0 0 8px; color:var(--blue); font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.week-card.is-closed .week-kicker { color:#6a7684; }
.week-card h2 { margin:0; font-size:clamp(26px,3vw,36px); }
.week-card.is-closed h2 { color:#6a7684; }
.week-lock { margin:12px 0 0; color:#5c6774; font-size:15px; }
.activity-grid { display:grid; gap:12px; margin-top:20px; }
.activity { padding:16px 18px; border-radius:12px; background:var(--paper); }
.activity p { margin:0; color:var(--ink); font-size:16px; line-height:1.5; }
.activity-label { margin:0 0 4px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); }
.rhythm-card .activity-label { margin:0 0 6px; color:var(--blue); }
.activity p.activity-label { margin:0 0 4px; font-size:11px; color:var(--navy); }
.activity p.activity-meaning { margin:0 0 8px; color:var(--muted); font-size:13px; font-style:italic; }
.activity.probe { border-left:4px solid var(--blue); }
.activity.sense { border-left:4px solid #176246; }
.activity.respond { border-left:4px solid var(--gold); }
.activity-links { display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:16px; }
.activity-links a { font-size:13px; font-weight:800; color:var(--blue); text-decoration:none; }
.system-links a,.system-links span { display:grid; min-height:92px; align-content:center; padding:20px 28px; background:#fff; text-decoration:none; }
.system-links span { color:var(--muted); background:#f7f8fa; }
.system-links strong,.system-links small { display:block; }
.system-links strong { color:var(--navy); font-family:var(--head); font-size:20px; }
.system-links small { margin-top:4px; color:var(--muted); }
.section-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; padding:70px clamp(28px,7vw,90px); }
.section-grid h2,.weekly-rhythm h2,.assignments-section > header h2,.calendar-section h2 { font-size:clamp(34px,4vw,48px); line-height:1; }
.section-grid p { margin:0 0 16px; color:var(--muted); font-size:18px; }
.section-grid p:last-child { margin:0; }
.section-grid a { color:var(--blue); font-size:15px; font-weight:800; text-decoration:none; }
.weekly-rhythm,.assignments-section,.calendar-section { padding:40px clamp(28px,7vw,90px) 70px; }
.calendar-section header { max-width:70ch; }
.calendar-section header p:last-of-type { color:var(--muted); font-size:18px; }
a.calendar-item { text-decoration:none; color:inherit; display:block; }
.rhythm-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:26px; }
.rhythm-grid div { min-height:120px; padding:19px; border-radius:12px; color:#fff; background:var(--navy); }
.rhythm-grid div:nth-child(even) { background:var(--blue); }
.rhythm-grid strong,.rhythm-grid span { display:block; }
.rhythm-grid strong { color:var(--on-dark-accent); font:700 24px var(--head); }
.rhythm-grid span { margin-top:8px; color:var(--on-dark); font-size:11px; }
.discourse-band { display:grid; grid-template-columns:1fr auto; gap:35px; align-items:center; padding:48px clamp(28px,7vw,90px); color:#fff; background:var(--navy); }
.discourse-band h2 { margin-bottom:10px; color:#fff; font-size:42px; }
.discourse-band p:last-child { max-width:68ch; margin:0; color:var(--on-dark-muted); }
.discourse-band a { padding:12px 18px; border-radius:999px; color:#172231; background:var(--gold); font-size:12px; font-weight:800; text-decoration:none; }
.assignments-section { padding-top:70px; }
.assignment-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:28px; }
.assignment-card { padding:24px; border:1px solid var(--line); border-top:4px solid var(--blue); border-radius:14px; background:var(--paper); }
.assignment-card { position:relative; }
.assignment-weight { position:absolute; top:16px; right:16px; padding:5px 8px; border-radius:999px; color:#fff; background:var(--navy); font-size:11px; }
.assignment-card .eyebrow { padding-right:48px; }
.assignment-card h3 { margin-bottom:8px; font-size:25px; }
.assignment-card p { margin:0; color:var(--muted); font-size:13px; }
.case-study { display:grid; grid-template-columns:.75fr 1.25fr; gap:30px; margin-top:14px; padding:30px; border-left:5px solid var(--gold); color:#fff; background:#0d1b2a; }
.case-study h2 { margin:0; color:#fff; font-size:34px; }
.case-study > div > strong { display:inline-block; margin-top:10px; padding:5px 9px; border-radius:999px; color:#142033; background:var(--gold); font-size:12px; }
.case-study > p { margin:0; color:var(--on-dark-muted); }
.decision-note { margin:14px 0 0; padding:16px 18px; color:var(--muted); background:#eef3fb; font-size:13px; }
.calendar-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:28px; }
.calendar-item { min-height:190px; padding:15px; border:1px solid var(--line); border-top:4px solid var(--blue); background:#fff; }
.calendar-item.f2f { border-top-color:#176246; }
.calendar-item.teams { border-top-color:var(--gold); }
.calendar-item.tbd { border-top-color:var(--red); background:#fffaf2; }
.calendar-item.async { border-top-color:#8794a6; }
.calendar-item.pause { border-top-color:var(--gold); background:#fff8e5; }
.calendar-item strong,.calendar-item span,.calendar-item small { display:block; }
.calendar-item strong { color:var(--navy); font:600 19px var(--head); }
.calendar-item span { margin-top:8px; color:var(--blue); font-size:15px; font-weight:900; letter-spacing:.12em; line-height:1.1; text-transform:uppercase; }
.calendar-item.async span { color:#5e6874; }
.calendar-item.f2f span,.calendar-item.teams span { color:#9a6410; }
.calendar-item small { margin-top:6px; color:var(--muted); line-height:1.3; }
.calendar-item .calendar-purpose { margin-top:10px; padding-top:9px; border-top:1px solid var(--line); font-size:11px; line-height:1.45; }
.calendar-purpose b { color:var(--navy); }
.presentation-plan { margin:0; padding:clamp(38px,6vw,72px); border-top:1px solid var(--line); background:var(--cream); }
.presentation-plan > header { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.presentation-plan > header h2 { font-size:clamp(32px,4vw,48px); }
.presentation-plan > header > strong { flex:0 0 auto; padding:8px 12px; border-radius:999px; color:#fff; background:var(--navy); font-size:12px; }
.rotation-note { max-width:850px; color:var(--muted); }
.rotation-list { display:grid; gap:8px; margin-top:24px; }
.rotation-item { display:grid; grid-template-columns:minmax(190px,.6fr) 1.4fr; gap:22px; padding:16px 18px; border:1px solid var(--line); background:#fff; }
.rotation-item > div:first-child strong,.rotation-item > div:first-child span { display:block; }
.rotation-item > div:first-child strong { color:var(--navy); font:600 21px var(--head); }
.rotation-item > div:first-child span { margin-top:3px; color:var(--blue); font-size:11px; font-weight:800; }
.rotation-item h3 { margin:0 0 4px; font-size:21px; }
.rotation-item p { margin:0; color:var(--muted); font-size:13px; }
footer { display:flex; justify-content:space-between; gap:20px; padding:28px clamp(20px,5vw,70px); color:var(--on-dark-muted); background:#0d1b2a; font-size:11px; }
footer strong { color:#fff; }
.class-one-note { margin:18px 0 0; padding:14px 16px; border-left:4px solid var(--line); background:#f7f8fa; color:var(--muted); font-size:14px; line-height:1.5; }
.class-one-note strong { color:var(--navy); }
.week-one-work { margin-top:34px; padding-top:30px; border-top:1px solid var(--line); }
.week-one-work h3 { margin:0 0 18px; font-size:clamp(24px,3vw,32px); }
.calendar-download-row { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:baseline; margin:18px 0 0; }
.calendar-download-row a { color:var(--blue); font-size:14px; font-weight:800; text-decoration:none; }
.calendar-download-row a[aria-disabled="true"] { color:var(--muted); cursor:not-allowed; text-decoration:line-through; }
.calendar-download-row small { color:var(--muted); font-size:12px; }

@media (max-width:800px) {
  .academy-header { grid-template-columns:110px minmax(0,1fr) 96px; gap:10px; padding:9px 14px; max-width:100%; }
  .academy-header .brand img { width:110px; }
  .academy-header .academy-institution img { width:96px; }
  .academy-header .course-id strong { font-size:18px; }
  .gateway-hero,.section-grid,.case-study { grid-template-columns:1fr; }
  .gateway-hero { gap:30px; padding:48px 24px; }
  .system-links,.assignment-grid,.directory-card,.pmr-grid { grid-template-columns:1fr; }
  .rhythm-explain,.weeks-section,.class-directory { padding-left:20px; padding-right:20px; }
  .rhythm-explain h2,.weeks-section h2 { font-size:clamp(28px,8vw,40px); }
  .week-top { flex-wrap:wrap; gap:8px; align-items:flex-start; }
  .week-top > div { min-width:0; flex:1 1 auto; }
  .week-status { margin-left:auto; }
  .week-card { padding:18px 16px; max-width:100%; }
  .rhythm-card { padding:18px 16px; max-width:100%; }
  .this-week-banner, .this-week-banner strong, .access-code-box, .gateway-hero, .rhythm-explain, .weeks-section { max-width:100%; }
  .this-week-banner strong { overflow-wrap:break-word; }
  .primary-cta { max-width:100%; }
  .gateway-hero h1 { font-size:clamp(46px,16vw,72px); }
  .rhythm-grid { grid-template-columns:1fr; }
  .rhythm-grid div { min-height:80px; }
  .discourse-band { grid-template-columns:1fr; }
  .discourse-band a { justify-self:start; }
  .calendar-grid { grid-template-columns:repeat(2,1fr); }
  .presentation-plan > header,.rotation-item { grid-template-columns:1fr; display:grid; align-items:start; }
  .presentation-plan > header > strong { justify-self:start; }
}
@media (max-width:420px) {
  .academy-header { grid-template-columns:98px minmax(0,1fr) 76px; }
  .academy-header .brand img { width:98px; }
  .academy-header .academy-institution img { width:76px; }
  .academy-header .course-id strong { font-size:16px; }
  .academy-header .academy-institution small { display:none; }
  .calendar-grid { grid-template-columns:1fr; }
  footer { flex-direction:column; }
}
@media print { body { background:#fff; } main { width:100%; box-shadow:none; } .primary-cta { border:1px solid #999; } }

/* ---- "Inside the course" marketing band ---- */
.inside-band { padding: 60px clamp(28px,7vw,90px) 70px; border-top: 1px solid var(--line); background: var(--paper); }
.inside-band > header { max-width: 70ch; margin-bottom: 28px; }
.inside-band h2 { font-size: clamp(32px,4vw,46px); line-height: 1.02; }
.inside-band header p:last-child { color: var(--muted); font-size: 18px; }
.inside-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.inside-grid article { display: grid; gap: 6px; padding: 20px 22px; border: 1px solid var(--line); border-top: 4px solid var(--blue); border-radius: 14px; background: #fff; }
.inside-grid strong { color: var(--navy); font: 600 20px var(--head); }
.inside-grid span { color: var(--muted); font-size: 14px; line-height: 1.5; }
.inside-cta { display: grid; justify-items: center; gap: 10px; margin-top: 28px; text-align: center; }
.inside-cta .primary-cta { font-size: 15px; padding: 14px 26px; }
.inside-cta p { max-width: 60ch; margin: 0; color: var(--muted); font-size: 14px; }
@media (max-width: 800px) { .inside-grid { grid-template-columns: 1fr; } .inside-band { padding-left: 20px; padding-right: 20px; } }
